From 32b0442c732dff5f062abf895db4d74b8feedcc7 Mon Sep 17 00:00:00 2001 From: couriersud Date: Mon, 21 Jan 2019 00:36:57 +0100 Subject: netlist: refactor code for better scalability and flexibility. (nw) These changes aim to remove some of the duplication of code in the various solvers. Tested with gcc-7 clang-8 and nvcc-9.2 --- src/lib/netlist/plib/parray.h | 117 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 src/lib/netlist/plib/parray.h (limited to 'src/lib/netlist/plib/parray.h') diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h new file mode 100644 index 00000000000..b40fd7f712f --- /dev/null +++ b/src/lib/netlist/plib/parray.h @@ -0,0 +1,117 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +/* + * parray.h + * + */ + +#ifndef PARRAY_H_ +#define PARRAY_H_ + +#include "pconfig.h" +#include "pexception.h" + +#include +#include +#include +#include +#include + +namespace plib { + + template + struct sizeabs + { + static constexpr std::size_t ABS() { return (SIZE < 0) ? static_cast(0 - SIZE) : static_cast(SIZE); } + typedef typename std::array container; + }; + + template + struct sizeabs + { + static constexpr const std::size_t ABS = 0; + typedef typename std::vector container; + }; + + /** + * \brief Array with preallocated or dynamic allocation + * + * Passing SIZE > 0 has the same functionality as a std::array. + * SIZE = 0 is pure dynamic allocation, the actual array size is passed to the + * constructor. + * SIZE < 0 reserves std::abs(SIZE) elements statically in place allocated. The + * actual size is passed in by the constructor. + * This array is purely intended for HPC application where depending on the + * architecture a preference dynamic/static has to be made. + * + * This struct is not intended to be a full replacement to std::array. + * It is a subset to enable switching between dynamic and static allocation. + * I consider > 10% performance difference to be a use case. + */ + + template + struct parray + { + public: + static constexpr std::size_t SIZEABS() { return sizeabs::ABS(); } + + typedef typename sizeabs::container base_type; + typedef typename base_type::size_type size_type; + typedef typename base_type::reference reference; + typedef typename base_type::const_reference const_reference; + + template + parray(size_type size, typename std::enable_if::type = 0) + : m_a(size), m_size(size) + { + } + +#if 0 + /* allow construction in fixed size arrays */ + template + parray(typename std::enable_if::type = 0) + : m_size(0) + { + } +#endif + template + parray(size_type size, typename std::enable_if::type = 0) + : m_size(size) + { + if (SIZE < 0 && size > SIZEABS()) + throw plib::pexception("parray: size error " + plib::to_string(size) + ">" + plib::to_string(SIZEABS())); + else if (SIZE > 0 && size != SIZEABS()) + throw plib::pexception("parray: size error"); + } + + inline size_type size() const noexcept { return SIZE <= 0 ? m_size : SIZEABS(); } + + constexpr size_type max_size() const noexcept { return base_type::max_size(); } + + bool empty() const noexcept { return size() == 0; } + +#if 0 + reference operator[](size_type i) /*noexcept*/ + { + if (i >= m_size) throw plib::pexception("limits error " + to_string(i) + ">=" + to_string(m_size)); + return m_a[i]; + } + const_reference operator[](size_type i) const /*noexcept*/ + { + if (i >= m_size) throw plib::pexception("limits error " + to_string(i) + ">=" + to_string(m_size)); + return m_a[i]; + } +#else + reference operator[](size_type i) noexcept { return m_a[i]; } + constexpr const_reference operator[](size_type i) const noexcept { return m_a[i]; } +#endif + FT * data() noexcept { return m_a.data(); } + const FT * data() const noexcept { return m_a.data(); } + + private: + base_type m_a; + size_type m_size; + }; +} + +#endif /* PARRAY_H_ */ -- cgit v1.2.3-70-g09d2 From 76323eb770cca3655f40d400fe5f34fbaa573d6c Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 27 Jan 2019 14:22:20 +1100 Subject: srcclean and cleanup (nw) --- hash/apple2_flop_orig.xml | 6224 ++++++++++++++-------------- hash/clickstart_cart.xml | 14 +- hash/ekara_japan.xml | 60 +- hash/ekara_japan_d.xml | 6 +- hash/ekara_japan_en.xml | 12 +- hash/ekara_japan_g.xml | 36 +- hash/ekara_japan_m.xml | 4 +- hash/ekara_japan_p.xml | 8 +- hash/ekara_japan_s.xml | 6 +- hash/ekara_japan_sp.xml | 10 +- hash/ekara_us.xml | 2 +- hash/jakks_gamekey_dy.xml | 34 +- hash/jakks_gamekey_nk.xml | 10 +- hash/jakks_gamekey_sw.xml | 8 +- hash/pce_tourvision.xml | 18 +- hash/vsmile_cart.xml | 2 +- hash/vtech_storio_cart.xml | 10 +- scripts/src/machine.lua | 2 +- src/devices/bus/bbc/rom/dfs.cpp | 2 +- src/devices/bus/ekara/rom.cpp | 2 +- src/devices/bus/electron/romboxp.cpp | 4 +- src/devices/bus/nubus/nubus_specpdq.cpp | 39 +- src/devices/bus/vsmile/vsmile_slot.h | 4 +- src/devices/cpu/alpha/alpha.cpp | 4 +- src/devices/cpu/dspp/dspp.h | 18 +- src/devices/cpu/dspp/dsppdrc.cpp | 334 +- src/devices/cpu/m6502/xavix2000.cpp | 12 +- src/devices/cpu/mips/mips3.cpp | 8 +- src/devices/cpu/mips/mips3.h | 2 +- src/devices/cpu/mips/mips3drc.cpp | 10 +- src/devices/cpu/unsp/unsp.h | 12 +- src/devices/cpu/unsp/unspdefs.h | 10 +- src/devices/cpu/unsp/unspdrc.cpp | 12 +- src/devices/machine/nsc810.h | 2 +- src/devices/machine/smc91c9x.cpp | 64 +- src/devices/machine/smc91c9x.h | 6 +- src/devices/machine/spg110.cpp | 8 +- src/devices/machine/spg2xx.cpp | 30 +- src/devices/machine/wd33c9x.cpp | 8 +- src/devices/video/fixfreq.cpp | 2 +- src/emu/devfind.cpp | 2 +- src/frontend/mame/ui/icorender.cpp | 4 +- src/frontend/mame/ui/selgame.cpp | 9 +- src/lib/netlist/devices/net_lib.cpp | 2 +- src/lib/netlist/devices/nld_74107.cpp | 6 +- src/lib/netlist/devices/nld_7450.cpp | 4 +- src/lib/netlist/devices/nld_7490.cpp | 4 +- src/lib/netlist/devices/nld_7493.cpp | 2 +- src/lib/netlist/devices/nld_7497.cpp | 2 +- src/lib/netlist/devices/nld_7497.h | 4 +- src/lib/netlist/nl_base.cpp | 2 +- src/lib/netlist/nl_base.h | 10 +- src/lib/netlist/nl_errstr.h | 2 +- src/lib/netlist/nl_lists.h | 6 +- src/lib/netlist/nl_setup.h | 2 +- src/lib/netlist/plib/parray.h | 36 +- src/lib/netlist/plib/pparser.cpp | 16 +- src/lib/netlist/plib/pstring.h | 2 +- src/lib/netlist/prg/nltool.cpp | 2 +- src/lib/netlist/prg/nlwav.cpp | 12 +- src/lib/netlist/solver/nld_matrix_solver.h | 2 +- src/lib/netlist/solver/nld_ms_gmres.h | 10 +- src/mame/drivers/5clown.cpp | 12 +- src/mame/drivers/aerofgt.cpp | 2 +- src/mame/drivers/alg.cpp | 2 +- src/mame/drivers/argus.cpp | 4 +- src/mame/drivers/avt.cpp | 12 +- src/mame/drivers/battlane.cpp | 4 +- src/mame/drivers/bigevglf.cpp | 2 +- src/mame/drivers/blktiger.cpp | 4 +- src/mame/drivers/brkthru.cpp | 8 +- src/mame/drivers/chinagat.cpp | 18 +- src/mame/drivers/clickstart.cpp | 20 +- src/mame/drivers/dacholer.cpp | 2 +- src/mame/drivers/ddragon.cpp | 16 +- src/mame/drivers/deniam.cpp | 6 +- src/mame/drivers/discoboy.cpp | 2 +- src/mame/drivers/drmicro.cpp | 2 +- src/mame/drivers/dynax.cpp | 34 +- src/mame/drivers/fantland.cpp | 8 +- src/mame/drivers/fcrash.cpp | 32 +- src/mame/drivers/firetrap.cpp | 18 +- src/mame/drivers/fromance.cpp | 18 +- src/mame/drivers/fuukifg2.cpp | 4 +- src/mame/drivers/gaiden.cpp | 2 +- src/mame/drivers/galspnbl.cpp | 6 +- src/mame/drivers/gladiatr.cpp | 18 +- src/mame/drivers/goal92.cpp | 2 +- src/mame/drivers/gsword.cpp | 10 +- src/mame/drivers/hnayayoi.cpp | 2 +- src/mame/drivers/hp_ipc.cpp | 2 +- src/mame/drivers/hyperspt.cpp | 14 +- src/mame/drivers/indy_indigo2.cpp | 22 +- src/mame/drivers/karnov.cpp | 4 +- src/mame/drivers/kchamp.cpp | 12 +- src/mame/drivers/klax.cpp | 6 +- src/mame/drivers/konamim2.cpp | 2 +- src/mame/drivers/kungfur.cpp | 8 +- src/mame/drivers/kurukuru.cpp | 2 +- src/mame/drivers/lkage.cpp | 2 +- src/mame/drivers/lucky74.cpp | 16 +- src/mame/drivers/lwings.cpp | 20 +- src/mame/drivers/m90.cpp | 2 +- src/mame/drivers/matmania.cpp | 4 +- src/mame/drivers/megadriv_acbl.cpp | 2 +- src/mame/drivers/mermaid.cpp | 2 +- src/mame/drivers/metlclsh.cpp | 4 +- src/mame/drivers/mgavegas.cpp | 2 +- src/mame/drivers/miniboy7.cpp | 14 +- src/mame/drivers/mitchell.cpp | 10 +- src/mame/drivers/mjkjidai.cpp | 2 +- src/mame/drivers/namcond1.cpp | 2 +- src/mame/drivers/nmg5.cpp | 4 +- src/mame/drivers/ojankohs.cpp | 24 +- src/mame/drivers/opwolf.cpp | 16 +- src/mame/drivers/pachifev.cpp | 4 +- src/mame/drivers/palestra.cpp | 2 +- src/mame/drivers/pc9801.cpp | 2 +- src/mame/drivers/pcktgal.cpp | 2 +- src/mame/drivers/peplus.cpp | 8 +- src/mame/drivers/r9751.cpp | 4 +- src/mame/drivers/rad_eu3a14.cpp | 18 +- src/mame/drivers/rainbow.cpp | 6 +- src/mame/drivers/rastan.cpp | 8 +- src/mame/drivers/rmhaihai.cpp | 2 +- src/mame/drivers/sanremo.cpp | 24 +- src/mame/drivers/seta.cpp | 4 +- src/mame/drivers/sf.cpp | 8 +- src/mame/drivers/smc777.cpp | 18 +- src/mame/drivers/sms_bootleg.cpp | 2 +- src/mame/drivers/sothello.cpp | 4 +- src/mame/drivers/spg110.cpp | 10 +- src/mame/drivers/splash.cpp | 10 +- src/mame/drivers/srmp2.cpp | 22 +- src/mame/drivers/storio.cpp | 18 +- src/mame/drivers/suprgolf.cpp | 4 +- src/mame/drivers/system16.cpp | 2 +- src/mame/drivers/taito_l.cpp | 20 +- src/mame/drivers/taitoair.cpp | 4 +- src/mame/drivers/tbowl.cpp | 4 +- src/mame/drivers/tehkanwc.cpp | 8 +- src/mame/drivers/testpat.cpp | 8 +- src/mame/drivers/toaplan1.cpp | 8 +- src/mame/drivers/topspeed.cpp | 4 +- src/mame/drivers/trackfld.cpp | 12 +- src/mame/drivers/trkfldch.cpp | 4 +- src/mame/drivers/tubep.cpp | 18 +- src/mame/drivers/twincobr.cpp | 4 +- src/mame/drivers/vigilant.cpp | 2 +- src/mame/drivers/vii.cpp | 40 +- src/mame/drivers/wacky_gator.cpp | 10 +- src/mame/drivers/wardner.cpp | 6 +- src/mame/drivers/warriorb.cpp | 8 +- src/mame/drivers/wc90b.cpp | 4 +- src/mame/drivers/welltris.cpp | 4 +- src/mame/drivers/wgp.cpp | 6 +- src/mame/drivers/xavix.cpp | 76 +- src/mame/drivers/yunsung8.cpp | 8 +- src/mame/includes/vsmile.h | 18 +- src/mame/includes/xavix.h | 6 +- src/mame/machine/hpc1.cpp | 24 +- src/mame/machine/hpc1.h | 4 +- src/mame/machine/hpc3.cpp | 30 +- src/mame/machine/hpc3.h | 4 +- src/mame/machine/mbc55x_kbd.cpp | 6 +- src/mame/machine/nl_palestra.cpp | 14 +- src/mame/machine/nl_tp1983.cpp | 8 +- src/mame/machine/nl_tp1985.cpp | 18 +- src/mame/machine/pce_cd.cpp | 4 +- src/mame/machine/taitocchip.cpp | 8 +- src/mame/machine/xavix.cpp | 4 +- src/mame/machine/xavix2002_io.cpp | 2 +- src/mame/machine/xavix2002_io.h | 2 +- src/mame/machine/xbox_pci.cpp | 2 +- src/mame/video/arabian.cpp | 8 +- src/mame/video/funworld.cpp | 6 +- src/mame/video/tia.cpp | 192 +- src/mame/video/xavix.cpp | 2 +- 178 files changed, 4239 insertions(+), 4231 deletions(-) (limited to 'src/lib/netlist/plib/parray.h') diff --git a/hash/apple2_flop_orig.xml b/hash/apple2_flop_orig.xml index 92c0f8da1ac..ce26055f178 100644 --- a/hash/apple2_flop_orig.xml +++ b/hash/apple2_flop_orig.xml @@ -3,3123 +3,3123 @@ - - Agent USA - 1984 - Scholastic - - - - - - - - - - - - - Airheart - 1986 - Broderbund Software - - - - - - - - - - - - - Alien Ambush - 1981 - Micro Distributors - - - - - - - - - - - - - Ankh - 1983 - Datamost - - - - - - - - - - - - - Apple Cider Spider - 1983 - Sierra On-Line - - - - - - - - - - - - - Apple Galaxian - 1980 - Broderbund Software - - - - - - - - - - - - - Aquatron - 1983 - Sierra On-Line - - - - - - - - - - - - - Archon: The Light and The Dark - 1984 - Electronic Arts - - - - - - - - - - - - - Ardy the Aardvark - 1983 - Datamost - - - - - - - - - - - - - Autobahn - 1981 - Sirius Software - - - - - - - - - - - - - Axis Assassin - 1982 - Electronic Arts - - - - - - - - - - - - - Aztec - 1982 - Datamost - - - - - - - - - - - - - Bad Dudes - 1988 - Data East USA - - - - - - - - - - - - - - - - - - - - Ballblazer - 1985 - Epyx - - - - - - - - - - - - - Batman: The Caped Crusader - 1985 - Data East USA - - - - - - - - - - - - - - - - - - - - BC's Quest for Tires - 1983 - Sierra On-Line - - - - - - - - - - - - - Bellhop - 1982 - Hayden Book Company - - - - - - - - - - - - - Below the Root - 1984 - Hayden Book Company - - - - - - - - - - - - - - - - - - - - The Bilestoad - 1983 - Datamost - - - - - - - - - - - - - Bug Battle - 1982 - United Software of America - - - - - - - - - - - - - Cannonball Blitz - 1982 - On-Line Systems - - - - - - - - - - - - - Caverns of Callisto - 1983 - Origin Systems - - - - - - - - - - - - - Ceiling Zero - 1981 - Turnkey Software - - - - - - - - - - - - - Centipede - 1983 - Atarisoft - - - - - - - - - - - - - Commando - 1987 - Data East USA - - - - - - - - - - - - - Congo Bongo - 1987 - SEGA Enterprises - - - - - - - - - - - - - Conquering Worlds - 1983 - Datamost - - - - - - - - - - - - - Copts and Robbers - 1981 - Sirius Software - - - - - - - - - - - - - County Fair - 1981 - Datamost - - - - - - - - - - - - - Crazy Mazey - 1982 - Datamost - - - - - - - - - - - - - Crisis Mountain - 1982 - Micro Fun - - - - - - - - - - - - - Crossfire - 1981 - On-Line Systems - - - - - - - - - - - - - Cubit - 1983 - Micromax - - - - - - - - - - - - - Cyber Strike - 1980 - Sirius Software - - - - - - - - - - - - - The Dam Busters - 1985 - Accolade - - - - - - - - - - - - - Death Sword - 1987 - Epyx - - - - - - - - - - - - - Defender II: Stargate - 1983 - Atarisoft - - - - - - - - - - - - - Destroyer - 1986 - Epyx - - - - - - - - - - - - - Dino Eggs - 1983 - Micro Fun - - - - - - - - - - - - - Dive Bomber - 1988 - Epyx - - - - - - - - - - - - - Donkey Kong - 1983 - Atarisoft - - - - - - - - - - - - - Drol - 1983 - Broderbund Software - - - - - - - - - - - - - Dung Beetles - 1982 - Datasoft - - - - - - - - - - - - - The Eidolon - 1985 - Epyx - - - - - - - - - - - - - Epoch - 1981 - Sirius Software - - - - - - - - - - - - - Falcons - 1981 - Piccadilly Software - - - - - - - - - - - - - - Fight Night - 1985 - Accolade - - - - - - - - - - - - - Flight Simulator II (v2.0) - 1985 - Accolade - - - - - - - - - - - - - Flip Out - 1982 - Sirius Software - - - - - - - - - - - - - Force 7 - 1987 - Datasoft - - - - - - - - - - - - - Formula 1 Racer - 1983 - Gentry Software - - - - - - - - - - - - - Free Fall - 1982 - Sirius Software - - - - - - - - - - - - - Frogger - 1981 - Sierra On-Line - - - - - - - - - - - - - Frogger II: Threedeep - 1984 - SEGA Enterprises - - - - - - - - - - - - - G.I. Joe - 1985 - Epyx - - - - - - - - - - - - - - - - - - - - The Games - Summer Edition - 1988 - Epyx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GATO - 1985 - Spectrum Holobyte - - - - - - - - - - - - - Genetic Drift - 1981 - Broderbund Software - - - - - - - - - - - - - Gobbler - 1981 - On-Line Systems - - - - - - - - - - - - - The Goonies - 1985 - Datasoft - - - - - - - - - - - - - Gumball - 1983 - Broderbund Software - - - - - - - - - - - - - The Heist - 1983 - Micro Fun - - - - - - - - - - - - - HERO - Helicopter Emergency Rescue Operation - 1983 - Activision - - - - - - - - - - - - - Hadron - 1981 - Sirius Software - - - - - - - - - - - - - Hard Hat Mack - 1983 - Electronic Arts - - - - - - - - - - - - Hardball - 1985 - Accolade - - - - - - - - - - - - - Head On - 1980 - California Pacific Computers - - - - - - - - - - - - - High Rise - 1983 - Micro Fun - - - - - - - - - - - - - Ikari Warriors - 1983 - Data East USA - - - - - - - - - - - - - - - - - - - - Ikari Warriors 2: Victory Road - 1981 - Sirius Software - - - - - - - - - - - - - - - - - + + Agent USA + 1984 + Scholastic + + + + + + + + + + + + + Airheart + 1986 + Broderbund Software + + + + + + + + + + + + + Alien Ambush + 1981 + Micro Distributors + + + + + + + + + + + + + Ankh + 1983 + Datamost + + + + + + + + + + + + + Apple Cider Spider + 1983 + Sierra On-Line + + + + + + + + + + + + + Apple Galaxian + 1980 + Broderbund Software + + + + + + + + + + + + + Aquatron + 1983 + Sierra On-Line + + + + + + + + + + + + + Archon: The Light and The Dark + 1984 + Electronic Arts + + + + + + + + + + + + + Ardy the Aardvark + 1983 + Datamost + + + + + + + + + + + + + Autobahn + 1981 + Sirius Software + + + + + + + + + + + + + Axis Assassin + 1982 + Electronic Arts + + + + + + + + + + + + + Aztec + 1982 + Datamost + + + + + + + + + + + + + Bad Dudes + 1988 + Data East USA + + + + + + + + + + + + + + + + + + + + Ballblazer + 1985 + Epyx + + + + + + + + + + + + + Batman: The Caped Crusader + 1985 + Data East USA + + + + + + + + + + + + + + + + + + + + BC's Quest for Tires + 1983 + Sierra On-Line + + + + + + + + + + + + + Bellhop + 1982 + Hayden Book Company + + + + + + + + + + + + + Below the Root + 1984 + Hayden Book Company + + + + + + + + + + + + + + + + + + + + The Bilestoad + 1983 + Datamost + + + + + + + + + + + + + Bug Battle + 1982 + United Software of America + + + + + + + + + + + + + Cannonball Blitz + 1982 + On-Line Systems + + + + + + + + + + + + + Caverns of Callisto + 1983 + Origin Systems + + + + + + + + + + + + + Ceiling Zero + 1981 + Turnkey Software + + + + + + + + + + + + + Centipede + 1983 + Atarisoft + + + + + + + + + + + + + Commando + 1987 + Data East USA + + + + + + + + + + + + + Congo Bongo + 1987 + SEGA Enterprises + + + + + + + + + + + + + Conquering Worlds + 1983 + Datamost + + + + + + + + + + + + + Copts and Robbers + 1981 + Sirius Software + + + + + + + + + + + + + County Fair + 1981 + Datamost + + + + + + + + + + + + + Crazy Mazey + 1982 + Datamost + + + + + + + + + + + + + Crisis Mountain + 1982 + Micro Fun + + + + + + + + + + + + + Crossfire + 1981 + On-Line Systems + + + + + + + + + + + + + Cubit + 1983 + Micromax + + + + + + + + + + + + + Cyber Strike + 1980 + Sirius Software + + + + + + + + + + + + + The Dam Busters + 1985 + Accolade + + + + + + + + + + + + + Death Sword + 1987 + Epyx + + + + + + + + + + + + + Defender II: Stargate + 1983 + Atarisoft + + + + + + + + + + + + + Destroyer + 1986 + Epyx + + + + + + + + + + + + + Dino Eggs + 1983 + Micro Fun + + + + + + + + + + + + + Dive Bomber + 1988 + Epyx + + + + + + + + + + + + + Donkey Kong + 1983 + Atarisoft + + + + + + + + + + + + + Drol + 1983 + Broderbund Software + + + + + + + + + + + + + Dung Beetles + 1982 + Datasoft + + + + + + + + + + + + + The Eidolon + 1985 + Epyx + + + + + + + + + + + + + Epoch + 1981 + Sirius Software + + + + + + + + + + + + + Falcons + 1981 + Piccadilly Software + + + + + + + + + + + + + + Fight Night + 1985 + Accolade + + + + + + + + + + + + + Flight Simulator II (v2.0) + 1985 + Accolade + + + + + + + + + + + + + Flip Out + 1982 + Sirius Software + + + + + + + + + + + + + Force 7 + 1987 + Datasoft + + + + + + + + + + + + + Formula 1 Racer + 1983 + Gentry Software + + + + + + + + + + + + + Free Fall + 1982 + Sirius Software + + + + + + + + + + + + + Frogger + 1981 + Sierra On-Line + + + + + + + + + + + + + Frogger II: Threedeep + 1984 + SEGA Enterprises + + + + + + + + + + + + + G.I. Joe + 1985 + Epyx + + + + + + + + + + + + + + + + + + + + The Games - Summer Edition + 1988 + Epyx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GATO + 1985 + Spectrum Holobyte + + + + + + + + + + + + + Genetic Drift + 1981 + Broderbund Software + + + + + + + + + + + + + Gobbler + 1981 + On-Line Systems + + + + + + + + + + + + + The Goonies + 1985 + Datasoft + + + + + + + + + + + + + Gumball + 1983 + Broderbund Software + + + + + + + + + + + + + The Heist + 1983 + Micro Fun + + + + + + + + + + + + + HERO - Helicopter Emergency Rescue Operation + 1983 + Activision + + + + + + + + + + + + + Hadron + 1981 + Sirius Software + + + + + + + + + + + + + Hard Hat Mack + 1983 + Electronic Arts + + + + + + + + + + + + Hardball + 1985 + Accolade + + + + + + + + + + + + + Head On + 1980 + California Pacific Computers + + + + + + + + + + + + + High Rise + 1983 + Micro Fun + + + + + + + + + + + + + Ikari Warriors + 1983 + Data East USA + + + + + + + + + + + + + + + + + + + + Ikari Warriors 2: Victory Road + 1981 + Sirius Software + + + + + + + + + + + + + + + + + - International Gran Prix - 1982 - MUSE Software - - - - - - - - - - - - - Jawbreaker - 1981 - On-Line Systems - - - - - - - - - - - - - Jawbreaker ][ - 1982 - Sierra On-Line - - - - - - - - - - - - - The Jet - 1986 - subLOGIC - - - - - - - - - - - - - Joust - 1983 - Atarisoft - - - - - - - - - - - - - Julius Erving and Larry Bird Go One on One - 1983 - Electronic Arts - - - - - - - - - - - - - Jungle Hunt - 1984 - Atarisoft - - - - - - - - - - - - - Karate Champ - 1985 - Data East - - - - - - - - - - - - - Karateka - 1984 - Broderbund Software - - - - - - - - - - - - - - - - - - - - Kid Niki - 1987 - Data East - - - - - - - - - - - - - - - - - - - - Kung Fu Master - 1985 - Data East - - - - - - - - - - - - - L.A. Crackdown - 1988 - Epyx - - - - - - - - - - - - - - - - - - - - Lock 'n Chase - 1982 - Mattel Electronics - - - - - - - - - - - - - Lode Runner - 1983 - Broderbund - - - - - - - - - - + International Gran Prix + 1982 + MUSE Software + + + + + + + + + + + + + Jawbreaker + 1981 + On-Line Systems + + + + + + + + + + + + + Jawbreaker ][ + 1982 + Sierra On-Line + + + + + + + + + + + + + The Jet + 1986 + subLOGIC + + + + + + + + + + + + + Joust + 1983 + Atarisoft + + + + + + + + + + + + + Julius Erving and Larry Bird Go One on One + 1983 + Electronic Arts + + + + + + + + + + + + + Jungle Hunt + 1984 + Atarisoft + + + + + + + + + + + + + Karate Champ + 1985 + Data East + + + + + + + + + + + + + Karateka + 1984 + Broderbund Software + + + + + + + + + + + + + + + + + + + + Kid Niki + 1987 + Data East + + + + + + + + + + + + + + + + + + + + Kung Fu Master + 1985 + Data East + + + + + + + + + + + + + L.A. Crackdown + 1988 + Epyx + + + + + + + + + + + + + + + + + + + + Lock 'n Chase + 1982 + Mattel Electronics + + + + + + + + + + + + + Lode Runner + 1983 + Broderbund + + + + + + + + + + - Lost Tomb - 1984 - Datasoft - - - - - - - - - - - - - Marauder - 1982 - On-Line Systems - - - - - - - - - - - - - Marble Madness - 1986 - Electronic Arts - - - - - - - - - - - - - - - - - - - - Mars Cars - 1982 - Datamost - - - - - - - - - - - - - Mating Zone - 1982 - Datamost - - - - - - - - - - - - - Megabots - 1986 - Neosoft - - - - - - - - - - - - - Might and Magic - 1986 - New World Computing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Miner 2049er - 1982 - Micro Fun - - - - - - - - - - - - - Minit Man - 1983 - Penguin Software - - - - - - - - - - - - - Impossible Mission II - 1988 - Epyx - - - - - - - - - - - - - - - - - - - - Money Muncher - 1982 - Datamost - - - - - - - - - - - - - Monster Smash - 1983 - Datamost - - - - - - - - - - - - - Montezuma's Revenge - 1984 - Parker Brothers - - - - - - - - - - - - - Moon Patrol - 1983 - Atarisoft - - - - - - - - - - - - - The Movie Monster Game - 1986 - Epyx - - - - - - - - - - - - - - - - - - - - Mr. Robot and his Robot Factory - 1984 - Datamost - - - - - - - - - - - - - Ms. Pac-Man - 1983 - Atarisoft - - - - - - - - - - - - - Night Mission Pinball - 1982 - subLOGIC - - - - - - - - - - - - - Night Stalker - 1982 - Mattel Electronics - - - - - - - - - - - - - Orbitron - 1981 - Sirius Software - - - - - - - - - - - - - O'Riley's Mine - 1981 - Datasoft - - - - - - - - - - - - - Outpost - 1981 - Sirius Software - - - - - - - - - - - - - Paperboy - 1988 - Mindscape - - - - - - - - - - - - - Pest Patrol - 1982 - Sierra On-Line - - - - - - - - - - - - - Phantoms Five - 1980 - Sirius Software - - - - - - - - - - - - - Picnic Paranoia - 1982 - Synapse Software - - - - - - - - - - - - - Pitfall II: Lost Caverns - 1984 - Activision - - - - - - - - - - - - - Pitstop II - 1984 - Epyx - - - - - - - - - - - - - Planetfall (r10) - 1988 - Infocom - - - - - - - - - - - - - - - - - - - - Plasmania - 1983 - Sirius Software - - - - - - - - - - - - - Platoon - 1988 - Data East USA - - - - - - - - - - - - - - - - - - - - Pool 1.5 - 1981 - Innovative Design Software, Inc. - - - - - - - - - - - - - Pooyan - 1984 - Datasoft - - - - - - - - - - - - - Prince of Persia - 1989 - Broderbund - - - - - - - - - - - - - - - - - - - - Qix - 1989 - Taito America - - - - - - - - - - - - - Rad Warrior - 1987 - Epyx - - - - - - - - - - - - - Rampage - 1988 - Activision - - - - - - - - - - - - - Raster Blaster - 1981 - BudgeCo - - - - - - - - - - - - - Red Alert - 1981 - Broderbund - - - - - - - - - - - - - Repton - 1982 - Sirius Software - - - - - - - - - - - - - Rescue Raiders - 1984 - Sir-Tech - - - - - - - - - - - - - RoboCop - 1988 - Data East USA - - - - - - - - - - - - - - - - - - - - Robotron 2084 - 1983 - Atarisoft - - - - - - - - - - - - - Roundabout - 1983 - Datamost - - - - - - - - - - - - - Russki Duck - 1982 - Gebelli Software - - - - - - - - - - - - - Sabotage - 1981 - On-Line Systems - - - - - - - - - - - - - Sammy Lightfoot - 1983 - Sierra On-Line - - - - - - - - - - - - - Sargon III - 1983 - Hayden Book Company - - - - - - - - - - - - - Sea Dragon - 1982 - Adventure International - - - - - - - - - - - - - Shadowkeep - 1983 - Trillium - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Shanghai - 1986 - Activision - - - - - - - - - - + Lost Tomb + 1984 + Datasoft + + + + + + + + + + + + + Marauder + 1982 + On-Line Systems + + + + + + + + + + + + + Marble Madness + 1986 + Electronic Arts + + + + + + + + + + + + + + + + + + + + Mars Cars + 1982 + Datamost + + + + + + + + + + + + + Mating Zone + 1982 + Datamost + + + + + + + + + + + + + Megabots + 1986 + Neosoft + + + + + + + + + + + + + Might and Magic + 1986 + New World Computing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Miner 2049er + 1982 + Micro Fun + + + + + + + + + + + + + Minit Man + 1983 + Penguin Software + + + + + + + + + + + + + Impossible Mission II + 1988 + Epyx + + + + + + + + + + + + + + + + + + + + Money Muncher + 1982 + Datamost + + + + + + + + + + + + + Monster Smash + 1983 + Datamost + + + + + + + + + + + + + Montezuma's Revenge + 1984 + Parker Brothers + + + + + + + + + + + + + Moon Patrol + 1983 + Atarisoft + + + + + + + + + + + + + The Movie Monster Game + 1986 + Epyx + + + + + + + + + + + + + + + + + + + + Mr. Robot and his Robot Factory + 1984 + Datamost + + + + + + + + + + + + + Ms. Pac-Man + 1983 + Atarisoft + + + + + + + + + + + + + Night Mission Pinball + 1982 + subLOGIC + + + + + + + + + + + + + Night Stalker + 1982 + Mattel Electronics + + + + + + + + + + + + + Orbitron + 1981 + Sirius Software + + + + + + + + + + + + + O'Riley's Mine + 1981 + Datasoft + + + + + + + + + + + + + Outpost + 1981 + Sirius Software + + + + + + + + + + + + + Paperboy + 1988 + Mindscape + + + + + + + + + + + + + Pest Patrol + 1982 + Sierra On-Line + + + + + + + + + + + + + Phantoms Five + 1980 + Sirius Software + + + + + + + + + + + + + Picnic Paranoia + 1982 + Synapse Software + + + + + + + + + + + + + Pitfall II: Lost Caverns + 1984 + Activision + + + + + + + + + + + + + Pitstop II + 1984 + Epyx + + + + + + + + + + + + + Planetfall (r10) + 1988 + Infocom + + + + + + + + + + + + + + + + + + + + Plasmania + 1983 + Sirius Software + + + + + + + + + + + + + Platoon + 1988 + Data East USA + + + + + + + + + + + + + + + + + + + + Pool 1.5 + 1981 + Innovative Design Software, Inc. + + + + + + + + + + + + + Pooyan + 1984 + Datasoft + + + + + + + + + + + + + Prince of Persia + 1989 + Broderbund + + + + + + + + + + + + + + + + + + + + Qix + 1989 + Taito America + + + + + + + + + + + + + Rad Warrior + 1987 + Epyx + + + + + + + + + + + + + Rampage + 1988 + Activision + + + + + + + + + + + + + Raster Blaster + 1981 + BudgeCo + + + + + + + + + + + + + Red Alert + 1981 + Broderbund + + + + + + + + + + + + + Repton + 1982 + Sirius Software + + + + + + + + + + + + + Rescue Raiders + 1984 + Sir-Tech + + + + + + + + + + + + + RoboCop + 1988 + Data East USA + + + + + + + + + + + + + + + + + + + + Robotron 2084 + 1983 + Atarisoft + + + + + + + + + + + + + Roundabout + 1983 + Datamost + + + + + + + + + + + + + Russki Duck + 1982 + Gebelli Software + + + + + + + + + + + + + Sabotage + 1981 + On-Line Systems + + + + + + + + + + + + + Sammy Lightfoot + 1983 + Sierra On-Line + + + + + + + + + + + + + Sargon III + 1983 + Hayden Book Company + + + + + + + + + + + + + Sea Dragon + 1982 + Adventure International + + + + + + + + + + + + + Shadowkeep + 1983 + Trillium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shanghai + 1986 + Activision + + + + + + + + + + - Shuffleboard - 1981 - IDSI - - - - - - - - - - - - - Skyfox - 1984 - Electronic Arts - - - - - - - - - - - - - Snack Attack - 1981 - Datamost - - - - - - - - - - - - - Snake Byte - 1981 - Sirius Software - - - - - - - - - - - - - Sneakers - 1981 - Sirius Software - - - - - - - - - - - - - - Space Eggs - 1981 - Sirius Software - - - - - - - - - - - - - Space Quarks - 1981 - Broderbund Software - - - - - - - - - - - - - Spare Change - 1983 - Broderbund Software - - - - - - - - - - - - - Spiderbot - 1988 - Epyx - - - - - - - - - - - - - Spindizzy - 1986 - Activision - - - - - - - - - - - - - Spy Hunter - 1983 - Bally Midway - - - - - - - - - - - - - The Spy Strikes Back - 1983 - Penguin Software - - - - - - - - - - - - - Spy vs Spy III: Arctic Antics - 1983 - Bally Midway - - - - - - - - - - - - - Spy's Demise - 1982 - Penguin - - - - - - - - - - - - - Star Cruiser - 1980 - Sirius Software - - - - - - - - - - - - - Star Thief - 1981 - Cavalier Computer - - - - - - - - - - - - - Stellar 7 - 1984 - Penguin Software - - - - - - - - - - - - - Street Sports Baseball - 1987 - Epyx - - - - - - - - - - - - - Street Sports Basketball - 1987 - Epyx - - - - - - - - - - - - - - - - - - - - Street Sports Football - 1988 - Epyx - - - - - - - - - - - - - - - - - - - - Street Sports Soccer - 1988 - Epyx - - - - - - - - - - - - - Sub Battle Simulator - 1986 - Epyx - - - - - - - - - - - - - - - - - - - - Suicide - 1981 - Piccadilly Software - - - - - - - - - - - - - Summer Games - 1984 - Epyx - - - - - - - - - - - - - - - - - - - - Swiss Family Robinson - 1984 - Windham Classics - - - - - - - - - - - - - Tag Team Wrestling - 1986 - Data East USA - - - - - - - - - - - - - Temple of Apshai Trilogy - 1985 - Epyx - - - - - - - - - - - - - Test Drive - 1985 - Accolade - - - - - - - - - - - - - - - - - - - - Tetris (128K) - 1987 - Spectrum HoloByte - - - - - - - - - - - - - Tharolian Tunnels - 1982 - Datamost - - - - - - - - - - - - - Thunder Bombs - 1982 - Penguin Software - - - - - - - - - - - - - Thunderchopper - 1987 - ActionSoft - - - - - - - - - - - - - Tomahawk - 1987 - Datasoft - - - - - - - - - - - - - Trick Shot - 1981 - IDSI - - - - - - - - - - - - - - - - - - - - Tubeway II - 1982 - Datamost - - - - - - - - - - - - - Twerps - 1981 - Sirius Software - - - - - - - - - - - - - Ultima IV: Quest of the Avatar - 1985 - Origin Systems - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ultima V: Warriors of Destiny - 1988 - Origin Systems - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Up 'N Down - 1981 - Bally Midway - - - - - - - - - - - - - Vindicator - 1983 - H.A.L. Labs - - - - - - - - - - - - - Wavy Navy - 1982 - Sirius Software - - - - - - - - - - - - - Wayout - 1982 - Sirius Software - - - - - - - - - - - - - Where in the USA is Carmen Sandiego - 1986 - Broderbund - - - - - - - - - - - - - - - - - - - - Wings of Fury - 1987 - Broderbund - - - - - - - - - - - - - - - - - - - - Wishbringer (r23) - 1988 - Infocom - - - - - - - - - - - - - - - - - - - - World Karate Championship - 1986 - Epyx - - - - - - - - - - - - - The World's Greatest Baseball Game - 1984 - Epyx - - - - - - - - - - - - - The World's Greatest Football Game - 1985 - Epyx - - - - - - - - - - - - - - - - - - - - Xevious - 1984 - Mindscape - - - - - - - - - - - - - Zendar - 1982 - subLOGIC - - - - - - - - - - - - - Zorro - 1985 - Datasoft - - - - - - - - - - + Shuffleboard + 1981 + IDSI + + + + + + + + + + + + + Skyfox + 1984 + Electronic Arts + + + + + + + + + + + + + Snack Attack + 1981 + Datamost + + + + + + + + + + + + + Snake Byte + 1981 + Sirius Software + + + + + + + + + + + + + Sneakers + 1981 + Sirius Software + + + + + + + + + + + + + + Space Eggs + 1981 + Sirius Software + + + + + + + + + + + + + Space Quarks + 1981 + Broderbund Software + + + + + + + + + + + + + Spare Change + 1983 + Broderbund Software + + + + + + + + + + + + + Spiderbot + 1988 + Epyx + + + + + + + + + + + + + Spindizzy + 1986 + Activision + + + + + + + + + + + + + Spy Hunter + 1983 + Bally Midway + + + + + + + + + + + + + The Spy Strikes Back + 1983 + Penguin Software + + + + + + + + + + + + + Spy vs Spy III: Arctic Antics + 1983 + Bally Midway + + + + + + + + + + + + + Spy's Demise + 1982 + Penguin + + + + + + + + + + + + + Star Cruiser + 1980 + Sirius Software + + + + + + + + + + + + + Star Thief + 1981 + Cavalier Computer + + + + + + + + + + + + + Stellar 7 + 1984 + Penguin Software + + + + + + + + + + + + + Street Sports Baseball + 1987 + Epyx + + + + + + + + + + + + + Street Sports Basketball + 1987 + Epyx + + + + + + + + + + + + + + + + + + + + Street Sports Football + 1988 + Epyx + + + + + + + + + + + + + + + + + + + + Street Sports Soccer + 1988 + Epyx + + + + + + + + + + + + + Sub Battle Simulator + 1986 + Epyx + + + + + + + + + + + + + + + + + + + + Suicide + 1981 + Piccadilly Software + + + + + + + + + + + + + Summer Games + 1984 + Epyx + + + + + + + + + + + + + + + + + + + + Swiss Family Robinson + 1984 + Windham Classics + + + + + + + + + + + + + Tag Team Wrestling + 1986 + Data East USA + + + + + + + + + + + + + Temple of Apshai Trilogy + 1985 + Epyx + + + + + + + + + + + + + Test Drive + 1985 + Accolade + + + + + + + + + + + + + + + + + + + + Tetris (128K) + 1987 + Spectrum HoloByte + + + + + + + + + + + + + Tharolian Tunnels + 1982 + Datamost + + + + + + + + + + + + + Thunder Bombs + 1982 + Penguin Software + + + + + + + + + + + + + Thunderchopper + 1987 + ActionSoft + + + + + + + + + + + + + Tomahawk + 1987 + Datasoft + + + + + + + + + + + + + Trick Shot + 1981 + IDSI + + + + + + + + + + + + + + + + + + + + Tubeway II + 1982 + Datamost + + + + + + + + + + + + + Twerps + 1981 + Sirius Software + + + + + + + + + + + + + Ultima IV: Quest of the Avatar + 1985 + Origin Systems + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ultima V: Warriors of Destiny + 1988 + Origin Systems + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Up 'N Down + 1981 + Bally Midway + + + + + + + + + + + + + Vindicator + 1983 + H.A.L. Labs + + + + + + + + + + + + + Wavy Navy + 1982 + Sirius Software + + + + + + + + + + + + + Wayout + 1982 + Sirius Software + + + + + + + + + + + + + Where in the USA is Carmen Sandiego + 1986 + Broderbund + + + + + + + + + + + + + + + + + + + + Wings of Fury + 1987 + Broderbund + + + + + + + + + + + + + + + + + + + + Wishbringer (r23) + 1988 + Infocom + + + + + + + + + + + + + + + + + + + + World Karate Championship + 1986 + Epyx + + + + + + + + + + + + + The World's Greatest Baseball Game + 1984 + Epyx + + + + + + + + + + + + + The World's Greatest Football Game + 1985 + Epyx + + + + + + + + + + + + + + + + + + + + Xevious + 1984 + Mindscape + + + + + + + + + + + + + Zendar + 1982 + subLOGIC + + + + + + + + + + + + + Zorro + 1985 + Datasoft + + + + + + + + + + diff --git a/hash/clickstart_cart.xml b/hash/clickstart_cart.xml index 156e3e16df2..43b1151435b 100644 --- a/hash/clickstart_cart.xml +++ b/hash/clickstart_cart.xml @@ -158,7 +158,7 @@ - + Toy Story (SP) 2007 @@ -171,8 +171,8 @@ - - + + Bob the Builder (UK) 2007 @@ -185,8 +185,8 @@ - - + + Thomas & Friends (UK) 2007 @@ -199,7 +199,7 @@ - + Dora the Explorer (UK) @@ -213,6 +213,6 @@ - + diff --git a/hash/ekara_japan.xml b/hash/ekara_japan.xml index 34691abfb53..a6e6faa2e08 100644 --- a/hash/ekara_japan.xml +++ b/hash/ekara_japan.xml @@ -7,9 +7,9 @@ Japanese e-kara carts appear to have a number of different genres split across various cart sub-series (often supporting different hw types) special releases etc. - + This file is for the base set (number on case, ECxxxx-xxx part numbers) - + The genres in the Japanese games are represented by the code after the EC/DC/MC/GC/PC etc. number JPM = J-Pop Mix ATS = Artist Selection (all songs by a single artist) @@ -27,21 +27,21 @@ ATM = unknown (used by the M series 'mini' carts) TPJ = TV Pop MIN = unknown - + Some Japanese carts have a number starting with S (S-x on case, SCxxxx-xxx part numbers) (see ekara_japan_s.xml) (for e-kara - custom presentation) M (M-x on case, MCxxxx-xxx part numbers) (see ekara_japan_m.xml) (for e-kara - custom presentation) - EN (EN-X on case, no part numbers) (see ekara_japan_en.xml) (for e-kara - custom presentation) (check other compatibility) + EN (EN-X on case, no part numbers) (see ekara_japan_en.xml) (for e-kara - custom presentation) (check other compatibility) G (G-x on case, GCxxxx-xxx part numbers) (see ekara_japan_g.xml) (for e-kara, Popira / 2) P (P-x on case, PCxxxx-xxx part numbers) (see ekara_japan_p.xml) (for e-kara, Popira / 2, DDR Family Mat) - D (D-x on case, DCxxxx-xxx part numbers) (see ekara_japan_d.xml) (for e-kara, Popira / 2, Taiko De Popira) + D (D-x on case, DCxxxx-xxx part numbers) (see ekara_japan_d.xml) (for e-kara, Popira / 2, Taiko De Popira) SP (SP-x on case, no part numbers) (see ekara_japan_sp.xml) (for e-kara, Popira / 2, Taiko de Popira, Jumping Popira) these exist but haven't got any Some Japanese carts have a number starting with JP (for Jumping Popira Only?) A (for Pichi Pichi Pitch Only?) KE (for Kids Lyric book device Only?) - KD (for e-kara?) - + KD (for e-kara?) + (there are others, need to document them) @@ -50,7 +50,7 @@ Genres can cross multiple cart types, eg. TV Pop 1,3,4,5,6 are in the 'G' series, while TV Pop 2 is in the 'P' series, and TV Pop 9 is in the 'D' series (where are 7,8?) for non-Japanese carts see ekara_us.xml and ekara_pal.xml, the PAL ones are noteworthy for using a different timing system - + *********************************************************************************** Japanese cart listing (by 'just number' code) (number on cartridge / box, EC in cart identifier code) @@ -312,7 +312,7 @@ - + Kid's Mix Volume 1 (Japan) (EC0010-KID) 2000 @@ -369,7 +369,7 @@ - + @@ -386,7 +386,7 @@ - + J-Pop Mix Volume 9 (Japan) (EC0021-JPM) 2000 @@ -604,7 +604,7 @@ - + @@ -740,11 +740,11 @@ - + - + - + J-Pop Mix Volume 33 (Japan) (EC0068-JPM) 2001 @@ -783,9 +783,9 @@ - - - + + + @@ -798,11 +798,11 @@ - + - + - + ETZ (Japan) (EC0079-ETZ) 2002 @@ -812,12 +812,12 @@ - - + + - + - + Matthew's Best Hit Selection (Japan) (EC0082-MBH) 2003 @@ -827,12 +827,12 @@ - - + + - + - + - + diff --git a/hash/ekara_japan_d.xml b/hash/ekara_japan_d.xml index 859ccb93a85..cfaa6844b09 100644 --- a/hash/ekara_japan_d.xml +++ b/hash/ekara_japan_d.xml @@ -21,12 +21,12 @@ D-3 DC0003-BHT BHT (Best Artists?) Volume 9? (most other BHT carts are in G series, or P series) D-4 DC0004- (unknown) *D-5 DC0005-TPJ TV Pop Volume 9 - D-6 DC0006- (seen) + D-6 DC0006- (seen) D-7 DC0007- (seen) D-8 DC0008- (seen) - + (more? what's the D highest number?) - + --> diff --git a/hash/ekara_japan_en.xml b/hash/ekara_japan_en.xml index 63533f411bb..f23b7117b31 100644 --- a/hash/ekara_japan_en.xml +++ b/hash/ekara_japan_en.xml @@ -5,11 +5,11 @@ - + EN-3 (Japan) 2004 @@ -27,6 +27,6 @@ - - + + diff --git a/hash/ekara_japan_g.xml b/hash/ekara_japan_g.xml index 1191b84109c..42acff7a551 100644 --- a/hash/ekara_japan_g.xml +++ b/hash/ekara_japan_g.xml @@ -32,7 +32,7 @@ (more? what's the G highest number?) --> - + BAT Volume 1 (Japan) (GC0001-BAT) 2000 @@ -65,7 +65,7 @@ - + BHT Volume 2 (Japan) (GC0004-BHT) 2000 @@ -76,7 +76,7 @@ - + BHT Volume 3 (Japan) (GC0006-BHT) 2000 @@ -87,18 +87,18 @@ - + + Unless Popira 2 is different (unlikely) it doesn't look like the SEEPROM in this cartridge can be used (unfinished design?) --> BAT Volume 4 (Japan) (GC0010-BAT) 2002 @@ -109,9 +109,9 @@ - - - + + + BAT Volume 5 (Japan) (GC0015-BAT) @@ -123,8 +123,8 @@ - - + + TV Pop Volume 5 (Japan) (GC0016-TPJ) 2002 @@ -135,6 +135,6 @@ - - + + diff --git a/hash/ekara_japan_m.xml b/hash/ekara_japan_m.xml index f068d1edd87..9f08af0b1e8 100644 --- a/hash/ekara_japan_m.xml +++ b/hash/ekara_japan_m.xml @@ -18,11 +18,11 @@ M-11 M-12 M-13 MC0013-KSM KSM Mini Volume 5 - + (more? what's the M highest number?) --> - + diff --git a/hash/ekara_japan_p.xml b/hash/ekara_japan_p.xml index a6736fff155..55f8c2fe06f 100644 --- a/hash/ekara_japan_p.xml +++ b/hash/ekara_japan_p.xml @@ -39,17 +39,17 @@ - + BHT Volume 7 (Japan) (PC0004-BHT) 2002 Takara - + - + - + diff --git a/hash/ekara_japan_s.xml b/hash/ekara_japan_s.xml index bf95c5d9826..ead455a7582 100644 --- a/hash/ekara_japan_s.xml +++ b/hash/ekara_japan_s.xml @@ -13,7 +13,7 @@ S-1 SC0001- Hello Kitty Special S-2 SC0002- (unknown) S-3 SC0003- (unknown) - S-4 *SC0004-SAI SAI (series 1) Volume 1 + S-4 *SC0004-SAI SAI (series 1) Volume 1 S-5 *SC0005-SAI SAI (series 2) Volume 1 (same series as 6,9,19,21,22) S-6 *SC0006-SAI SAI (series 2) Volume 2 (same series as 5,9,19,21,22) S-7 SC0007- (unknown) @@ -21,7 +21,7 @@ S-9 *SC0009-SAI SAI (series 2) Volume 3 (same series as 5,6,19,21,22) S-10 *SC0010-HWK HWK (untranslated) S-11 SC0011- (unknown) - S-12 *SC0012-SAI SAI (series 3) Volume 3 + S-12 *SC0012-SAI SAI (series 3) Volume 3 S-13 SC0013- (unknown) S-14 SC0014- (unknown) S-15 SC0015- (unknown) @@ -35,7 +35,7 @@ S-23 SC0023- (unknown) (more? what's the S highest number?) - + --> diff --git a/hash/ekara_japan_sp.xml b/hash/ekara_japan_sp.xml index efb6ea08554..d9e1bc16492 100644 --- a/hash/ekara_japan_sp.xml +++ b/hash/ekara_japan_sp.xml @@ -7,7 +7,7 @@ *********************************************************************************** Japanese cart listing (by SP code) * = dumped - + These don't seem to have a secondary numbering scheme (eg SPxxxx-xxx) These are for use with 5 different units @@ -16,14 +16,14 @@ 3. Popira 2 (Blue/Green) ( https://www.youtube.com/watch?v=iY1I-jfXw7U ) 4. Taiko de Popira 5. Jumping Popira (Stepping Mat type thing) ( https://www.youtube.com/watch?v=yJruMOBdLFY ) - + If you plug this into a DDR Family Mat you get the message (in Japanese) - + "please play this cartridge on e-kara series, popira, popira 2, taiko de popira or jumping popira" gives 'memory error' if plugged into Popira (needs cartridge SEEPROM emulating) gives 'eep-rom error' if plugged into Taiko de Popira (same reason) - + SP-01 (unknown) *SP-02 'Super Cartridge' SP-2 SP-03 (unknown) @@ -46,5 +46,5 @@ - + diff --git a/hash/ekara_us.xml b/hash/ekara_us.xml index e16a244b617..69af8ccac8d 100644 --- a/hash/ekara_us.xml +++ b/hash/ekara_us.xml @@ -229,5 +229,5 @@ - + diff --git a/hash/jakks_gamekey_dy.xml b/hash/jakks_gamekey_dy.xml index 1eb4a801760..00e041cea04 100644 --- a/hash/jakks_gamekey_dy.xml +++ b/hash/jakks_gamekey_dy.xml @@ -1,12 +1,12 @@ - + - + - + Sports Bowling & Goofy's Underwater Adventure 2005 @@ -14,9 +14,9 @@ - - - + + + @@ -28,13 +28,13 @@ - - - - + + + + - + Sports Tennis & Face Chase & Riches of Agrabah 2005 @@ -42,11 +42,11 @@ - - - - + + + + - - + + diff --git a/hash/jakks_gamekey_nk.xml b/hash/jakks_gamekey_nk.xml index d95389638ab..da91e1abcbf 100644 --- a/hash/jakks_gamekey_nk.xml +++ b/hash/jakks_gamekey_nk.xml @@ -1,9 +1,9 @@ - + - + Soccer Shootout & Juego De Futbol De Dora & Dora's Star Mountain Adventure 2005 @@ -11,9 +11,9 @@ - - - + + + diff --git a/hash/jakks_gamekey_sw.xml b/hash/jakks_gamekey_sw.xml index 1485cb87b70..831d5eb8df1 100644 --- a/hash/jakks_gamekey_sw.xml +++ b/hash/jakks_gamekey_sw.xml @@ -1,12 +1,12 @@ - + - + - + Turret Defense & Yoda's Escape 2005 @@ -20,5 +20,5 @@ - + diff --git a/hash/pce_tourvision.xml b/hash/pce_tourvision.xml index 510ebc7abd9..58b3f4ea510 100644 --- a/hash/pce_tourvision.xml +++ b/hash/pce_tourvision.xml @@ -898,10 +898,10 @@ Parasol Stars - + @@ -1041,7 +1041,7 @@ Parasol Stars Pro Yakyuu World Stadium '91 (TourVision PCE bootleg) 1991 bootleg (TourVision) / Namcot - + @@ -1067,7 +1067,7 @@ Parasol Stars Puzzle Boy (TourVision PCE bootleg) 1991 bootleg (TourVision) / Nihon Telenet - + @@ -1080,11 +1080,11 @@ Parasol Stars Puzznic (TourVision PCE bootleg) 1990 bootleg (TourVision) / Taito - + - + @@ -1123,7 +1123,7 @@ Parasol Stars - + diff --git a/hash/vsmile_cart.xml b/hash/vsmile_cart.xml index bb7ab418a3a..f097cf4ded7 100644 --- a/hash/vsmile_cart.xml +++ b/hash/vsmile_cart.xml @@ -1892,7 +1892,7 @@ Game cartridges - + Superman - Der Superheld (Ger) 200? diff --git a/hash/vtech_storio_cart.xml b/hash/vtech_storio_cart.xml index 32d6e17d970..1d901cf1ff0 100644 --- a/hash/vtech_storio_cart.xml +++ b/hash/vtech_storio_cart.xml @@ -1,10 +1,10 @@ - + - + - + BAT Volume 4 (Japan) (GC0010-BAT) 2002 @@ -183,7 +183,7 @@ - + TV Pop Volume 6 (Japan) (GC0017-TPJ) 2002 @@ -194,6 +194,6 @@ - + diff --git a/hash/ekara_japan_m.xml b/hash/ekara_japan_m.xml index f46f458b793..3be3576dbe8 100644 --- a/hash/ekara_japan_m.xml +++ b/hash/ekara_japan_m.xml @@ -54,7 +54,7 @@ - + KSM Mini Volume 2 (Japan) (MC0006-KSM) 2003 @@ -64,7 +64,7 @@ - + Artist Mini Volume 7 (untranslated artist) (Japan) (MC0012-ATM) @@ -87,7 +87,7 @@ - + Artist Mini Volume 8 (BoA) (Japan) (MC0014-ATM) 2003 @@ -97,6 +97,6 @@ - + diff --git a/hash/ekara_japan_p.xml b/hash/ekara_japan_p.xml index 2995bb8d5b6..7b87f3cb076 100644 --- a/hash/ekara_japan_p.xml +++ b/hash/ekara_japan_p.xml @@ -50,7 +50,7 @@ - + ENB Volume 1 (Japan) (PC0003-ENB) 2001 diff --git a/hash/ekara_japan_sp.xml b/hash/ekara_japan_sp.xml index e5f67af4a96..f0fa50dfb0f 100644 --- a/hash/ekara_japan_sp.xml +++ b/hash/ekara_japan_sp.xml @@ -44,7 +44,7 @@ - + SP-03 Super Cartridge (Japan) 2004 @@ -55,8 +55,8 @@ - - + + SP-04 Super Cartridge (Japan) 2004 @@ -67,6 +67,6 @@ - - + + diff --git a/hash/ekara_japan_web.xml b/hash/ekara_japan_web.xml index 34e7103c6e6..9ba3f9f10b9 100644 --- a/hash/ekara_japan_web.xml +++ b/hash/ekara_japan_web.xml @@ -27,9 +27,9 @@ - + - + e-kara Web cartridge 12M (used, with 7 Songs) (Japan) 2003 @@ -39,6 +39,6 @@ - + diff --git a/hash/gamate.xml b/hash/gamate.xml index 20534013173..17f601498c8 100644 --- a/hash/gamate.xml +++ b/hash/gamate.xml @@ -546,7 +546,7 @@ C1066 - ?? - + Famous 7 1993 diff --git a/hash/ibm5150.xml b/hash/ibm5150.xml old mode 100755 new mode 100644 index 0516e41135b..23a399ad960 --- a/hash/ibm5150.xml +++ b/hash/ibm5150.xml @@ -3592,7 +3592,7 @@ Known PC Booter Games Not Dumped, Or Dumped and Lost when Demonlord's Site went - + StretchCalc 1983 @@ -7132,7 +7132,7 @@ has been replaced with an all-zero block. --> - + The Bard's Tale - Tales of the Unknown (5.25") 1987 @@ -7409,7 +7409,7 @@ has been replaced with an all-zero block. --> - + Budokan - The Martial Spirit 1989 @@ -7420,7 +7420,7 @@ has been replaced with an all-zero block. --> - + Budokan - The Martial Spirit (Big Games release) 1989 @@ -8171,7 +8171,7 @@ has been replaced with an all-zero block. --> - + Gunboat: River Combat Simulation (Hit Squad release) 1990 @@ -8357,7 +8357,7 @@ has been replaced with an all-zero block. --> - + James Clavell's Shogun (set 1) 1987 @@ -9271,7 +9271,7 @@ has been replaced with an all-zero block. --> - + Monopoly v2.00 (Shareware) 1989 @@ -9298,7 +9298,7 @@ has been replaced with an all-zero block. --> - + Monty Python's Flying Circus (3.5") 1990 @@ -10279,7 +10279,7 @@ has been replaced with an all-zero block. --> - + The Simpsons - Bart vs. the Space Mutants (Hit-Squad release) 1991 @@ -11038,7 +11038,7 @@ has been replaced with an all-zero block. --> - + Xenon (5.25") 1988 @@ -11056,7 +11056,7 @@ has been replaced with an all-zero block. --> - + Xenon (16 Blitz Plus release) (3.5") 1990 @@ -11123,7 +11123,7 @@ has been replaced with an all-zero block. --> - + Zool (Big Games release) 1993 diff --git a/hash/ibm5170.xml b/hash/ibm5170.xml index c2239a98a2d..6b6de203046 100644 --- a/hash/ibm5170.xml +++ b/hash/ibm5170.xml @@ -10747,7 +10747,7 @@ - + Micro Machines 2: Turbo Tournament 1995 @@ -11301,7 +11301,7 @@ - + The Secret of Monkey Island (Italian) 1991 diff --git a/hash/jpopira_jp.xml b/hash/jpopira_jp.xml index f3dade22f25..90c0b1b18f8 100644 --- a/hash/jpopira_jp.xml +++ b/hash/jpopira_jp.xml @@ -29,7 +29,7 @@ - + JP-02 (Japan) 2004 @@ -41,5 +41,5 @@ - + diff --git a/hash/msx1_cass.xml b/hash/msx1_cass.xml old mode 100755 new mode 100644 diff --git a/hash/sega_beena_cart.xml b/hash/sega_beena_cart.xml index ed5245bd853..95d46c8abbe 100644 --- a/hash/sega_beena_cart.xml +++ b/hash/sega_beena_cart.xml @@ -3,8 +3,8 @@ - - + + Fresh Pretty Cure 2009 Sega diff --git a/hash/timex_dock.xml b/hash/timex_dock.xml old mode 100755 new mode 100644 diff --git a/hash/vgmplay.xml b/hash/vgmplay.xml index 9c98d6a576b..c991909a30c 100644 --- a/hash/vgmplay.xml +++ b/hash/vgmplay.xml @@ -227454,7 +227454,7 @@ - + diff --git a/plugins/cheatfind/init.lua b/plugins/cheatfind/init.lua index dd09da404a7..276193acc13 100644 --- a/plugins/cheatfind/init.lua +++ b/plugins/cheatfind/init.lua @@ -259,17 +259,17 @@ function cheatfind.startplugin() local devtable = {} local devsel = 1 local devcur = 1 - - + + --local formtable = { " I1", " i1", "I2", "i2", "I4", "i4", "I8", "i8", }-- " f", " d" } --local formname = { "u8", "s8", "little u16", "big u16", "little s16", "big s16", - -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", } - -- -- "little float", "big float", "little double", "big double" } + -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", } + -- -- "little float", "big float", "little double", "big double" } -- Reordered into likelyhood of use order: unsigned byte by big endian unsigned by little endian unsigned then unsigned in same order local formtable = { " I1", ">I2", ">I4", ">I8", "i2", ">i4", ">i8", "f", " d" } - local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32", - "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", } - + local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32", + "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", } + local width = 1 local bcd = 0 local align = 0 @@ -278,16 +278,16 @@ function cheatfind.startplugin() local value = 0 local leftop = 1 local rightop = 1 - local leftop_text = "Slot 1" - local rightop_text = "Slot 1" - local value_text = "" - local expression_text = "Slot 1 < Slot 1" + local leftop_text = "Slot 1" + local rightop_text = "Slot 1" + local value_text = "" + local expression_text = "Slot 1 < Slot 1" local pausetable = { "Automatic", "Manual" } local pausesel = 1 - local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)", + local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)", "0xFF (Decimal 255)" , "0x3E7 (Decimal 999)", "0x999 (BCD 999)", "0x270F (Decimal 9999)", "0x9999 (BCD 9999)", "0xFFFF (Decimal 65535)" } local pokevalsel = 1 - + local matches = {} local matchsel = 0 local matchpg = 0 @@ -350,12 +350,12 @@ function cheatfind.startplugin() end emu.register_start(start) - + local menu_is_showing = false - local tabbed_out = false - + local tabbed_out = false + local function menu_populate() - if pausesel == 1 then + if pausesel == 1 then emu.pause() menu_is_showing = true end @@ -504,24 +504,24 @@ function cheatfind.startplugin() local m = { _("Pause Mode"), pausetable[pausesel], 0 } menu_lim(pausesel, 1, pausetable, m) local function f(event) - if (event == "left" or event == "right") then + if (event == "left" or event == "right") then if pausesel == 1 then pausesel = 2 menu_is_showing = false manager:machine():popmessage(_("Manually pause & unpause the game when needed with the pause hotkey")) - else + else pausesel = 1 emu.pause() - end + end end return true end - return m, f - end + return m, f + end + + - - menu[#menu + 1] = function() local function f(event) local ret = false @@ -542,7 +542,7 @@ function cheatfind.startplugin() leftop_text = "Slot 1" rightop_text = "Slot 1" value_text = "" - expression_text = "Slot 1 < Slot 1" + expression_text = "Slot 1 < Slot 1" matchsel = 0 return true end @@ -550,9 +550,9 @@ function cheatfind.startplugin() local opsel = 1 return { _("Start new search"), "", 0 }, f end - - + + if #menu_blocks ~= 0 then menu[#menu + 1] = function() return { "---", "", "off" }, nil end menu[#menu + 1] = function() @@ -562,7 +562,7 @@ function cheatfind.startplugin() menu_blocks[num][#menu_blocks[num] + 1] = cheat.save(devtable[devcur].space, region.offset, region.size) end manager:machine():popmessage(string.format(_("Memory State saved to Slot %d"), #menu_blocks[1])) - + if (leftop == #menu_blocks[1] - 1 and rightop == #menu_blocks[1] - 2 ) then leftop = #menu_blocks[1] rightop = #menu_blocks[1]-1 @@ -571,7 +571,7 @@ function cheatfind.startplugin() rightop = #menu_blocks[1] elseif (leftop == #menu_blocks[1] - 1 ) then leftop = #menu_blocks[1] - elseif (rightop == #menu_blocks[1] - 1) then + elseif (rightop == #menu_blocks[1] - 1) then rightop = #menu_blocks[1] end leftop_text = string.format("Slot %d", leftop) @@ -618,27 +618,27 @@ function cheatfind.startplugin() return true end end - + if optable[opsel] == "lt" then if (value == 0 ) then - expression_text = string.format("%s < %s", leftop_text, rightop_text) - else - expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value) - end + expression_text = string.format("%s < %s", leftop_text, rightop_text) + else + expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value) + end elseif optable[opsel] == "gt" then if (value == 0 ) then - expression_text = string.format("%s > %s", leftop_text, rightop_text) - else - expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value) - end + expression_text = string.format("%s > %s", leftop_text, rightop_text) + else + expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value) + end elseif optable[opsel] == "eq" then expression_text = string.format("%s == %s", leftop_text, rightop_text) elseif optable[opsel] == "ne" then if (value == 0 ) then - expression_text = string.format("%s != %s", leftop_text, rightop_text) - else - expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value) - end + expression_text = string.format("%s != %s", leftop_text, rightop_text) + else + expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value) + end elseif optable[opsel] == "beq" then expression_text = string.format("%s BITWISE== %s", leftop_text, rightop_text) elseif optable[opsel] == "bne" then @@ -651,10 +651,10 @@ function cheatfind.startplugin() expression_text = string.format("%s == %d", leftop_text, value) elseif optable[opsel] == "nev" then string.format("%s != %d", leftop_text, value) - end + end return { _("Perform Compare : ") .. expression_text, "", 0 }, f end - menu[#menu + 1] = function() return { "---", "", "off" }, nil end + menu[#menu + 1] = function() return { "---", "", "off" }, nil end menu[#menu + 1] = function() local m = { _(leftop), "", 0 } menu_lim(leftop, 1, #menu_blocks[1], m) @@ -712,7 +712,7 @@ function cheatfind.startplugin() m = { _("Value"), value, "" } else m = { _("Difference"), value, "" } - end + end local max = 100 -- max value? menu_lim(value, 0, max, m) if value == 0 and optable[opsel]:sub(3, 3) ~= "v" then @@ -726,7 +726,7 @@ function cheatfind.startplugin() menu_lim(width, 1, #formtable, m) return m, function(event) local r width, r = incdec(event, width, 1, #formtable) return r end end - + menu[#menu + 1] = function() local m = { _("Test/Write Poke Value"), pokevaltable[pokevalsel], 0 } menu_lim(pokevalsel, 1, #pokevaltable, m) @@ -741,19 +741,19 @@ function cheatfind.startplugin() elseif pokevalsel == 3 then manager:machine():popmessage(_("Use this if you want to poke 0x00")) elseif pokevalsel == 4 then - manager:machine():popmessage(_("Use this if you want to poke 0x01")) + manager:machine():popmessage(_("Use this if you want to poke 0x01")) elseif pokevalsel == 5 then manager:machine():popmessage(_("Use this if you want to poke 0x02")) elseif pokevalsel == 6 then - manager:machine():popmessage(_("Use this if you want to poke 0x03")) + manager:machine():popmessage(_("Use this if you want to poke 0x03")) elseif pokevalsel == 7 then manager:machine():popmessage(_("Use this if you want to poke 0x04")) elseif pokevalsel == 8 then - manager:machine():popmessage(_("Use this if you want to poke 0x05")) + manager:machine():popmessage(_("Use this if you want to poke 0x05")) elseif pokevalsel == 9 then manager:machine():popmessage(_("Use this if you want to poke 0x06")) elseif pokevalsel == 10 then - manager:machine():popmessage(_("Use this if you want to poke 0x07")) + manager:machine():popmessage(_("Use this if you want to poke 0x07")) elseif pokevalsel == 11 then manager:machine():popmessage(_("Use this if you want to poke 0x08")) elseif pokevalsel == 12 then @@ -763,7 +763,7 @@ function cheatfind.startplugin() elseif pokevalsel == 14 then manager:machine():popmessage(_("Use this if you want to poke 0x99 (BCD 99)")) elseif pokevalsel == 15 then - manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)")) + manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)")) elseif pokevalsel == 16 then manager:machine():popmessage(_("Use this if you want to poke 0x3E7 (Decimal 999)")) elseif pokevalsel == 17 then @@ -773,15 +773,15 @@ function cheatfind.startplugin() elseif pokevalsel == 19 then manager:machine():popmessage(_("Use this if you want to poke 0x9999 (BCD 9999)")) elseif pokevalsel == 20 then - manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)")) + manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)")) end end return r end return m, f end - - + + menu[#menu + 1] = function() if optable[opsel] == "bne" or optable[opsel] == "beq" then return nil @@ -873,12 +873,12 @@ function cheatfind.startplugin() local function match_exec(match) local dev = devtable[devcur] - + local wid = formtable[width]:sub(3, 3) local widchar local pokevalue local form - + if pokevalsel == 1 then pokevalue = match.oldval elseif pokevalsel == 2 then @@ -914,25 +914,25 @@ function cheatfind.startplugin() elseif pokevalsel == 17 and wid == "1" then pokevalue = 153 elseif pokevalsel == 18 and wid == "1" then - pokevalue = 99 + pokevalue = 99 elseif pokevalsel == 19 and wid == "1" then - pokevalue = 153 + pokevalue = 153 elseif pokevalsel == 20 and wid == "1" then - pokevalue = 255 + pokevalue = 255 elseif pokevalsel == 16 then - pokevalue = 999 + pokevalue = 999 elseif pokevalsel == 17 then - pokevalue = 2457 + pokevalue = 2457 elseif pokevalsel == 18 then - pokevalue = 9999 + pokevalue = 9999 elseif pokevalsel == 19 then - pokevalue = 39321 + pokevalue = 39321 elseif pokevalsel == 20 then - pokevalue = 65535 + pokevalue = 65535 end - + local cheat = { desc = string.format(_("Test Cheat %08X:%02X"), match.addr, pokevalue), script = {} } - + if wid == "2" then wid = "u16" form = "%08x %04x" @@ -958,7 +958,7 @@ function cheatfind.startplugin() form = "%08x %02x" widchar = "b" end - + if getmetatable(dev.space).__name:match("device_t") then cheat.ram = { ram = dev.tag } cheat.script.run = "ram:write(" .. match.addr .. "," .. pokevalue .. ")" @@ -1001,7 +1001,7 @@ function cheatfind.startplugin() cheat_save.json = json.stringify({[1] = cheat}, {indent = true}) cheat_save.xml = string.format("\n \n \n \n", dev.tag:sub(2), widchar, match.addr, match.newval) cheat_save.simple = string.format("%s,%s,%X,%s,%X,%%s\n", setname, dev.tag, match.addr, widchar, pokevalue) - cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue) + cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue) manager:machine():popmessage(string.format(_("Default name is %s"), cheat_save.name)) return true else @@ -1026,7 +1026,7 @@ function cheatfind.startplugin() match.mode = 1 end local modes = { _("Test"), _("Write"), _("Watch") } - local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval, + local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval, match.newval), modes[match.mode], 0 } menu_lim(match.mode, 1, #modes, m) local function f(event) @@ -1081,12 +1081,12 @@ function cheatfind.startplugin() local height = mame_manager:ui():get_line_height() for num, watch in ipairs(watches) do screen:draw_text("left", num * height, string.format(watch.format, watch.addr, watch.func())) - end + end if tabbed_out and manager:ui():is_menu_active() then emu.pause() menu_is_showing = true tabbed_out = false - end + end end) emu.register_periodic(function () if menu_is_showing and not manager:ui():is_menu_active() then @@ -1094,7 +1094,7 @@ function cheatfind.startplugin() menu_is_showing = false tabbed_out = true end - end) + end) end return exports diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp index 65c5be6a383..376e2824660 100644 --- a/src/devices/bus/amiga/zorro/buddha.cpp +++ b/src/devices/bus/amiga/zorro/buddha.cpp @@ -231,8 +231,8 @@ READ16_MEMBER( buddha_device::ide_0_interrupt_r ) data = m_ide_0_interrupt << 15; -// if (VERBOSE) -// logerror("ide_0_interrupt_r %04x [mask = %04x]\n", data, mem_mask); +// if (VERBOSE) +// logerror("ide_0_interrupt_r %04x [mask = %04x]\n", data, mem_mask); return data; } @@ -243,8 +243,8 @@ READ16_MEMBER( buddha_device::ide_1_interrupt_r ) data = m_ide_1_interrupt << 15; -// if (VERBOSE) -// logerror("ide_1_interrupt_r %04x [mask = %04x]\n", data, mem_mask); +// if (VERBOSE) +// logerror("ide_1_interrupt_r %04x [mask = %04x]\n", data, mem_mask); return data; } diff --git a/src/devices/bus/ekara/slot.cpp b/src/devices/bus/ekara/slot.cpp index 6748ee935cc..5140e3f28ab 100644 --- a/src/devices/bus/ekara/slot.cpp +++ b/src/devices/bus/ekara/slot.cpp @@ -273,5 +273,5 @@ WRITE_LINE_MEMBER(ekara_cart_slot_device::write_scl) READ_LINE_MEMBER(ekara_cart_slot_device::read_sda ) { - return m_cart->read_sda(); + return m_cart->read_sda(); } diff --git a/src/devices/bus/ekara/slot.h b/src/devices/bus/ekara/slot.h index 5a619b7d800..945a5175d4b 100644 --- a/src/devices/bus/ekara/slot.h +++ b/src/devices/bus/ekara/slot.h @@ -36,7 +36,7 @@ public: virtual DECLARE_READ8_MEMBER(read_extra) { return 0xff; } virtual DECLARE_WRITE8_MEMBER(write_extra) { } - virtual DECLARE_WRITE_LINE_MEMBER(write_sda) { } + virtual DECLARE_WRITE_LINE_MEMBER(write_sda) { } virtual DECLARE_WRITE_LINE_MEMBER(write_scl) { } //virtual DECLARE_WRITE_LINE_MEMBER( write_wc ) virtual DECLARE_READ_LINE_MEMBER( read_sda ) { return 0; } @@ -107,7 +107,7 @@ public: virtual DECLARE_READ8_MEMBER(read_extra); virtual DECLARE_WRITE8_MEMBER(write_extra); - virtual DECLARE_WRITE_LINE_MEMBER(write_sda); + virtual DECLARE_WRITE_LINE_MEMBER(write_sda); virtual DECLARE_WRITE_LINE_MEMBER(write_scl); //virtual DECLARE_WRITE_LINE_MEMBER( write_wc ); virtual DECLARE_READ_LINE_MEMBER( read_sda ); diff --git a/src/devices/bus/vsmile/vsmile_slot.cpp b/src/devices/bus/vsmile/vsmile_slot.cpp index e7b8546ea20..61d7873b63f 100644 --- a/src/devices/bus/vsmile/vsmile_slot.cpp +++ b/src/devices/bus/vsmile/vsmile_slot.cpp @@ -251,4 +251,4 @@ WRITE16_MEMBER(vsmile_cart_slot_device::bank3_w) void vsmile_cart_slot_device::set_cs2(bool cs2) { m_cart->set_cs2(cs2); -} \ No newline at end of file +} diff --git a/src/devices/cpu/i386/cpuidmsrs.hxx b/src/devices/cpu/i386/cpuidmsrs.hxx index 66a49708d86..6163dd7257f 100644 --- a/src/devices/cpu/i386/cpuidmsrs.hxx +++ b/src/devices/cpu/i386/cpuidmsrs.hxx @@ -280,15 +280,15 @@ uint64_t athlonxp_device::opcode_rdmsr(bool &valid_msr) // 39-12 PhyBase27-0 - Base address for this memory range /* Format of type field: Bits 2-0 specify the memory type with the following encoding - 0 UC Uncacheable - 1 WC Write Combining - 4 WT Write Through - 5 WP Write Protect - 6 WB Write Back - 7 UC Uncacheable used only in PAT register - Bit 3 WrMem 1 write to memory 0 write to mmio, present only in fixed range MTRRs - Bit 4 RdMem 1 read from memory 0 read from mmio, present only in fixed range MTRRs - Other bits are unused + 0 UC Uncacheable + 1 WC Write Combining + 4 WT Write Through + 5 WP Write Protect + 6 WB Write Back + 7 UC Uncacheable used only in PAT register + Bit 3 WrMem 1 write to memory 0 write to mmio, present only in fixed range MTRRs + Bit 4 RdMem 1 read from memory 0 read from mmio, present only in fixed range MTRRs + Other bits are unused */ break; case 0x201: // MTRRphysMask0-7 diff --git a/src/devices/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h index 62743f4c4b1..f16f1fac8cf 100644 --- a/src/devices/cpu/i86/i186.h +++ b/src/devices/cpu/i86/i186.h @@ -132,7 +132,7 @@ private: dma_state m_dma[2]; intr_state m_intr; mem_state m_mem; - bool m_last_dma; + bool m_last_dma; static const device_timer_id TIMER_INT0 = 0; static const device_timer_id TIMER_INT1 = 1; diff --git a/src/devices/machine/8042kbdc.h b/src/devices/machine/8042kbdc.h index 41ea07e71ba..38bdbe3814a 100644 --- a/src/devices/machine/8042kbdc.h +++ b/src/devices/machine/8042kbdc.h @@ -115,7 +115,7 @@ private: uint16_t m_mouse_y; uint8_t m_mouse_btn; - emu_timer * m_update_timer; + emu_timer * m_update_timer; DECLARE_WRITE_LINE_MEMBER( keyboard_w ); }; diff --git a/src/devices/machine/nscsi_cd.cpp b/src/devices/machine/nscsi_cd.cpp index 06ecb71bb04..0446c600e9f 100644 --- a/src/devices/machine/nscsi_cd.cpp +++ b/src/devices/machine/nscsi_cd.cpp @@ -607,4 +607,4 @@ bool nscsi_cdrom_sgi_device::scsi_command_done(uint8_t command, uint8_t length) default: return nscsi_full_device::scsi_command_done(command, length); } -} \ No newline at end of file +} diff --git a/src/devices/machine/spg110.cpp b/src/devices/machine/spg110.cpp index d1d4f9cfabd..df614deb314 100644 --- a/src/devices/machine/spg110.cpp +++ b/src/devices/machine/spg110.cpp @@ -5,9 +5,9 @@ SunPlus SPG110-series SoC peripheral emulation 0032xx looks like it could be the same as 003dxx on spg2xx - but the video seems to have differences, and data - is fetched from private buffers filled by DMA instead of - main space? tile attributes different? palette format different + but the video seems to have differences, and data + is fetched from private buffers filled by DMA instead of + main space? tile attributes different? palette format different **********************************************************************/ @@ -151,7 +151,7 @@ void spg110_device::blit_page(const rectangle &cliprect, uint32_t scanline, int blit(cliprect, tile_scanline, xx, yy, attr, ctrl, bitmap_addr, tile); else blit(cliprect, tile_scanline, xx, yy, attr, ctrl, bitmap_addr, tile); - + } } @@ -214,11 +214,11 @@ GFXDECODE_END void spg110_device::device_add_mconfig(machine_config &config) { -// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::RGB_565, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::IRGB_4444, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::RGBI_4444, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::RGB_565, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::IRGB_4444, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::RGBI_4444, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); PALETTE(config, m_palette, palette_device::BLACK, 256); GFXDECODE(config, m_gfxdecode, m_palette, gfx); @@ -337,7 +337,7 @@ WRITE16_MEMBER(spg110_device::dma_len_trigger_w) uint16_t val = mem.read_word(source); this->space(0).write_word(dest * 2, val, 0xffff); - + source+=m_dma_src_step; dest+=m_dma_dst_step; } @@ -436,14 +436,14 @@ WRITE16_MEMBER(spg110_device::tmap1_regs_w) void spg110_device::map(address_map &map) { map(0x000000, 0x000fff).ram(); - - + + // vregs are at 2000? map(0x002010, 0x002015).rw(FUNC(spg110_device::tmap0_regs_r), FUNC(spg110_device::tmap0_regs_w)); map(0x002016, 0x00201b).rw(FUNC(spg110_device::tmap1_regs_r), FUNC(spg110_device::tmap1_regs_w)); map(0x00201c, 0x00201c).w(FUNC(spg110_device::spg110_201c_w)); - + map(0x002020, 0x002020).w(FUNC(spg110_device::spg110_2020_w)); map(0x002028, 0x002028).rw(FUNC(spg110_device::spg110_2028_r), FUNC(spg110_device::spg110_2028_w)); @@ -484,7 +484,7 @@ void spg110_device::map(address_map &map) map(0x00205d, 0x00205d).w(FUNC(spg110_device::spg110_205d_w)); map(0x00205e, 0x00205e).w(FUNC(spg110_device::spg110_205e_w)); map(0x00205f, 0x00205f).w(FUNC(spg110_device::spg110_205f_w)); - + //map(0x002010, 0x00205f).ram(); // everything (dma? and interrupt flag?!) @@ -498,9 +498,9 @@ void spg110_device::map(address_map &map) map(0x002068, 0x002068).w(FUNC(spg110_device::dma_src_step_w)); map(0x002200, 0x0022ff).ram(); // looks like per-pen brightness or similar? strange because palette isn't memory mapped here - + map(0x003000, 0x00307f).ram(); // sound registers? seems to be 8 long entries, only uses up to 0x7f? - map(0x003080, 0x0030ff).ram(); + map(0x003080, 0x0030ff).ram(); map(0x003100, 0x003100).w(FUNC(spg110_device::spg110_3100_w)); map(0x003101, 0x003101).w(FUNC(spg110_device::spg110_3101_w)); @@ -548,7 +548,7 @@ void spg110_device::map_video(address_map &map) map(0x04000, 0x04fff).ram(); // seems to be 3 blocks, almost certainly spritelist -// map(0x08000, 0x081ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // probably? format unknown tho +// map(0x08000, 0x081ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // probably? format unknown tho map(0x08000, 0x081ff).ram().share("palram"); } diff --git a/src/devices/machine/timekpr.cpp b/src/devices/machine/timekpr.cpp index 614f071ade7..f7cfed5451c 100644 --- a/src/devices/machine/timekpr.cpp +++ b/src/devices/machine/timekpr.cpp @@ -351,7 +351,7 @@ TIMER_CALLBACK_MEMBER(timekeeper_device::watchdog_callback) m_data[m_offset_flags] |= FLAGS_WDF; // WDS (bit 7) selects callback if (m_data[m_offset_watchdog] & 0x80) - { + { // Clear watchdog register m_data[m_offset_watchdog] = 0; m_reset_cb(ASSERT_LINE); diff --git a/src/devices/sound/ay8910.cpp b/src/devices/sound/ay8910.cpp index 00e9f324f87..9ee02834f67 100644 --- a/src/devices/sound/ay8910.cpp +++ b/src/devices/sound/ay8910.cpp @@ -512,54 +512,54 @@ Yamaha YMZ294: limited info: 0 I/O port OKI M5255, Winbond WF19054, JFC 95101, File KC89C72, Toshiba T7766A : differences to be listed AY8930 Expanded mode registers : - Bank Register Bits - A 0 xxxx xxxx Channel A Tone period fine tune - A 1 xxxx xxxx Channel A Tone period coarse tune - A 2 xxxx xxxx Channel B Tone period fine tune - A 3 xxxx xxxx Channel B Tone period coarse tune - A 4 xxxx xxxx Channel C Tone period fine tune - A 5 xxxx xxxx Channel C Tone period coarse tune - A 6 xxxx xxxx Noise period - A 7 x--- ---- I/O Port B input(0) / output(1) - -x-- ---- I/O Port A input(0) / output(1) - --x- ---- Channel C Noise enable(0) / disable(1) - ---x ---- Channel B Noise enable(0) / disable(1) - ---- x--- Channel A Noise enable(0) / disable(1) - ---- -x-- Channel C Tone enable(0) / disable(1) - ---- --x- Channel B Tone enable(0) / disable(1) - ---- ---x Channel A Tone enable(0) / disable(1) - A 8 --x- ---- Channel A Envelope mode - ---x xxxx Channel A Tone volume - A 9 --x- ---- Channel B Envelope mode - ---x xxxx Channel B Tone volume - A A --x- ---- Channel C Envelope mode - ---x xxxx Channel C Tone volume - A B xxxx xxxx Channel A Envelope period fine tune - A C xxxx xxxx Channel A Envelope period coarse tune - A D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode - ---0 ---- 0 for Register Bank A - ---- xxxx Channel A Envelope Shape/Cycle - A E xxxx xxxx 8 bit Parallel I/O on Port A - A F xxxx xxxx 8 bit Parallel I/O on Port B - - B 0 xxxx xxxx Channel B Envelope period fine tune - B 1 xxxx xxxx Channel B Envelope period coarse tune - B 2 xxxx xxxx Channel C Envelope period fine tune - B 3 xxxx xxxx Channel C Envelope period coarse tune - B 4 ---- xxxx Channel B Envelope Shape/Cycle - B 5 ---- xxxx Channel C Envelope Shape/Cycle - B 6 ---- xxxx Channel A Duty Cycle - B 7 ---- xxxx Channel B Duty Cycle - B 8 ---- xxxx Channel C Duty Cycle - B 9 xxxx xxxx Noise "And" Mask - B A xxxx xxxx Noise "Or" Mask - B B Reserved (Read as 0) - B C Reserved (Read as 0) - B D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode - ---1 ---- 1 for Register Bank B - ---- xxxx Channel A Envelope Shape - B E Reserved (Read as 0) - B F Test (Function unknown) + Bank Register Bits + A 0 xxxx xxxx Channel A Tone period fine tune + A 1 xxxx xxxx Channel A Tone period coarse tune + A 2 xxxx xxxx Channel B Tone period fine tune + A 3 xxxx xxxx Channel B Tone period coarse tune + A 4 xxxx xxxx Channel C Tone period fine tune + A 5 xxxx xxxx Channel C Tone period coarse tune + A 6 xxxx xxxx Noise period + A 7 x--- ---- I/O Port B input(0) / output(1) + -x-- ---- I/O Port A input(0) / output(1) + --x- ---- Channel C Noise enable(0) / disable(1) + ---x ---- Channel B Noise enable(0) / disable(1) + ---- x--- Channel A Noise enable(0) / disable(1) + ---- -x-- Channel C Tone enable(0) / disable(1) + ---- --x- Channel B Tone enable(0) / disable(1) + ---- ---x Channel A Tone enable(0) / disable(1) + A 8 --x- ---- Channel A Envelope mode + ---x xxxx Channel A Tone volume + A 9 --x- ---- Channel B Envelope mode + ---x xxxx Channel B Tone volume + A A --x- ---- Channel C Envelope mode + ---x xxxx Channel C Tone volume + A B xxxx xxxx Channel A Envelope period fine tune + A C xxxx xxxx Channel A Envelope period coarse tune + A D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode + ---0 ---- 0 for Register Bank A + ---- xxxx Channel A Envelope Shape/Cycle + A E xxxx xxxx 8 bit Parallel I/O on Port A + A F xxxx xxxx 8 bit Parallel I/O on Port B + + B 0 xxxx xxxx Channel B Envelope period fine tune + B 1 xxxx xxxx Channel B Envelope period coarse tune + B 2 xxxx xxxx Channel C Envelope period fine tune + B 3 xxxx xxxx Channel C Envelope period coarse tune + B 4 ---- xxxx Channel B Envelope Shape/Cycle + B 5 ---- xxxx Channel C Envelope Shape/Cycle + B 6 ---- xxxx Channel A Duty Cycle + B 7 ---- xxxx Channel B Duty Cycle + B 8 ---- xxxx Channel C Duty Cycle + B 9 xxxx xxxx Noise "And" Mask + B A xxxx xxxx Noise "Or" Mask + B B Reserved (Read as 0) + B C Reserved (Read as 0) + B D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode + ---1 ---- 1 for Register Bank B + ---- xxxx Channel A Envelope Shape + B E Reserved (Read as 0) + B F Test (Function unknown) Decaps: AY-3-8914 - http://siliconpr0n.org/map/gi/ay-3-8914/mz_mit20x/ diff --git a/src/devices/sound/ics2115.cpp b/src/devices/sound/ics2115.cpp index c5cfea8e94a..9ce19fe649f 100644 --- a/src/devices/sound/ics2115.cpp +++ b/src/devices/sound/ics2115.cpp @@ -885,8 +885,8 @@ u16 ics2115_device::word_r(offs_t offset, u16 mem_mask) break; /* case 3: - TODO : used for byte size only; - break; + TODO : used for byte size only; + break; */ default: #ifdef ICS2115_DEBUG @@ -911,8 +911,8 @@ void ics2115_device::word_w(offs_t offset, u16 data, u16 mem_mask) break; /* case 3: - TODO : used for byte size only; - break; + TODO : used for byte size only; + break; */ default: #ifdef ICS2115_DEBUG diff --git a/src/devices/video/crt9028.cpp b/src/devices/video/crt9028.cpp index 8126e5c6344..31c0c748420 100644 --- a/src/devices/video/crt9028.cpp +++ b/src/devices/video/crt9028.cpp @@ -106,7 +106,7 @@ crt9028_000_device::crt9028_000_device(const machine_config &mconfig, const char 24, 10, false, 20, 4, 8, 72, 30, 10, - 2, 8, 9, + 2, 8, 9, 0x3c0, 0x038, 0x007, 0x0f, 0x3e0, 0x020, 0x03f, 0x020, 0x10, 0xff, 0x10, 0xff) diff --git a/src/lib/netlist/analog/nlid_fourterm.h b/src/lib/netlist/analog/nlid_fourterm.h index 0b0f75d378b..5ca6a747116 100644 --- a/src/lib/netlist/analog/nlid_fourterm.h +++ b/src/lib/netlist/analog/nlid_fourterm.h @@ -44,7 +44,7 @@ namespace netlist { , m_OP(*this, "OP", &m_IP) , m_ON(*this, "ON", &m_IP) , m_IP(*this, "IP", &m_IN) // <= this should be NULL and terminal be filtered out prior to solving... - , m_IN(*this, "IN", &m_IP) // <= this should be NULL and terminal be filtered out prior to solving... + , m_IN(*this, "IN", &m_IP) // <= this should be NULL and terminal be filtered out prior to solving... , m_OP1(*this, "_OP1", &m_IN) , m_ON1(*this, "_ON1", &m_IN) , m_gfac(1.0) diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 131504d86e4..67939f32645 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -426,7 +426,7 @@ public: } protected: - // NETLIB_UPDATEI() { NETLIB_NAME(twoterm)::update(time); } + // NETLIB_UPDATEI() { NETLIB_NAME(twoterm)::update(time); } NETLIB_RESETI() { diff --git a/src/lib/netlist/devices/nld_2102A.cpp b/src/lib/netlist/devices/nld_2102A.cpp index d256a1e244d..0ec7132b401 100644 --- a/src/lib/netlist/devices/nld_2102A.cpp +++ b/src/lib/netlist/devices/nld_2102A.cpp @@ -97,7 +97,7 @@ namespace netlist m_ram[i] = 0; } - NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") + NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") NETLIB_DEVICE_IMPL(2102A_dip,"RAM_2102A_DIP","") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74174.cpp b/src/lib/netlist/devices/nld_74174.cpp index 13ceb370cfd..83369075db6 100644 --- a/src/lib/netlist/devices/nld_74174.cpp +++ b/src/lib/netlist/devices/nld_74174.cpp @@ -134,7 +134,7 @@ namespace netlist //m_sub.do_reset(); } - NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ") + NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ") NETLIB_DEVICE_IMPL(74174_dip,"TTL_74174_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74175.cpp b/src/lib/netlist/devices/nld_74175.cpp index 6c902df48fc..a15adb5c60f 100644 --- a/src/lib/netlist/devices/nld_74175.cpp +++ b/src/lib/netlist/devices/nld_74175.cpp @@ -111,7 +111,7 @@ namespace netlist m_data = 0xFF; } - NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ") + NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ") NETLIB_DEVICE_IMPL(74175_dip,"TTL_74175_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74192.cpp b/src/lib/netlist/devices/nld_74192.cpp index 81edfd050be..a256f89451e 100644 --- a/src/lib/netlist/devices/nld_74192.cpp +++ b/src/lib/netlist/devices/nld_74192.cpp @@ -162,7 +162,7 @@ namespace netlist m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME } - NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") + NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") NETLIB_DEVICE_IMPL(74192_dip,"TTL_74192_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74193.cpp b/src/lib/netlist/devices/nld_74193.cpp index c5d46df3618..73b1d697b7b 100644 --- a/src/lib/netlist/devices/nld_74193.cpp +++ b/src/lib/netlist/devices/nld_74193.cpp @@ -139,7 +139,7 @@ namespace netlist m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME timing } - NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") + NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") NETLIB_DEVICE_IMPL(74193_dip, "TTL_74193_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74194.cpp b/src/lib/netlist/devices/nld_74194.cpp index 205263c2d44..9876aa6b170 100644 --- a/src/lib/netlist/devices/nld_74194.cpp +++ b/src/lib/netlist/devices/nld_74194.cpp @@ -116,7 +116,7 @@ namespace netlist m_Q[i].push((q >> i) & 1, NLTIME_FROM_NS(26)); // FIXME: Timing } - NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ") + NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ") NETLIB_DEVICE_IMPL(74194_dip, "TTL_74194_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_ne555.cpp b/src/lib/netlist/devices/nld_ne555.cpp index d1d34835f14..ab63a58ee4c 100644 --- a/src/lib/netlist/devices/nld_ne555.cpp +++ b/src/lib/netlist/devices/nld_ne555.cpp @@ -177,7 +177,7 @@ namespace netlist m_last_out = out; } - NETLIB_DEVICE_IMPL(NE555, "NE555", "") + NETLIB_DEVICE_IMPL(NE555, "NE555", "") NETLIB_DEVICE_IMPL(NE555_dip, "NE555_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp index 04d87f9201d..24729b10e72 100644 --- a/src/lib/netlist/devices/nld_tms4800.cpp +++ b/src/lib/netlist/devices/nld_tms4800.cpp @@ -97,7 +97,7 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") + NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") NETLIB_DEVICE_IMPL(TMS4800_dip, "ROM_TMS4800_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index 8625010e92b..bc77f7ffd13 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -202,7 +202,7 @@ namespace netlist { } - NETLIB_UPDATEI() { } + NETLIB_UPDATEI() { } NETLIB_RESETI() { m_Q.initial(0.0); } NETLIB_UPDATE_PARAMI() { m_Q.push(m_IN()); } diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index e5c59c7d43d..c2dd2c683a3 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -30,8 +30,8 @@ namespace detail //static plib::mempool *pool() //{ - // static plib::mempool s_pool(655360, 32); - // return &s_pool; + // static plib::mempool s_pool(655360, 32); + // return &s_pool; //} #if 0 @@ -49,7 +49,7 @@ namespace detail if (mem) { //if ((USE_MEMPOOL)) - // pool()->free(mem); + // pool()->free(mem); //else ::operator delete(mem); } @@ -142,7 +142,7 @@ const logic_family_desc_t *family_CD4XXX() detail::queue_t::queue_t(netlist_state_t &nl) : timed_queue, false, NL_KEEP_STATISTICS>(512) , netlist_ref(nl) -// , plib::state_manager_t::callback_t() +// , plib::state_manager_t::callback_t() , m_qsize(0) , m_times(512) , m_net_ids(512) @@ -192,7 +192,7 @@ detail::netlist_ref::netlist_ref(netlist_state_t &nl) // ---------------------------------------------------------------------------------------- detail::object_t::object_t(const pstring &aname) -// : m_name(aname) +// : m_name(aname) { name_hash().insert({this, aname}); } diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index e210bd13089..22bd9848565 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -1164,7 +1164,7 @@ namespace netlist virtual bool is_timestep() const { return false; } private: - bool m_hint_deactivate; + bool m_hint_deactivate; state_var_s32 m_active_outputs; }; @@ -1675,7 +1675,7 @@ namespace netlist { nl_assert(terminal_state() != STATE_INP_PASSIVE); //if (net().Q() != m_Q) - // printf("term: %s, %d %d TS %d\n", this->name().c_str(), net().Q(), m_Q, terminal_state()); + // printf("term: %s, %d %d TS %d\n", this->name().c_str(), net().Q(), m_Q, terminal_state()); #if USE_COPY_INSTEAD_OF_REFERENCE return m_Q; #else diff --git a/src/lib/netlist/nl_setup.h b/src/lib/netlist/nl_setup.h index 2cadd3b3e1c..bf0c934a94b 100644 --- a/src/lib/netlist/nl_setup.h +++ b/src/lib/netlist/nl_setup.h @@ -278,9 +278,9 @@ namespace netlist protected: std::unordered_map m_models; std::stack m_namespace_stack; - std::unordered_map m_alias; + std::unordered_map m_alias; std::vector m_links; - std::unordered_map m_param_values; + std::unordered_map m_param_values; source_t::list_t m_sources; @@ -291,7 +291,7 @@ namespace netlist private: - plib::ppreprocessor::defines_map_type m_defines; + plib::ppreprocessor::defines_map_type m_defines; setup_t &m_setup; log_type &m_log; @@ -384,7 +384,7 @@ namespace netlist std::unordered_map m_terminals; netlist_t &m_netlist; - devices::nld_netlistparams *m_netlist_params; + devices::nld_netlistparams *m_netlist_params; std::unordered_map m_params; unsigned m_proxy_cnt; diff --git a/src/lib/netlist/plib/gmres.h b/src/lib/netlist/plib/gmres.h index 345c96b5c63..d3551897f69 100644 --- a/src/lib/netlist/plib/gmres.h +++ b/src/lib/netlist/plib/gmres.h @@ -76,12 +76,12 @@ namespace plib } PALIGNAS_VECTOROPT() - mat_type m_mat; + mat_type m_mat; PALIGNAS_VECTOROPT() - mat_type m_LU; - bool m_use_iLU_preconditioning; - std::size_t m_ILU_scale; - std::size_t m_band_width; + mat_type m_LU; + bool m_use_iLU_preconditioning; + std::size_t m_ILU_scale; + std::size_t m_band_width; }; template @@ -256,7 +256,7 @@ namespace plib m_g[0] = rho; //for (std::size_t i = 0; i < mr + 1; i++) - // vec_set_scalar(mr, m_ht[i], NL_FCONST(0.0)); + // vec_set_scalar(mr, m_ht[i], NL_FCONST(0.0)); vec_mult_scalar(n, residual, constants::one() / rho, m_v[0]); @@ -331,11 +331,11 @@ namespace plib plib::parray residual; plib::parray Ax; - plib::parray m_c; /* mr + 1 */ - plib::parray m_g; /* mr + 1 */ + plib::parray m_c; /* mr + 1 */ + plib::parray m_g; /* mr + 1 */ plib::parray, RESTART + 1> m_ht; /* (mr + 1), mr */ - plib::parray m_s; /* mr + 1 */ - plib::parray m_y; /* mr + 1 */ + plib::parray m_s; /* mr + 1 */ + plib::parray m_y; /* mr + 1 */ //plib::parray m_v[RESTART + 1]; /* mr + 1, n */ plib::parray, RESTART + 1> m_v; /* mr + 1, n */ @@ -418,10 +418,10 @@ namespace plib } else { - beta = alpha * ( c / 2.0)*( c / 2.0); - alpha = 1.0 / (d - beta); - for (std::size_t k = 0; k < size(); k++) - p[k] = residual[k] + beta * p[k]; + beta = alpha * ( c / 2.0)*( c / 2.0); + alpha = 1.0 / (d - beta); + for (std::size_t k = 0; k < size(); k++) + p[k] = residual[k] + beta * p[k]; } plib::vec_add_mult_scalar(size(), p, alpha, x); ops.calc_rhs(Ax, x); diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 6380a4cef07..44f3bdb395e 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -34,13 +34,13 @@ namespace plib { #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) return _aligned_malloc(size, alignment); #elif defined(__APPLE__) - void* p; - if (::posix_memalign(&p, alignment, size) != 0) { - p = nullptr; - } - return p; + void* p; + if (::posix_memalign(&p, alignment, size) != 0) { + p = nullptr; + } + return p; #else - return aligned_alloc(alignment, size); + return aligned_alloc(alignment, size); #endif } @@ -59,7 +59,7 @@ namespace plib { static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); //auto t = reinterpret_cast(p); //if (t & (ALIGN-1)) - // printf("alignment error!"); + // printf("alignment error!"); return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); } @@ -124,8 +124,8 @@ namespace plib { constexpr pdefault_deleter() noexcept = default; template::value>::type> - pdefault_deleter(const pdefault_deleter&) noexcept { } + std::enable_if::value>::type> + pdefault_deleter(const pdefault_deleter&) noexcept { } void operator()(T *p) const { @@ -249,62 +249,62 @@ namespace plib { class aligned_allocator { public: - using value_type = T; + using value_type = T; - static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0, - "ALIGN must be greater than alignof(T) and a multiple"); + static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0, + "ALIGN must be greater than alignof(T) and a multiple"); - aligned_allocator() noexcept = default; - ~aligned_allocator() noexcept = default; + aligned_allocator() noexcept = default; + ~aligned_allocator() noexcept = default; - aligned_allocator(const aligned_allocator&) noexcept = default; - aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; + aligned_allocator(const aligned_allocator&) noexcept = default; + aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; - aligned_allocator(aligned_allocator&&) noexcept = default; - aligned_allocator& operator=(aligned_allocator&&) = delete; + aligned_allocator(aligned_allocator&&) noexcept = default; + aligned_allocator& operator=(aligned_allocator&&) = delete; - template - aligned_allocator(const aligned_allocator& rhs) noexcept - { - unused_var(rhs); - } + template + aligned_allocator(const aligned_allocator& rhs) noexcept + { + unused_var(rhs); + } - template struct rebind + template struct rebind { - using other = aligned_allocator; + using other = aligned_allocator; }; - T* allocate(std::size_t n) - { - return reinterpret_cast(paligned_alloc(ALIGN, sizeof(T) * n)); - } + T* allocate(std::size_t n) + { + return reinterpret_cast(paligned_alloc(ALIGN, sizeof(T) * n)); + } - void deallocate(T* p, std::size_t n) noexcept - { - unused_var(n); - pfree(p); - } + void deallocate(T* p, std::size_t n) noexcept + { + unused_var(n); + pfree(p); + } - template - friend bool operator==(const aligned_allocator& lhs, - const aligned_allocator& rhs) noexcept; + template + friend bool operator==(const aligned_allocator& lhs, + const aligned_allocator& rhs) noexcept; - template friend class aligned_allocator; + template friend class aligned_allocator; }; - template - /*friend*/ inline bool operator==(const aligned_allocator& lhs, - const aligned_allocator& rhs) noexcept - { - unused_var(lhs, rhs); - return A1 == A2; - } - template - /*friend*/ inline bool operator!=(const aligned_allocator& lhs, - const aligned_allocator& rhs) noexcept - { - return !(lhs == rhs); - } + template + /*friend*/ inline bool operator==(const aligned_allocator& lhs, + const aligned_allocator& rhs) noexcept + { + unused_var(lhs, rhs); + return A1 == A2; + } + template + /*friend*/ inline bool operator!=(const aligned_allocator& lhs, + const aligned_allocator& rhs) noexcept + { + return !(lhs == rhs); + } // FIXME: needs to be somewhere else #if 0 diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 9fe4ab972eb..5ab52524a07 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -117,8 +117,8 @@ namespace plib { private: PALIGNAS_VECTOROPT() - base_type m_a; - size_type m_size; + base_type m_a; + size_type m_size; }; } // namespace plib diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index 3b4bc55fc32..1a411fe1aad 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -45,11 +45,11 @@ * Standard alignment macros */ -#define PALIGN_CACHELINE (64) -#define PALIGN_VECTOROPT (32) +#define PALIGN_CACHELINE (64) +#define PALIGN_VECTOROPT (32) -#define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) -#define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) +#define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) +#define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) /* Breaks mame build on windows due to -Wattribute */ #if defined(_WIN32) && defined(__GNUC__) diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h index 166c6f3d483..00e78b09fb6 100644 --- a/src/lib/netlist/plib/pmempool.h +++ b/src/lib/netlist/plib/pmempool.h @@ -29,8 +29,8 @@ namespace plib { constexpr pool_deleter() noexcept = default; template::value>::type> - pool_deleter(const pool_deleter&) noexcept { } + std::enable_if::value>::type> + pool_deleter(const pool_deleter&) noexcept { } void operator()(T *p) const { @@ -140,7 +140,7 @@ namespace plib { auto capacity(rs); ret = std::align(align, size, ret, capacity); // FIXME: if (ret == nullptr) - // printf("Oh no\n"); + // printf("Oh no\n"); sinfo().insert({ ret, info(b, b->m_cur)}); rs -= (capacity - size); b->m_cur += rs; @@ -156,7 +156,7 @@ namespace plib { auto capacity(rs); ret = std::align(align, size, ret, capacity); // FIXME: if (ret == nullptr) - // printf("Oh no\n"); + // printf("Oh no\n"); sinfo().insert({ ret, info(b, b->m_cur)}); rs -= (capacity - size); b->m_cur += rs; diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp index a751bbd2965..f9e25346493 100644 --- a/src/lib/netlist/prg/nltool.cpp +++ b/src/lib/netlist/prg/nltool.cpp @@ -17,7 +17,7 @@ #include -#define NLTOOL_VERSION 20190202 +#define NLTOOL_VERSION 20190202 class tool_app_t : public plib::app { diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index 0a9f720f104..187c9f659ea 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -67,7 +67,7 @@ private: plib::parray new_V; std::array, storage_N> m_term_cr; -// std::array, storage_N> m_term_cr; +// std::array, storage_N> m_term_cr; mat_type mat; diff --git a/src/mame/drivers/c2color.cpp b/src/mame/drivers/c2color.cpp index 092a68715e9..4164553a1a2 100644 --- a/src/mame/drivers/c2color.cpp +++ b/src/mame/drivers/c2color.cpp @@ -3,24 +3,24 @@ /****************************************************************************** basic information - https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/ + https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/ - "The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons, - and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in - 3 AA batteries if you don't want to play with it tethered to a charger. + "The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons, + and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in + 3 AA batteries if you don't want to play with it tethered to a charger. It comes with a built in game based on the roco kingdom characters. In addition, there is a slot on the side of the console allowing cards to be swiped through. Those - cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use. + cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use. The C2 comes with 9 holographic game cards that will melt your eyes." - also includes a link to the following video - https://www.youtube.com/watch?v=D3XO4aTZEko + also includes a link to the following video + https://www.youtube.com/watch?v=D3XO4aTZEko - TODO: - identify CPU type, and if the system ROM is needed to run carts or not + TODO: + identify CPU type, and if the system ROM is needed to run carts or not *******************************************************************************/ diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index f099930d29d..b5823c8bcb9 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -32,9 +32,9 @@ motherboard and varying game boards. Sly Spy, Midnight Resistance and Boulderdash use the same graphics chips but are different pcbs. - Bandit (USA) is almost certainly a field test prototype, the software runs - on a Heavy Barrel board including the original Heavy Barrel MCU (which is effectively - not used). There is also Japanese version known to run on a DE-0321-1 top board. + Bandit (USA) is almost certainly a field test prototype, the software runs + on a Heavy Barrel board including the original Heavy Barrel MCU (which is effectively + not used). There is also Japanese version known to run on a DE-0321-1 top board. There are Secret Agent (bootleg) and Robocop (bootleg) sets to add. @@ -472,11 +472,11 @@ void dec0_state::dec0_map(address_map &map) map(0x310000, 0x3107ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x314000, 0x3147ff).ram().w(m_palette, FUNC(palette_device::write16_ext)).share("palette_ext"); - map(0x318000, 0x31bfff).ram().share("ram"); // Bandit uses 318000/31c000 which are mirrors but exact mirror patten is unclear - map(0x31c000, 0x31c7ff).ram().share("spriteram"); + map(0x318000, 0x31bfff).ram().share("ram"); // Bandit uses 318000/31c000 which are mirrors but exact mirror patten is unclear + map(0x31c000, 0x31c7ff).ram().share("spriteram"); map(0xff8000, 0xffbfff).ram().share("ram"); /* Main ram */ - map(0xffc000, 0xffc7ff).ram().share("spriteram"); + map(0xffc000, 0xffc7ff).ram().share("spriteram"); } void dec0_state::robocop_map(address_map &map) @@ -697,7 +697,7 @@ void dec0_state::midresb_map(address_map &map) void dec0_state::dec0_s_map(address_map &map) { map(0x0000, 0x07ff).ram(); - map(0x0800, 0x0801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); + map(0x0800, 0x0801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); map(0x1000, 0x1001).rw("ym2", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); map(0x3000, 0x3000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); map(0x3800, 0x3800).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); @@ -1083,94 +1083,94 @@ static INPUT_PORTS_START( bandit ) PORT_INCLUDE( dec0 ) PORT_MODIFY("INPUTS") - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb") - PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb") - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb") + PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb") + PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) #if 0 - PORT_DIPNAME( 0x0001, 0x0001, "UNK_0" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0002, 0x0002, "UNK_1" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0004, 0x0004, "UNK_2" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0008, 0x0008, "UNK_3" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0010, 0x0010, "UNK_4" ) // Gun - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0020, 0x0020, "UNK_5" ) // Missile - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0040, 0x0040, "UNK_6" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0080, 0x0080, "UNK_7" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0001, 0x0001, "UNK_0" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0002, 0x0002, "UNK_1" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0004, 0x0004, "UNK_2" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0008, 0x0008, "UNK_3" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0010, 0x0010, "UNK_4" ) // Gun + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0020, 0x0020, "UNK_5" ) // Missile + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0040, 0x0040, "UNK_6" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0080, 0x0080, "UNK_7" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) #endif PORT_MODIFY("SYSTEM") PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") - PORT_DIPNAME( 0x0001, 0x0001, "Analog controls?" ) // ? - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0002, 0x0002, "L/R control related (keep off)" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0004, 0x0004, "DSUNK_2" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0008, 0x0000, "Road select (debug)" ) // Debug mode - PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0020, 0x0020, "DSUNK_5" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0040, 0x0040, "DSUNK_6" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0080, 0x0000, "Enable enemies" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - - PORT_DIPNAME( 0x0100, 0x0100, "DSUNK_8" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0200, 0x0200, "DSUNK_9" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0400, 0x0400, "DSUNK_A" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0800, 0x0800, "DSUNK_B" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPNAME( 0x1000, 0x1000, "DSUNK_C" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x2000, 0x2000, "DSUNK_D" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x4000, 0x4000, "DSUNK_E" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x8000, 0x8000, "DSUNK_F" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - - PORT_INCLUDE( rotary_null ) + PORT_DIPNAME( 0x0001, 0x0001, "Analog controls?" ) // ? + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0002, 0x0002, "L/R control related (keep off)" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0004, 0x0004, "DSUNK_2" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0008, 0x0000, "Road select (debug)" ) // Debug mode + PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0020, 0x0020, "DSUNK_5" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0040, 0x0040, "DSUNK_6" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0080, 0x0000, "Enable enemies" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + + PORT_DIPNAME( 0x0100, 0x0100, "DSUNK_8" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0200, 0x0200, "DSUNK_9" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0400, 0x0400, "DSUNK_A" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0800, 0x0800, "DSUNK_B" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPNAME( 0x1000, 0x1000, "DSUNK_C" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x2000, 0x2000, "DSUNK_D" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x4000, 0x4000, "DSUNK_E" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x8000, 0x8000, "DSUNK_F" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + + PORT_INCLUDE( rotary_null ) PORT_INCLUDE( trackball_ports ) INPUT_PORTS_END diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp index 9121d83d32f..025d9027b1a 100644 --- a/src/mame/drivers/fastfred.cpp +++ b/src/mame/drivers/fastfred.cpp @@ -918,7 +918,7 @@ ROM_END // main PCB is marked: "MC9003" and "MADE IN ITALY" on component side // main PCB is marked: "MADE IN ITALY" on solder side -// ROMs PCB is marked: "MG25157" on component side +// ROMs PCB is marked: "MG25157" on component side ROM_START( boggy84b2 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "boggy84-1.bin", 0x0000, 0x1000, CRC(97235e3a) SHA1(f493efd03331416a392cab7d73e39029d7e8098c) ) diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp index 92edc4b4387..66dd20ad350 100644 --- a/src/mame/drivers/gaelco2.cpp +++ b/src/mame/drivers/gaelco2.cpp @@ -560,7 +560,7 @@ void gaelco2_state::play2000_map(address_map &map) { map(0x000000, 0x03ffff).rom(); /* ROM */ map(0x100000, 0x100001).portr("IN0"); /* Coins + other buttons? */ - map(0x110000, 0x110001).portr("IN1"); + map(0x110000, 0x110001).portr("IN1"); map(0x200000, 0x20ffff).ram().w(FUNC(gaelco2_state::gaelco2_vram_w)).share("spriteram"); /* Video RAM */ map(0x202890, 0x2028ff).rw("gaelco", FUNC(gaelco_gae1_device::gaelcosnd_r), FUNC(gaelco_gae1_device::gaelcosnd_w)); /* Sound Registers */ map(0x214000, 0x214fff).ram().w(FUNC(gaelco2_state::gaelco2_palette_w)).share("paletteram"); /* Palette */ diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp index 6e7e4e1399d..d01fb8bbc68 100644 --- a/src/mame/drivers/leapfrog_leappad.cpp +++ b/src/mame/drivers/leapfrog_leappad.cpp @@ -2,24 +2,24 @@ // copyright-holders:David Haywood /****************************************************************************** - LEAPPAD: - Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc - The LEAPPAD is basically compareable to the SEGA PICO, but without - Screen-Output! Each "Game" consists of two parts (Book + Cartridge). - Insert the cartridge into the system and add the Book on the Top of the - "console" and you can click on each pages and hear sounds or - learning-stuff on each page... - - MY FIRST LEAPPAD: - Basically the same as the LEAPPAD, but for even younger kids! (Cartridge - internal PCB's are identical to LEAPPAD) - Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg - - Don't get confused by the name "LEAPPAD", as it looks like Leapfrog - also released some kind of Tablet with this name, and they even released - a new "LEAPPAD" in around 2016: - https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the - same, but is most likely techically completely different.. + LEAPPAD: + Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc + The LEAPPAD is basically compareable to the SEGA PICO, but without + Screen-Output! Each "Game" consists of two parts (Book + Cartridge). + Insert the cartridge into the system and add the Book on the Top of the + "console" and you can click on each pages and hear sounds or + learning-stuff on each page... + + MY FIRST LEAPPAD: + Basically the same as the LEAPPAD, but for even younger kids! (Cartridge + internal PCB's are identical to LEAPPAD) + Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg + + Don't get confused by the name "LEAPPAD", as it looks like Leapfrog + also released some kind of Tablet with this name, and they even released + a new "LEAPPAD" in around 2016: + https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the + same, but is most likely techically completely different.. *******************************************************************************/ diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index 1458aa9ca1b..efb064516c3 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -329,7 +329,7 @@ Ferrari F355 Challenge (twin/deluxe, preview) no cart 22848P* 21 (64Mb) pre \Course Edition (twin/deluxe, prototype) no cart 23399 21 (64Mb) present 315-6206 317-0287-COM content is the same as regular 171-7919A cart Inu No Osanpo / Dog Walking (Rev A) 840-0073C 22294A 16 (64Mb) present 315-6206 317-0316-JPN requires 837-13844 JVS IO with DIPSW 1 ON /Mushiking The King Of Beetle -\(MUSHIUSA '04 1ST, Prototype) not present none 11*(64Mb) present 315-6206 not present * only first 7 flash roms contain game data, PCB have label 840-0150B-FLS. +\(MUSHIUSA '04 1ST, Prototype) not present none 11*(64Mb) present 315-6206 not present * only first 7 flash roms contain game data, PCB have label 840-0150B-FLS. Samba de Amigo (prototype) no cart ** 21*(64Mb) present 315-6206 317-0270-COM * only first 14 flash roms contain game data, ** instead of EPROM have tiny PCB with 2 flashroms on it /Shootout Pool Prize (Export) / Shootout \Pool The Medal (Japan) Version B (prototype) 840-0136C ** 21*(64Mb) present 317-6206 not present * only first 4 flash roms contain game data, ** instead of EPROM have tiny PCB with 2 flashroms on it @@ -563,9 +563,9 @@ Marvel Vs. Capcom 2 New Age of Heroes (Korea, Rev A) 841-0007C-03 23085A 14 MushiKing The King of Beetles 2K3 2ND 840-0150C 24217 6 (64Mb) present 317-0394-COM requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip Quiz Ah Megamisama 840-0030C 23227 16 (64Mb) present 317-0280-JPN Shootout Pool 840-0098C 23844 4 (64Mb) present 317-0336-COM requires regular 837-13551 and 837-13938 rotary JVS boards -/Shootout Pool Prize (Export) / +/Shootout Pool Prize (Export) / \Shootout Pool The Medal (Japan, Rev A) 840-0128C 24065A 4 (64Mb) present 317-0367-COM requires Naomi-based hopper controller -/Shootout Pool Prize (Export) / +/Shootout Pool Prize (Export) / \Shootout Pool The Medal (Japan) Version B 840-0136C 24148 4 (64Mb) present 317-0367-COM requires Naomi-based or 837-14438 hopper controller (selected by P1 BUTTON1 bit) SWP Hopper Board 840-0130C 24083 20 (64Mb) present 317-0339-COM reused VF4 Evo ROM board with all maskROMs still in place; there is an additional 837-14381 IO board Touch de Uno! 2 840-0022C 23071 6 (64Mb) present 317-0276-JPN requires 837-13844 JVS IO with DIPSW 5 On, ELO AccuTouch-compatible touch screen controller and special printer. @@ -9827,7 +9827,7 @@ ROM_START( clubk2k3 ) ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) /* ROM_REGION(0x200, "some_eeprom", 0) - ROM_LOAD( "25lc040.ic13s", 0x000, 0x200, NO_DUMP ) */ + ROM_LOAD( "25lc040.ic13s", 0x000, 0x200, NO_DUMP ) */ // 840-0139 2003 317-0382-COM Naomi 2 ROM_PARAMETER( ":rom_board:key", "d8b0fa4c" ) diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp index 21df51c0e72..10ceb7c14c0 100644 --- a/src/mame/drivers/sega_beena.cpp +++ b/src/mame/drivers/sega_beena.cpp @@ -4,15 +4,15 @@ Sega Beena - non-video 'book' based learning system, like LeapPad etc. + non-video 'book' based learning system, like LeapPad etc. - unknown CPU type (inside Sega custom?) + unknown CPU type (inside Sega custom?) - cartridge ROM has 'edinburgh' in the header, maybe a system codename? - ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4' - as well as .mid files for music + cartridge ROM has 'edinburgh' in the header, maybe a system codename? + ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4' + as well as .mid files for music - TODO: component list! + TODO: component list! *******************************************************************************/ diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp index f9a01bf8177..aaa13c3f198 100644 --- a/src/mame/drivers/segasp.cpp +++ b/src/mame/drivers/segasp.cpp @@ -628,7 +628,7 @@ ROM_START( tetgiano ) ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF) // TETRIS - DEKARIS (romaji) - // / TETRIS® - GIANT + // / TETRIS® - GIANT // MDA-C0076 DISK_REGION( "cflash" ) DISK_IMAGE( "mda-c0076", 0, SHA1(6987c888d2a3ada2d07f6396d47fdba507ca859d) ) diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index fa8140eaa7d..aaa044edb35 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -13,27 +13,27 @@ Justice League Dora the Explorer Mattel Classic Sports - Disney Princess (GKR) - Wheel of Fortune (GKR) - (all GameKeyReady units?) + Disney Princess (GKR) + Wheel of Fortune (GKR) + (all GameKeyReady units?) "SunPlus QL8041C" ( known as Sunplus SPG2?? ) - Clickstart ( see clickstart.cpp instead) - Wheel of Fortune 2nd Edition + Clickstart ( see clickstart.cpp instead) + Wheel of Fortune 2nd Edition "SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead - Classic Arcade Pinball - EA Sports (NHL95 + Madden 95) - - It is unknown if the following are close to this architecture or not (no dumps yet) + Classic Arcade Pinball + EA Sports (NHL95 + Madden 95) - "SunPlus QU7073-P69A" - Mortal Kombat + It is unknown if the following are close to this architecture or not (no dumps yet) - "Sunplus QL8167" - Disney Princess (older) - Go Diego Go + "SunPlus QU7073-P69A" + Mortal Kombat + + "Sunplus QL8167" + Disney Princess (older) + Go Diego Go Disney Princess non-GKR is Sunplus QL8167. @@ -53,11 +53,11 @@ Disney Princess non-GKR is Sunplus QL8167. walle: Game seems unhappy with NVRAM, clears contents on each boot. - jak_pooh: - In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc) - and the game usually softlocks when you find a friend (with or without DRC) - - vii: + jak_pooh: + In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc) + and the game usually softlocks when you find a friend (with or without DRC) + + vii: When loading a cart from file manager, sometimes MAME will crash. The "MOTOR" option in the diagnostic menu does nothing when selected. The "SPEECH IC" option in the diagnostic menu does nothing when selected. @@ -71,9 +71,9 @@ Disney Princess non-GKR is Sunplus QL8167. Test Modes: Justice League : press UP, DOWN, LEFT, BT3 on the JAKKS logo in that order, quickly, to get test menu WWE : press UP, BT1, BT2 together during startup logos - - Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP, - press A, press DOWN during startup + + Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP, + press A, press DOWN during startup TODO: Work out how to access the hidden TEST menus for all games (most JAKKS games should have one at least) @@ -1979,7 +1979,7 @@ void spg2xx_game_state::init_crc() logerror("Calculated Byte Sum of bytes from 0x10 to 0x%08x is %08x)\n", length - 1, checksum); } - + void spg2xx_game_state::init_zeus() { uint16_t *ROM = (uint16_t*)memregion("maincpu")->base(); @@ -2052,11 +2052,11 @@ CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, emp CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available) CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released) -// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^ +// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^ // no keys released for the following, some were in development but cancelled // Capcom 3-in-1 CC (no game-keys released) -// Care Bears CB (no game-keys released) +// Care Bears CB (no game-keys released) // Radica TV games CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/wrlshunt.cpp b/src/mame/drivers/wrlshunt.cpp index c8ecef959ec..e2c129169c6 100644 --- a/src/mame/drivers/wrlshunt.cpp +++ b/src/mame/drivers/wrlshunt.cpp @@ -2,74 +2,74 @@ // copyright-holders:Ryan Holtz /****************************************************************************** - Wireless Hunting Video Game System skeleton driver - - System: Wireless Hunting Video Game System - Publisher: Hamy / Kids Station Toys Inc - Year: 2011 - ROM: FDI MSP55LV100G - RAM: Micron Technology 48LC8M16A2 - - Games: - Secret Mission - Predator - Delta Force - Toy Land - Dream Forest - Trophy Season - Freedom Force - Be Careful - Net Power - Open Training - Super Archer - Ultimate Frisbee - UFO Shooting - Happy Darts - Balloon Shoot - Avatair - Angry Pirate - Penguin War - Ghost Shooter - Duck Hunt - - - ROM Board: - Package: SO44 - Spacing: 1.27 mm - Width: 16.14 mm - Length: 27.78 mm - Voltage: 3V - Pinout: - - A25 A24 - | | - +--------------------------+ - A21 --|== # # `.__.' ==|-- A20 - A18 --|== ==|-- A19 - A17 --|== ==|-- A8 - A7 --|== ==|-- A9 - A6 --|== o ==|-- A10 - A5 --|== +----------------+ ==|-- A11 - A4 --|== | | ==|-- A12 - A3 --|== | MSP55LV100G | ==|-- A13 - A2 --|== | 0834 M02H | ==|-- A14 - A1 --|== | JAPAN | ==|-- A15 - A0 --|== | | ==|-- A16 - #CE --|== | | ==|-- A23 - GND --|== | | ==|-- A22 - #OE --|== | | ==|-- Q15 - Q0 --|== | | ==|-- Q7 - Q8 --|== | | ==|-- Q14 - Q1 --|== +----------------+ ==|-- Q6 - Q9 --|== ==|-- Q13 - Q2 --|== M55L100G ==|-- Q5 - Q10 --|== ==|-- Q12 - Q3 --|== ==|-- Q4 - Q11 --|== ==|-- VCC - +--------------------------+ - - The only interesting string in this ROM is SPF2ALP, - which is also found in the Wireless Air 60 ROM. + Wireless Hunting Video Game System skeleton driver + + System: Wireless Hunting Video Game System + Publisher: Hamy / Kids Station Toys Inc + Year: 2011 + ROM: FDI MSP55LV100G + RAM: Micron Technology 48LC8M16A2 + + Games: + Secret Mission + Predator + Delta Force + Toy Land + Dream Forest + Trophy Season + Freedom Force + Be Careful + Net Power + Open Training + Super Archer + Ultimate Frisbee + UFO Shooting + Happy Darts + Balloon Shoot + Avatair + Angry Pirate + Penguin War + Ghost Shooter + Duck Hunt + + + ROM Board: + Package: SO44 + Spacing: 1.27 mm + Width: 16.14 mm + Length: 27.78 mm + Voltage: 3V + Pinout: + + A25 A24 + | | + +--------------------------+ + A21 --|== # # `.__.' ==|-- A20 + A18 --|== ==|-- A19 + A17 --|== ==|-- A8 + A7 --|== ==|-- A9 + A6 --|== o ==|-- A10 + A5 --|== +----------------+ ==|-- A11 + A4 --|== | | ==|-- A12 + A3 --|== | MSP55LV100G | ==|-- A13 + A2 --|== | 0834 M02H | ==|-- A14 + A1 --|== | JAPAN | ==|-- A15 + A0 --|== | | ==|-- A16 + #CE --|== | | ==|-- A23 + GND --|== | | ==|-- A22 + #OE --|== | | ==|-- Q15 + Q0 --|== | | ==|-- Q7 + Q8 --|== | | ==|-- Q14 + Q1 --|== +----------------+ ==|-- Q6 + Q9 --|== ==|-- Q13 + Q2 --|== M55L100G ==|-- Q5 + Q10 --|== ==|-- Q12 + Q3 --|== ==|-- Q4 + Q11 --|== ==|-- VCC + +--------------------------+ + + The only interesting string in this ROM is SPF2ALP, + which is also found in the Wireless Air 60 ROM. *******************************************************************************/ diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index 27ba1996c21..a40f0bf3fcb 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -186,7 +186,7 @@ 7 PLAY TV OPUS /RADICA/USA,EU - - - - - - dumped (US version, PAL version appears to use different ROM) 8 PLAY TV Baseball 2 /EPOCH/Japan, HK - - - - - - - 9 Let's hit a homerun! Exciting baseball /EPOCH/Japan - - - - - - - Play TV Baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 dumped + Play TV Baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 dumped 1999 1 ABC Jungle Fun Hippo /Vteck/HK, USA, France - - - - - - - Unknown 1 PLAY TV Football /RADICA/USA 74021 x8 48 4M none SSD 98 PL7351-181 dumped XaviXTennis SGM6446 x16 48 8M 24C08 SSD 2002 NEC 85054-611 dumped @@ -891,7 +891,7 @@ static INPUT_PORTS_START( popira2 ) // player 2 buttons have heavy latency, prob PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Pad 1") PORT_PLAYER(2) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Pad 2") PORT_PLAYER(2) - + PORT_MODIFY("AN1") // 01 PORT_DIPNAME( 0x0001, 0x0001, "AN1" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) @@ -2073,7 +2073,7 @@ ROM_END // [:] (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_START( xavmusic ) ROM_REGION( 0x1000000, "bios", ROMREGION_ERASE00 ) ROM_LOAD( "xpmusicandcircuit.bin", 0x000000, 0x1000000, CRC(e06129d2) SHA1(d074d0dd85ce870f435da3c066a7f52b50999665) ) ROM_END diff --git a/src/mame/drivers/xavix2.cpp b/src/mame/drivers/xavix2.cpp index a0e6327506e..635be1be875 100644 --- a/src/mame/drivers/xavix2.cpp +++ b/src/mame/drivers/xavix2.cpp @@ -2,11 +2,11 @@ // copyright-holders:David Haywood /****************************************************************************** - XaviX 2 + XaviX 2 - unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX + unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX - die is marked "SSD 2002-2004 NEC 800208-51" + die is marked "SSD 2002-2004 NEC 800208-51" *******************************************************************************/ diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h index 4bb1084ec1a..bf2abb6ee77 100644 --- a/src/mame/includes/xavix.h +++ b/src/mame/includes/xavix.h @@ -106,10 +106,10 @@ public: void xavix(machine_config &config); void xavix_nv(machine_config &config); - + void xavixp(machine_config &config); void xavixp_nv(machine_config &config); - + void xavix2000(machine_config &config); void xavix2000_nv(machine_config &config); @@ -796,7 +796,7 @@ protected: m_cartslot->write_bus_control(space,offset,data,mem_mask); } }; - + virtual uint8_t extbus_r(offs_t offset) override { if (m_cartslot->has_cart() && m_cartslot->is_read_access_not_rom()) diff --git a/src/mame/layout/fidel_bv3.lay b/src/mame/layout/fidel_bv3.lay index 9ba7e8df705..78b9c8292f1 100644 --- a/src/mame/layout/fidel_bv3.lay +++ b/src/mame/layout/fidel_bv3.lay @@ -145,4 +145,4 @@ - \ No newline at end of file + diff --git a/src/mame/layout/fidel_vbrc.lay b/src/mame/layout/fidel_vbrc.lay index 98b43dd1ff4..5d5eba8b1b4 100644 --- a/src/mame/layout/fidel_vbrc.lay +++ b/src/mame/layout/fidel_vbrc.lay @@ -179,4 +179,4 @@ - \ No newline at end of file + diff --git a/src/mame/layout/md6802.lay b/src/mame/layout/md6802.lay old mode 100755 new mode 100644 index 2b0ccb27191..14d95bbfdf5 --- a/src/mame/layout/md6802.lay +++ b/src/mame/layout/md6802.lay @@ -5,16 +5,16 @@ copyright-holders:Joakim Larsson Edstrom Didact MD6802 layout --> - - - + + + - - + + - + @@ -53,328 +53,328 @@ Didact MD6802 layout - + - - + + - - - + + + - + - - - - - - + + + + + + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - + - + - + - - - + + + - + - - - - + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + diff --git a/src/mame/layout/modulab.lay b/src/mame/layout/modulab.lay index 4dc578e65ea..b2bcac75167 100644 --- a/src/mame/layout/modulab.lay +++ b/src/mame/layout/modulab.lay @@ -52,378 +52,378 @@ Esselte Studium Modulab layout - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - - - - - - - + + + + + + + - + - - - - - - - + + + + + + + - + - - - - - - + + + + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/machine/sgi.cpp b/src/mame/machine/sgi.cpp index fd605fb03a5..629aa753a77 100644 --- a/src/mame/machine/sgi.cpp +++ b/src/mame/machine/sgi.cpp @@ -210,14 +210,14 @@ void sgi_mc_device::dma_tick() { uint32_t addr = m_dma_mem_addr; if (m_dma_control & (1 << 8)) - { // Enable virtual address translation + { // Enable virtual address translation addr = dma_translate(addr); } if (m_dma_mode & (1 << 1)) - { // Graphics to host + { // Graphics to host if (m_dma_mode & (1 << 3)) - { // Fill mode + { // Fill mode m_space->write_dword(addr, m_dma_gio64_addr); m_dma_count -= 4; } @@ -242,7 +242,7 @@ void sgi_mc_device::dma_tick() } } else - { // Host to graphics + { // Host to graphics const uint32_t remaining = m_dma_count & 0x0000ffff; uint32_t length = 8; uint64_t shift = 56; @@ -263,14 +263,14 @@ void sgi_mc_device::dma_tick() } if ((m_dma_count & 0x0000ffff) == 0) - { // If remaining byte count is 0, deduct zoom count + { // If remaining byte count is 0, deduct zoom count m_dma_count -= 0x00010000; if (m_dma_count == 0) - { // If remaining zoom count is also 0, move to next line + { // If remaining zoom count is also 0, move to next line m_dma_mem_addr += m_dma_stride & 0x0000ffff; m_dma_size -= 0x00010000; if ((m_dma_size & 0xffff0000) == 0) - { // If no remaining lines, DMA is done. + { // If no remaining lines, DMA is done. m_dma_timer->adjust(attotime::never); m_dma_run |= (1 << 3); m_dma_run &= ~(1 << 6); @@ -285,7 +285,7 @@ void sgi_mc_device::dma_tick() } } else - { // If remaining zoom count is non-zero, reload byte count and return source address to the beginning of the line. + { // If remaining zoom count is non-zero, reload byte count and return source address to the beginning of the line. m_dma_count |= m_dma_size & 0x0000ffff; m_dma_mem_addr -= m_dma_size & 0x0000ffff; } diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp index ce8cac39de5..db535016a88 100644 --- a/src/mame/machine/xavix.cpp +++ b/src/mame/machine/xavix.cpp @@ -669,7 +669,7 @@ CUSTOM_INPUT_MEMBER(xavix_popira2_cart_state::i2c_r) { if (m_cartslot->has_cart()) return m_cartslot->read_sda(); - else + else return 0x0; } diff --git a/src/mame/video/dec0.cpp b/src/mame/video/dec0.cpp index baca9a473f6..6c94ca6d0ff 100644 --- a/src/mame/video/dec0.cpp +++ b/src/mame/video/dec0.cpp @@ -46,17 +46,17 @@ uint32_t dec0_state::screen_update_bandit(screen_device &screen, bitmap_ind16 &b if (m_pri==0) { - m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); - m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); - m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); - m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); + m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); + m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); } else { - m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); - m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); - m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); - m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); + m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); + m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); } return 0; } diff --git a/src/mame/video/light.cpp b/src/mame/video/light.cpp index 719113a9447..ff47c95c7e3 100644 --- a/src/mame/video/light.cpp +++ b/src/mame/video/light.cpp @@ -1,16 +1,16 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, Tyson Smith /* - Silicon Graphics LG1 "Light" graphics board used as - entry level graphics in the Indigo and IRIS Crimson. + Silicon Graphics LG1 "Light" graphics board used as + entry level graphics in the Indigo and IRIS Crimson. */ #include "emu.h" #include "video/light.h" #include "screen.h" -#define LOG_REX (1 << 0) -#define LOG_ALL (LOG_REX) +#define LOG_REX (1 << 0) +#define LOG_ALL (LOG_REX) #define VERBOSE (0) #include "logmacro.h" diff --git a/src/mame/video/light.h b/src/mame/video/light.h index ffc9932d02e..82799fc906b 100644 --- a/src/mame/video/light.h +++ b/src/mame/video/light.h @@ -1,8 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, Tyson Smith /* - Silicon Graphics LG1 "Light" graphics board used as - entry level graphics in the Indigo and IRIS Crimson. + Silicon Graphics LG1 "Light" graphics board used as + entry level graphics in the Indigo and IRIS Crimson. */ #ifndef MAME_VIDEO_LIGHT_H diff --git a/src/mame/video/newport.cpp b/src/mame/video/newport.cpp index 0b46c6a0314..f1dd9cb004b 100644 --- a/src/mame/video/newport.cpp +++ b/src/mame/video/newport.cpp @@ -37,7 +37,7 @@ #define LOG_XMAP1 (1 << 5) #define LOG_REX3 (1 << 6) #define LOG_COMMANDS (1 << 7) -#define LOG_REJECTS (1 << 8) +#define LOG_REJECTS (1 << 8) #define LOG_ALL (LOG_UNKNOWN | LOG_VC2 | LOG_CMAP0 | LOG_CMAP1 | LOG_XMAP0 | LOG_XMAP1 | LOG_REX3) #define VERBOSE (0)//(LOG_UNKNOWN | LOG_VC2 | LOG_XMAP0 | LOG_CMAP0 | LOG_REX3 | LOG_COMMANDS | LOG_REJECTS) @@ -360,9 +360,9 @@ uint32_t newport_video_device::screen_update(screen_device &device, bitmap_rgb32 case 3: { const uint8_t pix_in = *src_ci; - const uint8_t r = (0x92 * BIT(pix_in, 2)) | (0x49 * BIT(pix_in, 1)) | (0x24 * BIT(pix_in, 0)); - const uint8_t g = (0x92 * BIT(pix_in, 5)) | (0x49 * BIT(pix_in, 4)) | (0x24 * BIT(pix_in, 3)); - const uint8_t b = (0xaa * BIT(pix_in, 7)) | (0x55 * BIT(pix_in, 6)); + const uint8_t r = (0x92 * BIT(pix_in, 2)) | (0x49 * BIT(pix_in, 1)) | (0x24 * BIT(pix_in, 0)); + const uint8_t g = (0x92 * BIT(pix_in, 5)) | (0x49 * BIT(pix_in, 4)) | (0x24 * BIT(pix_in, 3)); + const uint8_t b = (0xaa * BIT(pix_in, 7)) | (0x55 * BIT(pix_in, 6)); *dest++ = (r << 16) | (g << 8) | b; break; } @@ -1392,22 +1392,22 @@ void newport_video_device::store_pixel(uint8_t *dest_buf, uint8_t src) switch ((m_rex3.m_draw_mode1 >> 28) & 15) { - case 0: break; - case 1: *dest_buf |= (src & dst) & m_rex3.m_write_mask; break; - case 2: *dest_buf |= (src & ~dst) & m_rex3.m_write_mask; break; - case 3: *dest_buf |= (src) & m_rex3.m_write_mask; break; - case 4: *dest_buf |= (~src & dst) & m_rex3.m_write_mask; break; - case 5: *dest_buf |= (dst) & m_rex3.m_write_mask; break; - case 6: *dest_buf |= (src ^ dst) & m_rex3.m_write_mask; break; - case 7: *dest_buf |= (src | dst) & m_rex3.m_write_mask; break; - case 8: *dest_buf |= ~(src | dst) & m_rex3.m_write_mask; break; - case 9: *dest_buf |= ~(src ^ dst) & m_rex3.m_write_mask; break; - case 10: *dest_buf |= ~(dst) & m_rex3.m_write_mask; break; - case 11: *dest_buf |= (src | ~dst) & m_rex3.m_write_mask; break; - case 12: *dest_buf |= ~(src) & m_rex3.m_write_mask; break; - case 13: *dest_buf |= (~src | dst) & m_rex3.m_write_mask; break; - case 14: *dest_buf |= ~(src & dst) & m_rex3.m_write_mask; break; - case 15: *dest_buf |= 0xff & m_rex3.m_write_mask; break; + case 0: break; + case 1: *dest_buf |= (src & dst) & m_rex3.m_write_mask; break; + case 2: *dest_buf |= (src & ~dst) & m_rex3.m_write_mask; break; + case 3: *dest_buf |= (src) & m_rex3.m_write_mask; break; + case 4: *dest_buf |= (~src & dst) & m_rex3.m_write_mask; break; + case 5: *dest_buf |= (dst) & m_rex3.m_write_mask; break; + case 6: *dest_buf |= (src ^ dst) & m_rex3.m_write_mask; break; + case 7: *dest_buf |= (src | dst) & m_rex3.m_write_mask; break; + case 8: *dest_buf |= ~(src | dst) & m_rex3.m_write_mask; break; + case 9: *dest_buf |= ~(src ^ dst) & m_rex3.m_write_mask; break; + case 10: *dest_buf |= ~(dst) & m_rex3.m_write_mask; break; + case 11: *dest_buf |= (src | ~dst) & m_rex3.m_write_mask; break; + case 12: *dest_buf |= ~(src) & m_rex3.m_write_mask; break; + case 13: *dest_buf |= (~src | dst) & m_rex3.m_write_mask; break; + case 14: *dest_buf |= ~(src & dst) & m_rex3.m_write_mask; break; + case 15: *dest_buf |= 0xff & m_rex3.m_write_mask; break; } } @@ -1452,26 +1452,26 @@ void newport_video_device::do_v_iline(uint8_t color, bool skip_last, bool shade) do { if (shade) - write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); - else - write_pixel(x1, y1, color); + write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); + else + write_pixel(x1, y1, color); - y1 += incy; + y1 += incy; if (shade) m_rex3.m_color_red += m_rex3.m_slope_red; } while (y1 != y2); - if (!skip_last) - { + if (!skip_last) + { if (shade) - write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); - else - write_pixel(x1, y1, color); - } + write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); + else + write_pixel(x1, y1, color); + } - write_x_start(x1 << 11); - write_y_start(y1 << 11); + write_x_start(x1 << 11); + write_y_start(y1 << 11); } void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade) @@ -1495,15 +1495,15 @@ void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade) m_rex3.m_color_red += m_rex3.m_slope_red; } while (x1 != x2); - if (!skip_last) { + if (!skip_last) { if (shade) - write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); - else - write_pixel(x1, y1, color); - } + write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); + else + write_pixel(x1, y1, color); + } - write_x_start(x1 << 11); - write_y_start(y1 << 11); + write_x_start(x1 << 11); + write_y_start(y1 << 11); } void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade) @@ -1621,8 +1621,8 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade) } } - write_x_start(x1 << 11); - write_y_start(y1 << 11); + write_x_start(x1 << 11); + write_y_start(y1 << 11); } uint8_t newport_video_device::do_pixel_read() @@ -1763,8 +1763,8 @@ void newport_video_device::do_rex3_command() { //if (shade) //{ - // write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11)); - // m_rex3.m_color_red += m_rex3.m_slope_red; + // write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11)); + // m_rex3.m_color_red += m_rex3.m_slope_red; //} //else //{ diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h index 65ebbaa58a4..4d87237d0e2 100644 --- a/src/mame/video/newport.h +++ b/src/mame/video/newport.h @@ -11,7 +11,7 @@ #include "machine/hpc3.h" -#define ENABLE_NEWVIEW_LOG (0) +#define ENABLE_NEWVIEW_LOG (0) class newport_video_device : public device_t { diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp index 7c86b4bd837..40fe037f8c7 100644 --- a/src/osd/modules/input/input_sdl.cpp +++ b/src/osd/modules/input/input_sdl.cpp @@ -63,263 +63,263 @@ struct key_lookup_table static key_lookup_table sdl_lookup_table[] = { - KE(UNKNOWN) - - KE(A) - KE(B) - KE(C) - KE(D) - KE(E) - KE(F) - KE(G) - KE(H) - KE(I) - KE(J) - KE(K) - KE(L) - KE(M) - KE(N) - KE(O) - KE(P) - KE(Q) - KE(R) - KE(S) - KE(T) - KE(U) - KE(V) - KE(W) - KE(X) - KE(Y) - KE(Z) - - KE(1) - KE(2) - KE(3) - KE(4) - KE(5) - KE(6) - KE(7) - KE(8) - KE(9) - KE(0) - - KE(RETURN) - KE(ESCAPE) - KE(BACKSPACE) - KE(TAB) - KE(SPACE) - - KE(MINUS) - KE(EQUALS) - KE(LEFTBRACKET) - KE(RIGHTBRACKET) - KE(BACKSLASH) - KE(NONUSHASH) - KE(SEMICOLON) - KE(APOSTROPHE) - KE(GRAVE) - KE(COMMA) - KE(PERIOD) - KE(SLASH) - - KE(CAPSLOCK) - - KE(F1) - KE(F2) - KE(F3) - KE(F4) - KE(F5) - KE(F6) - KE(F7) - KE(F8) - KE(F9) - KE(F10) - KE(F11) - KE(F12) - - KE(PRINTSCREEN) - KE(SCROLLLOCK) - KE(PAUSE) - KE(INSERT) - KE(HOME) - KE(PAGEUP) - KE(DELETE) - KE(END) - KE(PAGEDOWN) - KE(RIGHT) - KE(LEFT) - KE(DOWN) - KE(UP) - - KE(NUMLOCKCLEAR) - KE(KP_DIVIDE) - KE(KP_MULTIPLY) - KE(KP_MINUS) - KE(KP_PLUS) - KE(KP_ENTER) - KE(KP_1) - KE(KP_2) - KE(KP_3) - KE(KP_4) - KE(KP_5) - KE(KP_6) - KE(KP_7) - KE(KP_8) - KE(KP_9) - KE(KP_0) - KE(KP_PERIOD) - - KE(NONUSBACKSLASH) - KE(APPLICATION) - KE(POWER) - KE(KP_EQUALS) - KE(F13) - KE(F14) - KE(F15) - KE(F16) - KE(F17) - KE(F18) - KE(F19) - KE(F20) - KE(F21) - KE(F22) - KE(F23) - KE(F24) - KE(EXECUTE) - KE(HELP) - KE(MENU) - KE(SELECT) - KE(STOP) - KE(AGAIN) - KE(UNDO) - KE(CUT) - KE(COPY) - KE(PASTE) - KE(FIND) - KE(MUTE) - KE(VOLUMEUP) - KE(VOLUMEDOWN) - KE(KP_COMMA) - KE(KP_EQUALSAS400) - - KE(INTERNATIONAL1) - KE(INTERNATIONAL2) - KE(INTERNATIONAL3) - KE(INTERNATIONAL4) - KE(INTERNATIONAL5) - KE(INTERNATIONAL6) - KE(INTERNATIONAL7) - KE(INTERNATIONAL8) - KE(INTERNATIONAL9) - KE(LANG1) - KE(LANG2) - KE(LANG3) - KE(LANG4) - KE(LANG5) - KE(LANG6) - KE(LANG7) - KE(LANG8) - KE(LANG9) - - KE(ALTERASE) - KE(SYSREQ) - KE(CANCEL) - KE(CLEAR) - KE(PRIOR) - KE(RETURN2) - KE(SEPARATOR) - KE(OUT) - KE(OPER) - KE(CLEARAGAIN) - KE(CRSEL) - KE(EXSEL) - - KE(KP_00) - KE(KP_000) - KE(THOUSANDSSEPARATOR) - KE(DECIMALSEPARATOR) - KE(CURRENCYUNIT) - KE(CURRENCYSUBUNIT) - KE(KP_LEFTPAREN) - KE(KP_RIGHTPAREN) - KE(KP_LEFTBRACE) - KE(KP_RIGHTBRACE) - KE(KP_TAB) - KE(KP_BACKSPACE) - KE(KP_A) - KE(KP_B) - KE(KP_C) - KE(KP_D) - KE(KP_E) - KE(KP_F) - KE(KP_XOR) - KE(KP_POWER) - KE(KP_PERCENT) - KE(KP_LESS) - KE(KP_GREATER) - KE(KP_AMPERSAND) - KE(KP_DBLAMPERSAND) - KE(KP_VERTICALBAR) - KE(KP_DBLVERTICALBAR) - KE(KP_COLON) - KE(KP_HASH) - KE(KP_SPACE) - KE(KP_AT) - KE(KP_EXCLAM) - KE(KP_MEMSTORE) - KE(KP_MEMRECALL) - KE(KP_MEMCLEAR) - KE(KP_MEMADD) - KE(KP_MEMSUBTRACT) - KE(KP_MEMMULTIPLY) - KE(KP_MEMDIVIDE) - KE(KP_PLUSMINUS) - KE(KP_CLEAR) - KE(KP_CLEARENTRY) - KE(KP_BINARY) - KE(KP_OCTAL) - KE(KP_DECIMAL) - KE(KP_HEXADECIMAL) - - KE(LCTRL) - KE(LSHIFT) - KE(LALT) - KE(LGUI) - KE(RCTRL) - KE(RSHIFT) - KE(RALT) - KE(RGUI) - - KE(MODE) - KE(AUDIONEXT) - KE(AUDIOPREV) - KE(AUDIOSTOP) - KE(AUDIOPLAY) - KE(AUDIOMUTE) - KE(MEDIASELECT) - KE(WWW) - KE(MAIL) - KE(CALCULATOR) - KE(COMPUTER) - KE(AC_SEARCH) - KE(AC_HOME) - KE(AC_BACK) - KE(AC_FORWARD) - KE(AC_STOP) - KE(AC_REFRESH) - KE(AC_BOOKMARKS) - - KE(BRIGHTNESSDOWN) - KE(BRIGHTNESSUP) - KE(DISPLAYSWITCH) - KE(KBDILLUMTOGGLE) - KE(KBDILLUMDOWN) - KE(KBDILLUMUP) - KE(EJECT) - KE(SLEEP) - - KE(APP1) - KE(APP2) + KE(UNKNOWN) + + KE(A) + KE(B) + KE(C) + KE(D) + KE(E) + KE(F) + KE(G) + KE(H) + KE(I) + KE(J) + KE(K) + KE(L) + KE(M) + KE(N) + KE(O) + KE(P) + KE(Q) + KE(R) + KE(S) + KE(T) + KE(U) + KE(V) + KE(W) + KE(X) + KE(Y) + KE(Z) + + KE(1) + KE(2) + KE(3) + KE(4) + KE(5) + KE(6) + KE(7) + KE(8) + KE(9) + KE(0) + + KE(RETURN) + KE(ESCAPE) + KE(BACKSPACE) + KE(TAB) + KE(SPACE) + + KE(MINUS) + KE(EQUALS) + KE(LEFTBRACKET) + KE(RIGHTBRACKET) + KE(BACKSLASH) + KE(NONUSHASH) + KE(SEMICOLON) + KE(APOSTROPHE) + KE(GRAVE) + KE(COMMA) + KE(PERIOD) + KE(SLASH) + + KE(CAPSLOCK) + + KE(F1) + KE(F2) + KE(F3) + KE(F4) + KE(F5) + KE(F6) + KE(F7) + KE(F8) + KE(F9) + KE(F10) + KE(F11) + KE(F12) + + KE(PRINTSCREEN) + KE(SCROLLLOCK) + KE(PAUSE) + KE(INSERT) + KE(HOME) + KE(PAGEUP) + KE(DELETE) + KE(END) + KE(PAGEDOWN) + KE(RIGHT) + KE(LEFT) + KE(DOWN) + KE(UP) + + KE(NUMLOCKCLEAR) + KE(KP_DIVIDE) + KE(KP_MULTIPLY) + KE(KP_MINUS) + KE(KP_PLUS) + KE(KP_ENTER) + KE(KP_1) + KE(KP_2) + KE(KP_3) + KE(KP_4) + KE(KP_5) + KE(KP_6) + KE(KP_7) + KE(KP_8) + KE(KP_9) + KE(KP_0) + KE(KP_PERIOD) + + KE(NONUSBACKSLASH) + KE(APPLICATION) + KE(POWER) + KE(KP_EQUALS) + KE(F13) + KE(F14) + KE(F15) + KE(F16) + KE(F17) + KE(F18) + KE(F19) + KE(F20) + KE(F21) + KE(F22) + KE(F23) + KE(F24) + KE(EXECUTE) + KE(HELP) + KE(MENU) + KE(SELECT) + KE(STOP) + KE(AGAIN) + KE(UNDO) + KE(CUT) + KE(COPY) + KE(PASTE) + KE(FIND) + KE(MUTE) + KE(VOLUMEUP) + KE(VOLUMEDOWN) + KE(KP_COMMA) + KE(KP_EQUALSAS400) + + KE(INTERNATIONAL1) + KE(INTERNATIONAL2) + KE(INTERNATIONAL3) + KE(INTERNATIONAL4) + KE(INTERNATIONAL5) + KE(INTERNATIONAL6) + KE(INTERNATIONAL7) + KE(INTERNATIONAL8) + KE(INTERNATIONAL9) + KE(LANG1) + KE(LANG2) + KE(LANG3) + KE(LANG4) + KE(LANG5) + KE(LANG6) + KE(LANG7) + KE(LANG8) + KE(LANG9) + + KE(ALTERASE) + KE(SYSREQ) + KE(CANCEL) + KE(CLEAR) + KE(PRIOR) + KE(RETURN2) + KE(SEPARATOR) + KE(OUT) + KE(OPER) + KE(CLEARAGAIN) + KE(CRSEL) + KE(EXSEL) + + KE(KP_00) + KE(KP_000) + KE(THOUSANDSSEPARATOR) + KE(DECIMALSEPARATOR) + KE(CURRENCYUNIT) + KE(CURRENCYSUBUNIT) + KE(KP_LEFTPAREN) + KE(KP_RIGHTPAREN) + KE(KP_LEFTBRACE) + KE(KP_RIGHTBRACE) + KE(KP_TAB) + KE(KP_BACKSPACE) + KE(KP_A) + KE(KP_B) + KE(KP_C) + KE(KP_D) + KE(KP_E) + KE(KP_F) + KE(KP_XOR) + KE(KP_POWER) + KE(KP_PERCENT) + KE(KP_LESS) + KE(KP_GREATER) + KE(KP_AMPERSAND) + KE(KP_DBLAMPERSAND) + KE(KP_VERTICALBAR) + KE(KP_DBLVERTICALBAR) + KE(KP_COLON) + KE(KP_HASH) + KE(KP_SPACE) + KE(KP_AT) + KE(KP_EXCLAM) + KE(KP_MEMSTORE) + KE(KP_MEMRECALL) + KE(KP_MEMCLEAR) + KE(KP_MEMADD) + KE(KP_MEMSUBTRACT) + KE(KP_MEMMULTIPLY) + KE(KP_MEMDIVIDE) + KE(KP_PLUSMINUS) + KE(KP_CLEAR) + KE(KP_CLEARENTRY) + KE(KP_BINARY) + KE(KP_OCTAL) + KE(KP_DECIMAL) + KE(KP_HEXADECIMAL) + + KE(LCTRL) + KE(LSHIFT) + KE(LALT) + KE(LGUI) + KE(RCTRL) + KE(RSHIFT) + KE(RALT) + KE(RGUI) + + KE(MODE) + KE(AUDIONEXT) + KE(AUDIOPREV) + KE(AUDIOSTOP) + KE(AUDIOPLAY) + KE(AUDIOMUTE) + KE(MEDIASELECT) + KE(WWW) + KE(MAIL) + KE(CALCULATOR) + KE(COMPUTER) + KE(AC_SEARCH) + KE(AC_HOME) + KE(AC_BACK) + KE(AC_FORWARD) + KE(AC_STOP) + KE(AC_REFRESH) + KE(AC_BOOKMARKS) + + KE(BRIGHTNESSDOWN) + KE(BRIGHTNESSUP) + KE(DISPLAYSWITCH) + KE(KBDILLUMTOGGLE) + KE(KBDILLUMDOWN) + KE(KBDILLUMUP) + KE(EJECT) + KE(SLEEP) + + KE(APP1) + KE(APP2) { diff --git a/src/tools/imgtool/modules/rt11.cpp b/src/tools/imgtool/modules/rt11.cpp index 3cce60a050f..f7f5a515f2c 100644 --- a/src/tools/imgtool/modules/rt11.cpp +++ b/src/tools/imgtool/modules/rt11.cpp @@ -6,68 +6,68 @@ DEC RT-11 disk images - References: - - VaFFM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf - DHM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91.pdf - SSM -- bitsavers://pdf/dec/pdp11/rt11/v5.0_Mar83/AA-H379B-TC_5.0_SWsuppMar83.pdf - TSX+ -- bitsavers://pdf/dec/pdp11/tsxPlus/manuals_6.31/TSX-Plus_UsersRef_Jan88.pdf - PUTR -- http://www.dbit.com/pub/putr/putr.asm - - To do: - - filter for text files - - read-write support - - report empty 'last modified' time if date field is all zeros - - report free space - - arbitrary sized images - - don't crash when strings in home block have non-ascii chars (charconverter does not apply) - - do something about bootblock bug in imgtool (commit aca90520) - - LBN Contents - --- -------- - 0 Reserved (primary bootstrap) - 1 Reserved (home block) - 2-5 Reserved (secondary bootstrap) - 6-7 Directory segment 1 - ... Directory segment 2-n - ... Data - - Home block - ---------- - 000-201 Bad block replacement table - 202-203 ? - 204-251 INITIALIZE/RESTORE data area - 252-273 BUP information area - 274-677 ? - 700-701 (Reserved for Digital, must be zero) - 702-703 (Reserved for Digital, must be zero) - 704-721 ? - 722-723 Pack cluster size (= 1) - 724-725 Block number of first directory segment - 726-727 System version (RAD50) - 730-742 Volume Identification - 744-757 Owner name - 760-773 System Identification - 776-777 Checksum - - Directory segment header - ------------------------ - 0 The total number of segments in this directory. - 1 The segment number of the next logical directory segment. If this word is 0, there are no more segments in the list. - 2 The number of the highest segment currently in use. Valid only in the first directory segment. - 3 The number of extra bytes per directory entry, always an unsigned, even octal number. - 4 The block number on the volume where the actual stored data identified by this segment begins. - - Directory entry - --------------- - 0 Status word - 1 File name 1-3 (RAD50) - 2 File name 4-6 (RAD50) - 3 File type 1-3 (RAD50) - 4 Total file length (blocks) - 5 Job#, Channel# (RT-11 uses this information only for tentative files) - 6 Creation date - 7- Optional extra words + References: + + VaFFM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf + DHM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91.pdf + SSM -- bitsavers://pdf/dec/pdp11/rt11/v5.0_Mar83/AA-H379B-TC_5.0_SWsuppMar83.pdf + TSX+ -- bitsavers://pdf/dec/pdp11/tsxPlus/manuals_6.31/TSX-Plus_UsersRef_Jan88.pdf + PUTR -- http://www.dbit.com/pub/putr/putr.asm + + To do: + - filter for text files + - read-write support + - report empty 'last modified' time if date field is all zeros + - report free space + - arbitrary sized images + - don't crash when strings in home block have non-ascii chars (charconverter does not apply) + - do something about bootblock bug in imgtool (commit aca90520) + + LBN Contents + --- -------- + 0 Reserved (primary bootstrap) + 1 Reserved (home block) + 2-5 Reserved (secondary bootstrap) + 6-7 Directory segment 1 + ... Directory segment 2-n + ... Data + + Home block + ---------- + 000-201 Bad block replacement table + 202-203 ? + 204-251 INITIALIZE/RESTORE data area + 252-273 BUP information area + 274-677 ? + 700-701 (Reserved for Digital, must be zero) + 702-703 (Reserved for Digital, must be zero) + 704-721 ? + 722-723 Pack cluster size (= 1) + 724-725 Block number of first directory segment + 726-727 System version (RAD50) + 730-742 Volume Identification + 744-757 Owner name + 760-773 System Identification + 776-777 Checksum + + Directory segment header + ------------------------ + 0 The total number of segments in this directory. + 1 The segment number of the next logical directory segment. If this word is 0, there are no more segments in the list. + 2 The number of the highest segment currently in use. Valid only in the first directory segment. + 3 The number of extra bytes per directory entry, always an unsigned, even octal number. + 4 The block number on the volume where the actual stored data identified by this segment begins. + + Directory entry + --------------- + 0 Status word + 1 File name 1-3 (RAD50) + 2 File name 4-6 (RAD50) + 3 File type 1-3 (RAD50) + 4 Total file length (blocks) + 5 Job#, Channel# (RT-11 uses this information only for tentative files) + 6 Creation date + 7- Optional extra words ****************************************************************************/ diff --git a/src/tools/testkeys.cpp b/src/tools/testkeys.cpp index a536e4ac272..9ee08808c19 100644 --- a/src/tools/testkeys.cpp +++ b/src/tools/testkeys.cpp @@ -26,263 +26,263 @@ struct key_lookup_table { int code; const char *name; }; static constexpr key_lookup_table sdl_lookup[] = { - KE(UNKNOWN) + KE(UNKNOWN) - KE(A) - KE(B) - KE(C) - KE(D) - KE(E) - KE(F) - KE(G) - KE(H) - KE(I) - KE(J) - KE(K) - KE(L) - KE(M) - KE(N) - KE(O) - KE(P) - KE(Q) - KE(R) - KE(S) - KE(T) - KE(U) - KE(V) - KE(W) - KE(X) - KE(Y) - KE(Z) + KE(A) + KE(B) + KE(C) + KE(D) + KE(E) + KE(F) + KE(G) + KE(H) + KE(I) + KE(J) + KE(K) + KE(L) + KE(M) + KE(N) + KE(O) + KE(P) + KE(Q) + KE(R) + KE(S) + KE(T) + KE(U) + KE(V) + KE(W) + KE(X) + KE(Y) + KE(Z) - KE(1) - KE(2) - KE(3) - KE(4) - KE(5) - KE(6) - KE(7) - KE(8) - KE(9) - KE(0) + KE(1) + KE(2) + KE(3) + KE(4) + KE(5) + KE(6) + KE(7) + KE(8) + KE(9) + KE(0) - KE(RETURN) - KE(ESCAPE) - KE(BACKSPACE) - KE(TAB) - KE(SPACE) + KE(RETURN) + KE(ESCAPE) + KE(BACKSPACE) + KE(TAB) + KE(SPACE) - KE(MINUS) - KE(EQUALS) - KE(LEFTBRACKET) - KE(RIGHTBRACKET) - KE(BACKSLASH) - KE(NONUSHASH) - KE(SEMICOLON) - KE(APOSTROPHE) - KE(GRAVE) - KE(COMMA) - KE(PERIOD) - KE(SLASH) + KE(MINUS) + KE(EQUALS) + KE(LEFTBRACKET) + KE(RIGHTBRACKET) + KE(BACKSLASH) + KE(NONUSHASH) + KE(SEMICOLON) + KE(APOSTROPHE) + KE(GRAVE) + KE(COMMA) + KE(PERIOD) + KE(SLASH) - KE(CAPSLOCK) + KE(CAPSLOCK) - KE(F1) - KE(F2) - KE(F3) - KE(F4) - KE(F5) - KE(F6) - KE(F7) - KE(F8) - KE(F9) - KE(F10) - KE(F11) - KE(F12) + KE(F1) + KE(F2) + KE(F3) + KE(F4) + KE(F5) + KE(F6) + KE(F7) + KE(F8) + KE(F9) + KE(F10) + KE(F11) + KE(F12) - KE(PRINTSCREEN) - KE(SCROLLLOCK) - KE(PAUSE) - KE(INSERT) - KE(HOME) - KE(PAGEUP) - KE(DELETE) - KE(END) - KE(PAGEDOWN) - KE(RIGHT) - KE(LEFT) - KE(DOWN) - KE(UP) + KE(PRINTSCREEN) + KE(SCROLLLOCK) + KE(PAUSE) + KE(INSERT) + KE(HOME) + KE(PAGEUP) + KE(DELETE) + KE(END) + KE(PAGEDOWN) + KE(RIGHT) + KE(LEFT) + KE(DOWN) + KE(UP) - KE(NUMLOCKCLEAR) - KE(KP_DIVIDE) - KE(KP_MULTIPLY) - KE(KP_MINUS) - KE(KP_PLUS) - KE(KP_ENTER) - KE(KP_1) - KE(KP_2) - KE(KP_3) - KE(KP_4) - KE(KP_5) - KE(KP_6) - KE(KP_7) - KE(KP_8) - KE(KP_9) - KE(KP_0) - KE(KP_PERIOD) + KE(NUMLOCKCLEAR) + KE(KP_DIVIDE) + KE(KP_MULTIPLY) + KE(KP_MINUS) + KE(KP_PLUS) + KE(KP_ENTER) + KE(KP_1) + KE(KP_2) + KE(KP_3) + KE(KP_4) + KE(KP_5) + KE(KP_6) + KE(KP_7) + KE(KP_8) + KE(KP_9) + KE(KP_0) + KE(KP_PERIOD) - KE(NONUSBACKSLASH) - KE(APPLICATION) - KE(POWER) - KE(KP_EQUALS) - KE(F13) - KE(F14) - KE(F15) - KE(F16) - KE(F17) - KE(F18) - KE(F19) - KE(F20) - KE(F21) - KE(F22) - KE(F23) - KE(F24) - KE(EXECUTE) - KE(HELP) - KE(MENU) - KE(SELECT) - KE(STOP) - KE(AGAIN) - KE(UNDO) - KE(CUT) - KE(COPY) - KE(PASTE) - KE(FIND) - KE(MUTE) - KE(VOLUMEUP) - KE(VOLUMEDOWN) - KE(KP_COMMA) - KE(KP_EQUALSAS400) + KE(NONUSBACKSLASH) + KE(APPLICATION) + KE(POWER) + KE(KP_EQUALS) + KE(F13) + KE(F14) + KE(F15) + KE(F16) + KE(F17) + KE(F18) + KE(F19) + KE(F20) + KE(F21) + KE(F22) + KE(F23) + KE(F24) + KE(EXECUTE) + KE(HELP) + KE(MENU) + KE(SELECT) + KE(STOP) + KE(AGAIN) + KE(UNDO) + KE(CUT) + KE(COPY) + KE(PASTE) + KE(FIND) + KE(MUTE) + KE(VOLUMEUP) + KE(VOLUMEDOWN) + KE(KP_COMMA) + KE(KP_EQUALSAS400) - KE(INTERNATIONAL1) - KE(INTERNATIONAL2) - KE(INTERNATIONAL3) - KE(INTERNATIONAL4) - KE(INTERNATIONAL5) - KE(INTERNATIONAL6) - KE(INTERNATIONAL7) - KE(INTERNATIONAL8) - KE(INTERNATIONAL9) - KE(LANG1) - KE(LANG2) - KE(LANG3) - KE(LANG4) - KE(LANG5) - KE(LANG6) - KE(LANG7) - KE(LANG8) - KE(LANG9) + KE(INTERNATIONAL1) + KE(INTERNATIONAL2) + KE(INTERNATIONAL3) + KE(INTERNATIONAL4) + KE(INTERNATIONAL5) + KE(INTERNATIONAL6) + KE(INTERNATIONAL7) + KE(INTERNATIONAL8) + KE(INTERNATIONAL9) + KE(LANG1) + KE(LANG2) + KE(LANG3) + KE(LANG4) + KE(LANG5) + KE(LANG6) + KE(LANG7) + KE(LANG8) + KE(LANG9) - KE(ALTERASE) - KE(SYSREQ) - KE(CANCEL) - KE(CLEAR) - KE(PRIOR) - KE(RETURN2) - KE(SEPARATOR) - KE(OUT) - KE(OPER) - KE(CLEARAGAIN) - KE(CRSEL) - KE(EXSEL) + KE(ALTERASE) + KE(SYSREQ) + KE(CANCEL) + KE(CLEAR) + KE(PRIOR) + KE(RETURN2) + KE(SEPARATOR) + KE(OUT) + KE(OPER) + KE(CLEARAGAIN) + KE(CRSEL) + KE(EXSEL) - KE(KP_00) - KE(KP_000) - KE(THOUSANDSSEPARATOR) - KE(DECIMALSEPARATOR) - KE(CURRENCYUNIT) - KE(CURRENCYSUBUNIT) - KE(KP_LEFTPAREN) - KE(KP_RIGHTPAREN) - KE(KP_LEFTBRACE) - KE(KP_RIGHTBRACE) - KE(KP_TAB) - KE(KP_BACKSPACE) - KE(KP_A) - KE(KP_B) - KE(KP_C) - KE(KP_D) - KE(KP_E) - KE(KP_F) - KE(KP_XOR) - KE(KP_POWER) - KE(KP_PERCENT) - KE(KP_LESS) - KE(KP_GREATER) - KE(KP_AMPERSAND) - KE(KP_DBLAMPERSAND) - KE(KP_VERTICALBAR) - KE(KP_DBLVERTICALBAR) - KE(KP_COLON) - KE(KP_HASH) - KE(KP_SPACE) - KE(KP_AT) - KE(KP_EXCLAM) - KE(KP_MEMSTORE) - KE(KP_MEMRECALL) - KE(KP_MEMCLEAR) - KE(KP_MEMADD) - KE(KP_MEMSUBTRACT) - KE(KP_MEMMULTIPLY) - KE(KP_MEMDIVIDE) - KE(KP_PLUSMINUS) - KE(KP_CLEAR) - KE(KP_CLEARENTRY) - KE(KP_BINARY) - KE(KP_OCTAL) - KE(KP_DECIMAL) - KE(KP_HEXADECIMAL) + KE(KP_00) + KE(KP_000) + KE(THOUSANDSSEPARATOR) + KE(DECIMALSEPARATOR) + KE(CURRENCYUNIT) + KE(CURRENCYSUBUNIT) + KE(KP_LEFTPAREN) + KE(KP_RIGHTPAREN) + KE(KP_LEFTBRACE) + KE(KP_RIGHTBRACE) + KE(KP_TAB) + KE(KP_BACKSPACE) + KE(KP_A) + KE(KP_B) + KE(KP_C) + KE(KP_D) + KE(KP_E) + KE(KP_F) + KE(KP_XOR) + KE(KP_POWER) + KE(KP_PERCENT) + KE(KP_LESS) + KE(KP_GREATER) + KE(KP_AMPERSAND) + KE(KP_DBLAMPERSAND) + KE(KP_VERTICALBAR) + KE(KP_DBLVERTICALBAR) + KE(KP_COLON) + KE(KP_HASH) + KE(KP_SPACE) + KE(KP_AT) + KE(KP_EXCLAM) + KE(KP_MEMSTORE) + KE(KP_MEMRECALL) + KE(KP_MEMCLEAR) + KE(KP_MEMADD) + KE(KP_MEMSUBTRACT) + KE(KP_MEMMULTIPLY) + KE(KP_MEMDIVIDE) + KE(KP_PLUSMINUS) + KE(KP_CLEAR) + KE(KP_CLEARENTRY) + KE(KP_BINARY) + KE(KP_OCTAL) + KE(KP_DECIMAL) + KE(KP_HEXADECIMAL) - KE(LCTRL) - KE(LSHIFT) - KE(LALT) - KE(LGUI) - KE(RCTRL) - KE(RSHIFT) - KE(RALT) - KE(RGUI) + KE(LCTRL) + KE(LSHIFT) + KE(LALT) + KE(LGUI) + KE(RCTRL) + KE(RSHIFT) + KE(RALT) + KE(RGUI) - KE(MODE) - KE(AUDIONEXT) - KE(AUDIOPREV) - KE(AUDIOSTOP) - KE(AUDIOPLAY) - KE(AUDIOMUTE) - KE(MEDIASELECT) - KE(WWW) - KE(MAIL) - KE(CALCULATOR) - KE(COMPUTER) - KE(AC_SEARCH) - KE(AC_HOME) - KE(AC_BACK) - KE(AC_FORWARD) - KE(AC_STOP) - KE(AC_REFRESH) - KE(AC_BOOKMARKS) + KE(MODE) + KE(AUDIONEXT) + KE(AUDIOPREV) + KE(AUDIOSTOP) + KE(AUDIOPLAY) + KE(AUDIOMUTE) + KE(MEDIASELECT) + KE(WWW) + KE(MAIL) + KE(CALCULATOR) + KE(COMPUTER) + KE(AC_SEARCH) + KE(AC_HOME) + KE(AC_BACK) + KE(AC_FORWARD) + KE(AC_STOP) + KE(AC_REFRESH) + KE(AC_BOOKMARKS) - KE(BRIGHTNESSDOWN) - KE(BRIGHTNESSUP) - KE(DISPLAYSWITCH) - KE(KBDILLUMTOGGLE) - KE(KBDILLUMDOWN) - KE(KBDILLUMUP) - KE(EJECT) - KE(SLEEP) + KE(BRIGHTNESSDOWN) + KE(BRIGHTNESSUP) + KE(DISPLAYSWITCH) + KE(KBDILLUMTOGGLE) + KE(KBDILLUMDOWN) + KE(KBDILLUMUP) + KE(EJECT) + KE(SLEEP) - KE(APP1) - KE(APP2) + KE(APP1) + KE(APP2) }; static char const *lookup_key_name(int kc) -- cgit v1.2.3-70-g09d2 From a7a81862837cf8df3bc19c601b9d06ffb16262c9 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sat, 23 Feb 2019 20:34:03 +0100 Subject: Move fillmatrix to to matrix solver base class. (nw) --- src/lib/netlist/plib/mat_cr.h | 13 +++-- src/lib/netlist/plib/parray.h | 1 + src/lib/netlist/solver/nld_matrix_solver.h | 76 ++++++++++++++++-------------- src/lib/netlist/solver/nld_ms_gcr.h | 6 +-- src/lib/netlist/solver/nld_ms_gmres.h | 3 +- 5 files changed, 56 insertions(+), 43 deletions(-) (limited to 'src/lib/netlist/plib/parray.h') diff --git a/src/lib/netlist/plib/mat_cr.h b/src/lib/netlist/plib/mat_cr.h index 3cf2570b725..7fc5d46b85d 100644 --- a/src/lib/netlist/plib/mat_cr.h +++ b/src/lib/netlist/plib/mat_cr.h @@ -67,13 +67,20 @@ namespace plib , m_size(n) { for (index_type i=0; i((N>0) ? N : m_size); } + void clear() + { + nz_num = 0; + for (index_type i=0; i < size() + 1; i++) + row_idx[i] = 0; + } + void set_scalar(const T scalar) { for (index_type i=0, e=nz_num; i 0 && col_idx[ri] == c) + if (ri < row_idx[r+1] && col_idx[ri] == c) A[ri] = val; else { @@ -97,7 +104,7 @@ namespace plib } A[ri] = val; col_idx[ri] = c; - for (C i = row_idx[r]; i < size()+1;i++) + for (C i = r + 1; i < size() + 1; i++) row_idx[i]++; nz_num++; if (c==r) diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 5ab52524a07..9b64f5343d2 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -60,6 +60,7 @@ namespace plib { using size_type = typename base_type::size_type; using reference = typename base_type::reference; using const_reference = typename base_type::const_reference; + using value_type = typename base_type::value_type; template parray(size_type size, typename std::enable_if::type = 0) diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index cd5a4f3bd0c..903c39257d0 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -53,42 +53,6 @@ namespace devices void set_pointers(); - /* FIXME: this works a bit better for larger matrices */ - template - void fill_matrix/*_larger*/(AP &tcr, FT &RHS) - { - - const std::size_t term_count = this->count(); - const std::size_t railstart = this->m_railstart; - - for (std::size_t i = 0; i < railstart; i++) - *tcr[i] -= m_go[i]; - - #if 1 - FT gtot_t = 0.0; - FT RHS_t = 0.0; - - for (std::size_t i = 0; i < term_count; i++) - { - gtot_t += m_gt[i]; - RHS_t += m_Idr[i]; - } - // FIXME: Code above is faster than vec_sum - Check this - #else - auto gtot_t = plib::vec_sum(term_count, m_gt); - auto RHS_t = plib::vec_sum(term_count, m_Idr); - #endif - - for (std::size_t i = railstart; i < term_count; i++) - { - RHS_t += (/*m_Idr[i]*/ + m_go[i] * *m_connected_net_V[i]); - } - - RHS = RHS_t; - // update diagonal element ... - *tcr[railstart] += gtot_t; //mat.A[mat.diag[k]] += gtot_t; - } - std::size_t m_railstart; std::vector m_nz; /* all non zero for multiplication */ @@ -207,6 +171,46 @@ namespace devices template void build_LE_RHS(T &child); + template + void fill_matrix(std::size_t N, AP &tcr, FT &RHS) + { + for (std::size_t k = 0; k < N; k++) + { + auto *net = m_terms[k].get(); + auto **tcr_r = tcr[k].data(); + + const std::size_t term_count = net->count(); + const std::size_t railstart = net->m_railstart; + + for (std::size_t i = 0; i < railstart; i++) + *tcr_r[i] -= net->m_go[i]; + + typename FT::value_type gtot_t = 0.0; + typename FT::value_type RHS_t = 0.0; + + for (std::size_t i = 0; i < term_count; i++) + { + gtot_t += net->m_gt[i]; + RHS_t += net->m_Idr[i]; + } + // FIXME: Code above is faster than vec_sum - Check this + #if 0 + auto gtot_t = plib::vec_sum(term_count, m_gt); + auto RHS_t = plib::vec_sum(term_count, m_Idr); + #endif + + for (std::size_t i = railstart; i < term_count; i++) + { + RHS_t += (/*m_Idr[i]*/ + net->m_go[i] * *net->m_connected_net_V[i]); + } + + RHS[k] = RHS_t; + // update diagonal element ... + *tcr_r[railstart] += gtot_t; //mat.A[mat.diag[k]] += gtot_t; + } + + } + std::vector> m_terms; std::vector m_nets; std::vector> m_inps; diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index 481d82a0e6b..fce7b5bae2c 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -67,7 +67,7 @@ private: plib::parray new_V; std::array, storage_N> m_term_cr; -// std::array, storage_N> m_term_cr; + // std::array, storage_N> m_term_cr; mat_type mat; @@ -296,8 +296,8 @@ unsigned matrix_solver_GCR_t::vsolve_non_dynamic(const bool newton_rap mat.set_scalar(0.0); /* populate matrix */ - for (std::size_t k = 0; k < iN; k++) - this->m_terms[k]->fill_matrix(m_term_cr[k], RHS[k]); + + this->fill_matrix(iN, m_term_cr, RHS); /* now solve it */ diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index 59c6259aafe..95de1bbae31 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -111,9 +111,10 @@ namespace devices m_ops.m_mat.set_scalar(0.0); /* populate matrix and V for first estimate */ + this->fill_matrix(iN, m_term_cr, RHS); + for (std::size_t k = 0; k < iN; k++) { - this->m_terms[k]->fill_matrix(m_term_cr[k], RHS[k]); this->m_new_V[k] = this->m_nets[k]->Q_Analog(); } -- cgit v1.2.3-70-g09d2 From 0e07f9ac34ec82066792fb9fdaaf04546b582fab Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 24 Feb 2019 13:58:47 +0100 Subject: netlist: more alignment related refactoring. (nw) --- src/lib/netlist/build/makefile | 2 +- src/lib/netlist/devices/nlid_system.h | 5 +- src/lib/netlist/nl_config.h | 2 +- src/lib/netlist/plib/palloc.h | 124 ++++++++++++++++++--------- src/lib/netlist/plib/parray.h | 2 +- src/lib/netlist/plib/pconfig.h | 2 + src/lib/netlist/plib/pfmtlog.h | 1 + src/lib/netlist/plib/pmatrix2d.h | 82 ++++++++++++++++++ src/lib/netlist/plib/ptypes.h | 43 +++------- src/lib/netlist/plib/putil.h | 31 +++++++ src/lib/netlist/solver/nld_matrix_solver.cpp | 24 ++---- src/lib/netlist/solver/nld_matrix_solver.h | 72 ++++++++++++---- src/lib/netlist/solver/nld_ms_sor.h | 10 +-- src/lib/netlist/solver/nld_solver.cpp | 2 +- 14 files changed, 283 insertions(+), 119 deletions(-) create mode 100644 src/lib/netlist/plib/pmatrix2d.h (limited to 'src/lib/netlist/plib/parray.h') diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile index f628e9eaed6..17dfe2f8edc 100644 --- a/src/lib/netlist/build/makefile +++ b/src/lib/netlist/build/makefile @@ -232,7 +232,7 @@ maketree: $(sort $(OBJDIRS)) .PHONY: clang clang-5 mingw doc native native: - $(MAKE) CEXTRAFLAGS="-march=native -Wall -Wpedantic -Wsign-compare -Wextra " + $(MAKE) CEXTRAFLAGS="-march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra " clang: $(MAKE) CC=clang++-9 LD=clang++-9 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-unused-template -Wno-non-virtual-dtor -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wweak-template-vtables -Wno-exit-time-destructors" diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index bc77f7ffd13..b5febc6ae3b 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -139,12 +139,13 @@ namespace netlist total += pati[i]; } netlist_time ttotal = netlist_time::zero(); - for (unsigned i=0; i(m_size - 1); + for (unsigned i=0; i < sm1; i++) { m_inc[i] = base * pati[i]; ttotal += m_inc[i]; } - m_inc[m_size - 1] = base * total - ttotal; + m_inc[sm1] = base * total - ttotal; } } NETLIB_UPDATEI(); diff --git a/src/lib/netlist/nl_config.h b/src/lib/netlist/nl_config.h index d5d195367ec..faa5008ff56 100644 --- a/src/lib/netlist/nl_config.h +++ b/src/lib/netlist/nl_config.h @@ -28,7 +28,7 @@ * Your mileage may vary. * */ -#define USE_MEMPOOL (0) +#define USE_MEMPOOL (1) /*! Store input values in logic_terminal_t. * diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 44f3bdb395e..c7aad9372d3 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -28,19 +28,21 @@ namespace plib { // Memory allocation //============================================================ -#if (USE_ALIGNED_OPTIMIZATIONS) + static constexpr bool is_pow2(std::size_t v) noexcept { return !(v & (v-1)); } + +#if (USE_ALIGNED_ALLOCATION) static inline void *paligned_alloc( size_t alignment, size_t size ) { #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) return _aligned_malloc(size, alignment); #elif defined(__APPLE__) - void* p; - if (::posix_memalign(&p, alignment, size) != 0) { - p = nullptr; - } - return p; + void* p; + if (::posix_memalign(&p, alignment, size) != 0) { + p = nullptr; + } + return p; #else - return aligned_alloc(alignment, size); + return aligned_alloc(alignment, size); #endif } @@ -79,19 +81,35 @@ namespace plib { { ::operator delete(ptr); } +#endif template inline C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept { + static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); + static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); + //auto t = reinterpret_cast(p); + //if (t & (ALIGN-1)) + // printf("alignment error!"); +#if (USE_ALIGNED_HINTS) + return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); +#else return p; +#endif } template inline C14CONSTEXPR const T *assume_aligned_ptr(const T *p) noexcept { + static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); + static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); +#if (USE_ALIGNED_HINTS) + return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); +#else return p; - } #endif + } + template inline T *pnew(Args&&... args) { @@ -124,8 +142,8 @@ namespace plib { constexpr pdefault_deleter() noexcept = default; template::value>::type> - pdefault_deleter(const pdefault_deleter&) noexcept { } + std::enable_if::value>::type> + pdefault_deleter(const pdefault_deleter&) noexcept { } void operator()(T *p) const { @@ -245,33 +263,38 @@ namespace plib { return std::move(a); } + //============================================================ + // Aligned allocator for use with containers + //============================================================ + template class aligned_allocator { public: - using value_type = T; + using value_type = T; + static constexpr const std::size_t align_size = (USE_ALIGNED_ALLOCATION) ? ALIGN : alignof(std::max_align_t); - static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0, - "ALIGN must be greater than alignof(T) and a multiple"); + static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0, + "ALIGN must be greater than alignof(T) and a multiple"); - aligned_allocator() noexcept = default; - ~aligned_allocator() noexcept = default; + aligned_allocator() noexcept = default; + ~aligned_allocator() noexcept = default; - aligned_allocator(const aligned_allocator&) noexcept = default; - aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; + aligned_allocator(const aligned_allocator&) noexcept = default; + aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; - aligned_allocator(aligned_allocator&&) noexcept = default; - aligned_allocator& operator=(aligned_allocator&&) = delete; + aligned_allocator(aligned_allocator&&) noexcept = default; + aligned_allocator& operator=(aligned_allocator&&) = delete; - template - aligned_allocator(const aligned_allocator& rhs) noexcept - { - unused_var(rhs); - } + template + aligned_allocator(const aligned_allocator& rhs) noexcept + { + unused_var(rhs); + } - template struct rebind + template struct rebind { - using other = aligned_allocator; + using other = aligned_allocator; }; T* allocate(std::size_t n) @@ -306,12 +329,38 @@ namespace plib { return !(lhs == rhs); } - // FIXME: needs to be somewhere else -#if 0 - template - using aligned_vector = std::vector>; - //using aligned_vector = std::vector>; -#else + //============================================================ + // traits to determine alignment size and stride size + // from types supporting alignment + //============================================================ + + PDEFINE_HAS_MEMBER(has_align, align_size); + + template + struct align_traits + { + static constexpr const std::size_t align_size = alignof(std::max_align_t); + static constexpr const std::size_t stride_size = + (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size + : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T + : align_size / sizeof(T))); + }; + + template + struct align_traits::value, void>::type> + { + static constexpr const std::size_t align_size = T::align_size; + static constexpr const std::size_t stride_size = + (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size + : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T + : align_size / sizeof(T))); + }; + + //============================================================ + // Aligned vector + //============================================================ + + // FIXME: needs a separate file template class aligned_vector : public std::vector> { @@ -326,13 +375,13 @@ namespace plib { using base::base; - reference operator[](size_type i) noexcept + C14CONSTEXPR reference operator[](size_type i) noexcept { - return assume_aligned_ptr(this->data())[i]; + return assume_aligned_ptr(&((*this)[0]))[i]; } constexpr const_reference operator[](size_type i) const noexcept { - return assume_aligned_ptr(this->data())[i]; + return assume_aligned_ptr(&((*this)[0]))[i]; } pointer data() noexcept { return assume_aligned_ptr(base::data()); } @@ -340,11 +389,6 @@ namespace plib { }; - -#endif - - - } // namespace plib #endif /* PALLOC_H_ */ diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 9b64f5343d2..1be37b908cd 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -104,7 +104,7 @@ namespace plib { return m_a[i]; } #else - reference operator[](size_type i) noexcept + C14CONSTEXPR reference operator[](size_type i) noexcept { return assume_aligned_ptr(&m_a[0])[i]; } diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index 1a411fe1aad..ecb9cc3511b 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -41,6 +41,8 @@ #define USE_ALIGNED_OPTIMIZATIONS (0) #endif +#define USE_ALIGNED_ALLOCATION (USE_ALIGNED_OPTIMIZATIONS) +#define USE_ALIGNED_HINTS (USE_ALIGNED_OPTIMIZATIONS) /* * Standard alignment macros */ diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h index 4c01f96dba7..50acf457114 100644 --- a/src/lib/netlist/plib/pfmtlog.h +++ b/src/lib/netlist/plib/pfmtlog.h @@ -9,6 +9,7 @@ #include "pstring.h" #include "ptypes.h" +#include "putil.h" #include diff --git a/src/lib/netlist/plib/pmatrix2d.h b/src/lib/netlist/plib/pmatrix2d.h new file mode 100644 index 00000000000..f0439105e5c --- /dev/null +++ b/src/lib/netlist/plib/pmatrix2d.h @@ -0,0 +1,82 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +/* + * pmatrix2d.h + * + * NxM regular matrix + * + */ + +#ifndef PMATRIX2D_H_ +#define PMATRIX2D_H_ + +#include "palloc.h" + +#include +#include +#include +#include +#include + +namespace plib +{ + + + template> + class pmatrix2d + { + public: + using value_type = T; + + static constexpr const std::size_t align_size = align_traits::align_size; + static constexpr const std::size_t stride_size = align_traits::stride_size; + pmatrix2d() + : m_N(0), m_M(0), m_stride(8) + { + } + + pmatrix2d(std::size_t N, std::size_t M) + : m_N(N), m_M(M), m_stride((M+stride_size-1) & ~(stride_size-1)), m_v(N * m_stride) + { + } + + void resize(std::size_t N, std::size_t M) + { + m_N = N; + m_M = M; + m_stride = (M+stride_size-1) & ~(stride_size-1); + m_v.resize(N * m_stride); + } + + C14CONSTEXPR T * operator[] (std::size_t row) noexcept + { + return assume_aligned_ptr(&m_v[m_stride * row]); + } + + constexpr const T * operator[] (std::size_t row) const noexcept + { + return assume_aligned_ptr(&m_v[m_stride * row]); + } + + T & operator()(std::size_t r, std::size_t c) noexcept + { + return (*this)[r][c]; + } + + const T & operator()(std::size_t r, std::size_t c) const noexcept + { + return (*this)[r][c]; + } + + private: + + std::size_t m_N; + std::size_t m_M; + std::size_t m_stride; + + std::vector m_v; + }; + +} // namespace plib + +#endif /* MAT_CR_H_ */ diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h index a3b11b65e74..84f6453e8f2 100644 --- a/src/lib/netlist/plib/ptypes.h +++ b/src/lib/netlist/plib/ptypes.h @@ -81,38 +81,19 @@ namespace plib template inline void unused_var(Ts&&...) {} - - - //============================================================ - // penum - strongly typed enumeration - //============================================================ - - struct penum_base - { - protected: - static int from_string_int(const char *str, const char *x); - static std::string nthstr(int n, const char *str); - }; - } // namespace plib -#define P_ENUM(ename, ...) \ - struct ename : public plib::penum_base { \ - enum E { __VA_ARGS__ }; \ - ename (E v) : m_v(v) { } \ - bool set_from_string (const std::string &s) { \ - static char const *const strings = # __VA_ARGS__; \ - int f = from_string_int(strings, s.c_str()); \ - if (f>=0) { m_v = static_cast(f); return true; } else { return false; } \ - } \ - operator E() const {return m_v;} \ - bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \ - bool operator==(const E &rhs) const {return m_v == rhs;} \ - std::string name() const { \ - static char const *const strings = # __VA_ARGS__; \ - return nthstr(static_cast(m_v), strings); \ - } \ - private: E m_v; }; - +//============================================================ +// Define a "has member" trait. +//============================================================ + +#define PDEFINE_HAS_MEMBER(name, member) \ + template class name \ + { \ + template static long test(decltype(&U:: member)); \ + template static char test(...); \ + public: \ + static constexpr const bool value = sizeof(test(nullptr)) == sizeof(long); \ + } #endif /* PTYPES_H_ */ diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h index cd55be63185..fbf6f2af26d 100644 --- a/src/lib/netlist/plib/putil.h +++ b/src/lib/netlist/plib/putil.h @@ -93,6 +93,37 @@ namespace plib const std::string &token, const std::size_t maxsplit); + + //============================================================ + // penum - strongly typed enumeration + //============================================================ + + struct penum_base + { + protected: + static int from_string_int(const char *str, const char *x); + static std::string nthstr(int n, const char *str); + }; + } // namespace plib +#define P_ENUM(ename, ...) \ + struct ename : public plib::penum_base { \ + enum E { __VA_ARGS__ }; \ + ename (E v) : m_v(v) { } \ + bool set_from_string (const std::string &s) { \ + static char const *const strings = # __VA_ARGS__; \ + int f = from_string_int(strings, s.c_str()); \ + if (f>=0) { m_v = static_cast(f); return true; } else { return false; } \ + } \ + operator E() const {return m_v;} \ + bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \ + bool operator==(const E &rhs) const {return m_v == rhs;} \ + std::string name() const { \ + static char const *const strings = # __VA_ARGS__; \ + return nthstr(static_cast(m_v), strings); \ + } \ + private: E m_v; }; + + #endif /* PUTIL_H_ */ diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index cb905251df3..3fcdd591e83 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -39,20 +39,6 @@ namespace devices m_connected_net_idx.push_back(net_other); } - void terms_for_net_t::set_pointers() - { - m_gt.resize(count(), 0.0); - m_go.resize(count(), 0.0); - m_Idr.resize(count(), 0.0); - m_connected_net_V.resize(count(), nullptr); - - for (std::size_t i = 0; i < count(); i++) - { - m_terms[i]->set_ptrs(&m_gt[i], &m_go[i], &m_Idr[i]); - m_connected_net_V[i] = m_terms[i]->otherterm()->net().Q_Analog_state_ptr(); - } - } - // ---------------------------------------------------------------------------------------- // matrix_solver // ---------------------------------------------------------------------------------------- @@ -254,8 +240,6 @@ namespace devices m_terms[k]->m_railstart = m_terms[k]->count(); for (std::size_t i = 0; i < m_rails_temp[k]->count(); i++) this->m_terms[k]->add(m_rails_temp[k]->terms()[i], m_rails_temp[k]->m_connected_net_idx.data()[i], false); - - m_terms[k]->set_pointers(); } // free all - no longer needed @@ -263,6 +247,8 @@ namespace devices sort_terms(m_sort); + this->set_pointers(); + /* create a list of non zero elements. */ for (unsigned k = 0; k < iN; k++) { @@ -371,9 +357,9 @@ namespace devices state().save(*this, m_terms[k]->m_h_n_m_1, this->name(), "m_h_n_m_1." + num); // FIXME: This shouldn't be necessary, recalculate on each entry ... - state().save(*this, m_terms[k]->m_go.data(),"GO" + num, this->name(), m_terms[k]->count()); - state().save(*this, m_terms[k]->m_gt.data(),"GT" + num, this->name(), m_terms[k]->count()); - state().save(*this, m_terms[k]->m_Idr.data(),"IDR" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_gon[k],"GO" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_gtn[k],"GT" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_Idrn[k],"IDR" + num, this->name(), m_terms[k]->count()); } } diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index 903c39257d0..ac5a2a464f7 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -10,9 +10,12 @@ #include "netlist/nl_base.h" #include "netlist/nl_errstr.h" -#include "netlist/plib/palloc.h" -#include "netlist/plib/putil.h" -#include "netlist/plib/vector_ops.h" +#include "plib/palloc.h" +#include "plib/putil.h" +#include "plib/vector_ops.h" +#include "plib/pmatrix2d.h" + +#include namespace netlist { @@ -51,8 +54,6 @@ namespace devices terminal_t **terms() { return m_terms.data(); } - void set_pointers(); - std::size_t m_railstart; std::vector m_nz; /* all non zero for multiplication */ @@ -65,10 +66,6 @@ namespace devices nl_double m_h_n_m_1; std::vector m_connected_net_idx; - plib::aligned_vector m_go; - plib::aligned_vector m_gt; - plib::aligned_vector m_Idr; - plib::aligned_vector m_connected_net_V; private: std::vector m_terms; @@ -171,6 +168,31 @@ namespace devices template void build_LE_RHS(T &child); + void set_pointers() + { + const std::size_t iN = this->m_nets.size(); + + std::size_t max_col = 0; + for (std::size_t k = 0; k < iN; k++) + max_col = std::max(max_col, m_terms[k]->count()); + + m_gtn.resize(iN, max_col); + m_gon.resize(iN, max_col); + m_Idrn.resize(iN, max_col); + m_connected_net_Vn.resize(iN, max_col); + + for (std::size_t k = 0; k < iN; k++) + { + auto count = m_terms[k]->count(); + + for (std::size_t i = 0; i < count; i++) + { + m_terms[k]->terms()[i]->set_ptrs(&m_gtn[k][i], &m_gon[k][i], &m_Idrn[k][i]); + m_connected_net_Vn[k][i] = m_terms[k]->terms()[i]->otherterm()->net().Q_Analog_state_ptr(); + } + } + } + template void fill_matrix(std::size_t N, AP &tcr, FT &RHS) { @@ -181,17 +203,21 @@ namespace devices const std::size_t term_count = net->count(); const std::size_t railstart = net->m_railstart; + const auto &go = m_gon[k]; + const auto > = m_gtn[k]; + const auto &Idr = m_Idrn[k]; + const auto &cnV = m_connected_net_Vn[k]; for (std::size_t i = 0; i < railstart; i++) - *tcr_r[i] -= net->m_go[i]; + *tcr_r[i] -= go[i]; typename FT::value_type gtot_t = 0.0; typename FT::value_type RHS_t = 0.0; for (std::size_t i = 0; i < term_count; i++) { - gtot_t += net->m_gt[i]; - RHS_t += net->m_Idr[i]; + gtot_t += gt[i]; + RHS_t += Idr[i]; } // FIXME: Code above is faster than vec_sum - Check this #if 0 @@ -201,7 +227,7 @@ namespace devices for (std::size_t i = railstart; i < term_count; i++) { - RHS_t += (/*m_Idr[i]*/ + net->m_go[i] * *net->m_connected_net_V[i]); + RHS_t += (/*m_Idr[i]*/ + go[i] * *cnV[i]); } RHS[k] = RHS_t; @@ -211,6 +237,16 @@ namespace devices } + template + using aligned_alloc = plib::aligned_allocator; + + plib::pmatrix2d> m_gon; + plib::pmatrix2d> m_gtn; + plib::pmatrix2d> m_Idrn; + plib::pmatrix2d> m_connected_net_Vn; + + plib::pmatrix2d m_test; + std::vector> m_terms; std::vector m_nets; std::vector> m_inps; @@ -283,7 +319,7 @@ namespace devices const std::size_t terms_count = terms->count(); const std::size_t railstart = terms->m_railstart; - const float_type * const gt = terms->m_gt.data(); + const float_type * const gt = m_gtn[k]; { float_type akk = 0.0; @@ -293,7 +329,7 @@ namespace devices Ak[k] = akk; } - const float_type * const go = terms->m_go.data(); + const float_type * const go = m_gon[k]; int * net_other = terms->m_connected_net_idx.data(); for (std::size_t i = 0; i < railstart; i++) @@ -314,9 +350,9 @@ namespace devices float_type rhsk_b = 0.0; const std::size_t terms_count = m_terms[k]->count(); - const float_type * const go = m_terms[k]->m_go.data(); - const float_type * const Idr = m_terms[k]->m_Idr.data(); - const float_type * const * other_cur_analog = m_terms[k]->m_connected_net_V.data(); + const float_type * const go = m_gon[k]; + const float_type * const Idr = m_Idrn[k]; + const float_type * const * other_cur_analog = m_connected_net_Vn[k]; for (std::size_t i = 0; i < terms_count; i++) rhsk_a = rhsk_a + Idr[i]; diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h index 450803e25d8..9e11cb67d75 100644 --- a/src/lib/netlist/solver/nld_ms_sor.h +++ b/src/lib/netlist/solver/nld_ms_sor.h @@ -85,10 +85,10 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap float_type RHS_t = 0.0; const std::size_t term_count = this->m_terms[k]->count(); - const float_type * const gt = this->m_terms[k]->m_gt.data(); - const float_type * const go = this->m_terms[k]->m_go.data(); - const float_type * const Idr = this->m_terms[k]->m_Idr.data(); - auto other_cur_analog = this->m_terms[k]->m_connected_net_V.data(); + const float_type * const gt = this->m_gtn[k]; + const float_type * const go = this->m_gon[k]; + const float_type * const Idr = this->m_Idrn[k]; + auto other_cur_analog = this->m_connected_net_Vn[k]; this->m_new_V[k] = this->m_nets[k]->Q_Analog(); @@ -136,7 +136,7 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap { const int * net_other = this->m_terms[k]->m_connected_net_idx.data(); const std::size_t railstart = this->m_terms[k]->m_railstart; - const float_type * go = this->m_terms[k]->m_go.data(); + const float_type * go = this->m_gon[k]; float_type Idrive = 0.0; for (std::size_t i = 0; i < railstart; i++) diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index 77bf710c9c9..d9685f24ae0 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -192,7 +192,7 @@ poolptr NETLIB_NAME(solver)::create_solver_x(std::size_t size, else return this->create_solver_x(size, solvername); } -}; +} struct net_splitter { -- cgit v1.2.3-70-g09d2