summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Hook up Borderline netlist, provided by 'beta-tester' (#7328) [beta-tester] Aaron Giles2020-10-052-200/+5597
| | | | | | * netlist: Explicitly trim connection names. * Hook up Borderline netlist, provided by 'beta-tester' * brdrline: Add static solver, using dynamic timestep, update driver flags.
* 3rdparty/nanosvg: Re-base on latest upstream. Vas Crabb2020-10-051-1/+5
| | | | | | | Now based on upstream cc6c08d3a80f1a305021af3d6394cdf1535d02a2. Among other things, this version is supposed to be less sensitive to the global locale.
* -emu/rendlay.cpp: Allow item animation. Vas Crabb2020-10-051-5/+4
| | | | -cgang.cpp: Make internal artwork more fun.
* netlist: fix VS build. couriersud2020-10-032-4/+4
|
* netlist: catch parenthesis count mismatch in formulas. couriersud2020-10-032-1/+8
|
* Exception specifications on deleted operators/constructors aren't useful. Vas Crabb2020-10-032-6/+6
|
* pmatrix_cr.h: More logical fix for the nothrow issue AJR2020-10-021-1/+1
|
* netlist: Revert changes intended to make the code work on OSX 10.10. couriersud2020-10-032-4/+4
| | | | * This is working on all contemporary compilers. If outdated compilers are to be used it is fine but a suitable compile path should be used.
* Fix clang error: exception specification of explicitly defaulted move ↵ AJR2020-10-022-6/+6
| | | | assignment operator does not match the calculated one
* netlist: simplify code. couriersud2020-10-027-77/+46
|
* netlist: move core_terms to netlist_state. couriersud2020-10-028-61/+71
| | | | | * These are used during creation and reset only. No need to maintain them on net_t level.
* netlist: more clang lint fixes. couriersud2020-10-0222-346/+384
|
* netlist: Add parse optimization to pfunction. couriersud2020-10-022-20/+99
| | | | * "(1 + 2)*a" now during parse step will be rewritten to "3*a".
* netlist: rename more files to lower case. couriersud2020-10-022-0/+0
|
* Got rid of global_alloc/global_free. Vas Crabb2020-10-036-78/+54
| | | | | | | | | | | | | | | | | | | | | | | | | The global_alloc/global_free functions have outlived their usefulness. They don't allow consistently overriding the default memory allocation behaviour because they aren't used consistently, and we don't have standard library allocator wrappers for them that we'd need to use them consistently with all the standard library containers we're using. If you need to change the default allocator behaviour, you can override the new/delete operators, and there are ways to get more fine-grained control that way. We're already doing that to pre-fill memory in debug builds. Code was already starting to depend on global_alloc/global_free wrapping new/delete. For example some parts of the code (including the UI and Windows debugger) was putting the result of global_alloc in a std::unique_ptr wrappers without custom deleters, and the SPU sound device was assuming it could use global_free to release memory allocated with operator new. There was also code misunderstanding the behaviour of global_alloc, for example the GROM port cartridge code was checking for nullptr when a failure will actually throw std::bad_alloc. As well as substituting new/delete, I've made several things use smart pointers to reduce the chance of leaks, and fixed a couple of leaks, too.
* formats/cassimg.cpp: Finish encapsulation of cassette_image class. Vas Crabb2020-10-028-218/+218
|
* -imagedev/cassimg.cpp: Make the interface look something like C++. Vas Crabb2020-10-0253-1150/+1025
| | | | -sound/tiasound.cpp: Use some vaguely C++-like code internally.
* netlist: Convert driver filenames to lower case. couriersud2020-09-3012-30/+32
|
* netlist: Fix a net splitting issue with four term devices. couriersud2020-09-306-16/+48
| | | | | | | | | | * Under cirtum circumstances the splitter would create "ghost" solvers consisting of terminals already used in another and complete solver. This may impact all netlist which use opamps and thus is committed early in the cycle. * This commit adds functionality to instruct the splitter code to include terminals which will not create matrix elements into the parsing of net groups for solvers.
* netlist: Rewrote frontier documentation. couriersud2020-09-303-29/+28
| | | | * Also includes a small optimization for FP signal code.
* netlist: applied some clang tidy recommendations couriersud2020-09-3013-14/+24
|
* netlist: implement stricter validation. couriersud2020-09-283-523/+59
| | | | | | | | | | | * Devices like BJTs and FETs which are defined but not used will now cause an error. * An unused device will create an additional solver with a singular matrix. - This is adding unnecessary performance overhead. - It complicates debugging because the unused device will cause an arithmetic signal if used with --fperr (nltool). * Fixed all validation errors.
* netlist: Remove "extended validation mode" couriersud2020-09-286-43/+7
| | | | * No longer added value.
* netlist: Fix astro blaster sonar sound couriersud2020-09-271-1735/+1686
| | | * Also fix two singular matrices being created.
* Cleaned up bitmap API. Vas Crabb2020-09-277-101/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made const-qualified pixel accessors (pix, pixt, raw_pixptr) return const-qualified references/pointers to pixesl, and added non-const versions. This makes bitmap more like standard library containers where const protects the content as well as the dimensions. Made the templated pixt accessor protected - having it public makes it too easy to inadvertently get a pointer to the wrong location. Removed the pix(8|16|32|64) accessors from the specific bitmaps. You could only use the "correct" one anyway, and having the "incorrect" ones available prevented explicit instantiations of the class template because the static assertions would fail. You can still see the pixel type in the bitmap class names, and you can't assign the result of &pix(y, x) to the wrong kind of pointer without a cast. Added fill member functions to the specific bitmap template, and added a explicit instantiations. This allows the bitmap size check to be skipped on most bitmap fills, although the clipping check is still there. Also fixed a couple of places that were trying to fill an indexed 16-bit bitmap with rgb_t::black() exposed by this (replaced with zero to get the same net effect). The explicit template instantiations in the .cpp file mean the compiler can inline the function if necessary, but don't need to generate a local out-of-line body if it chooses not to. Extended the size of the fill value parameter in the base bitmap class to 64 bits so it works correctly for 64-bit bitmaps. Fixed places where IE15 and VGM visualiser weren't accounting for row bytes potentially being larger than width. Fixed an off-by-one in an HP-DIO card where it was treating the Topcat cursor right edge as exclusive. Updated everything to work with the API changes, reduced the scope of many variables, added more const, and replaced a few fill/copy loops with stuff from <algorithm>.
* Disable SOUND_DEBUG for non-debug builds, and srcclean Vas Crabb2020-09-276-46/+46
|
* netlist: minor code cleanup. couriersud2020-09-2518-111/+131
| | | | | | * a number of minor fixes leading to an increase of 570% to 588% on pongf. * admittedly micro optimization. * Includes some comments why certain decisions have been taken.
* imd_dsk: Fix bug when changing IMD image [lfantoniosi] (#7289) lfantoniosi2020-09-251-0/+6
| | | | | * Fix bug when changing IMD image These arrays weren't zeroed when changing a IMD disk for saving.
* netlist: Fixed a couple of issues with various compilers. couriersud2020-09-246-3/+25
|
* netlist: make pstring length/size use consistent. couriersud2020-09-246-16/+33
| | | | | | | | | | | * length reports the number of character codes in the string * size reports the size in memory units * Reminder: Set PSTRING_USE_STD_STRING to 1 in pstring.h and get native std::string * pstrings are compatible to std::string but only support a limited subset of functionality. * By default (always like this) utf8 is supported and thus length reports the number of multi-byte characters.
* netlist: clearly identify void * casts. couriersud2020-09-244-5/+9
|
* netlist: Fix 128 bit integer support. couriersud2020-09-245-20/+32
|
* netlist: Improve queue handling documentation in code. couriersud2020-09-243-4/+44
| | | | | | | * Document that for performance reasons pushes to queue are allowed even if they may not change state and are filtered out during process. * Provide alternative code path. This is currently not used.
* netlist: code refactoring couriersud2020-09-2427-203/+194
| | | | | | * use default move and copy constructors * various minor edits like adding noexcept * removed a lot of inline keywords - you can't beat the compiler
* astrob: significant performance increase couriersud2020-09-201-1188/+1677
| | | | | | * uses all 4 Sonar oscillators * uses randomized resistor values (5% range) * uses frontiers to separate oscillators * improves performance to 340% locally.
* netlist: code refactoring. couriersud2020-09-207-169/+166
| | | | | - rename mat_cr.h to pmatrix_cr.h - Optimization to the gmres solver. - Simplifcation of vector operation code
* util/bitmap.cpp: Use std::fill_n to get better code for modern CPUs. Vas Crabb2020-09-201-74/+15
|
* Fix a minor error in the CD4076 netlist library device implementation ↵ Lord-Nightmare2020-09-182-2/+2
| | | | definition.
* Netlist devices for MCM14524, CD4029, CD4030, CD4042, CD4049, CD4076 [Lord ↵ Lord-Nightmare2020-09-178-0/+1012
| | | | Nightmare]
* netlist: emscripten can not use specialization efficiently. couriersud2020-09-173-0/+14
| | | | * Consequently prefer to save on compile time and size.
* netlist: optimize headers. couriersud2020-09-1711-78/+101
| | | | * where possible rely on forward declarations to optimiuze compile time.
* netlist: Move ICL8038_DIP and NE556_DIP to core. couriersud2020-09-173-1/+88
| | | | * Remove code duplication.
* Add MDCR support for P2000t (#7215) Erwin Jansen2020-09-172-0/+340
| | | | | | | This adds support for the mini digital cassette recorder that can be found inside a P2000t. This implementation is based on documentation that can be found in https://github.com/p2000t/documentation. In memory of NPM Jansen, who taught me all the magic of bits and bytes.
* netlist: move more models into the core. couriersud2020-09-133-3/+27
|
* netlist: Move selected NET_MODELS into the core couriersud2020-09-124-4/+8
|
* netlist: move to generated header and link support files files. couriersud2020-09-12137-2278/+273
| | | | | | | | | | | | | * Removed device and macro header files. * All of those can be generated automatically so going forward there is no need for these any longer. * Introduced the modules concept. Modules are netlists for which automatic lib entries are generated. * Going forward you just store them in macro/modules and they will be automatically registered as device elements. * You need to do a "make generated" is src/lib/netlist/build * Some_device.cpp still needs to be added to netlist.lua * Added documentation on how to add devices to netlist. * Please refer to adding_devices.md for more information.
* netlist: clang tidy fixes. couriersud2020-09-114-5/+9
|
* netlist: add listmodels command to nltool. Couriersud2020-09-092-1/+55
| | | * nltool --help is your friend.
* netlist: Implement voltage dependent timing for CD4006 couriersud2020-09-092-9/+35
|
* netlist: Pedantic and clang tidy updates couriersud2020-09-0628-52/+57
| | | * also fix an issue with netlist vs build