| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
* netlist: Explicitly trim connection names.
* Hook up Borderline netlist, provided by 'beta-tester'
* brdrline: Add static solver, using dynamic timestep, update driver flags.
|
|
|
|
|
|
|
| |
Now based on upstream cc6c08d3a80f1a305021af3d6394cdf1535d02a2.
Among other things, this version is supposed to be less sensitive to the
global locale.
|
|
|
|
| |
-cgang.cpp: Make internal artwork more fun.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* 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.
|
|
|
|
| |
assignment operator does not match the calculated one
|
| |
|
|
|
|
|
| |
* These are used during creation and reset only. No need to
maintain them on net_t level.
|
| |
|
|
|
|
| |
* "(1 + 2)*a" now during parse step will be rewritten to "3*a".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
-sound/tiasound.cpp: Use some vaguely C++-like code internally.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* Also includes a small optimization for FP signal code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* No longer added value.
|
|
|
| |
* Also fix two singular matrices being created.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>.
|
| |
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* Fix bug when changing IMD image
These arrays weren't zeroed when changing a IMD disk for saving.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
* use default move and copy constructors
* various minor edits like adding noexcept
* removed a lot of inline keywords - you can't beat the compiler
|
|
|
|
|
|
| |
* uses all 4 Sonar oscillators
* uses randomized resistor values (5% range)
* uses frontiers to separate oscillators
* improves performance to 340% locally.
|
|
|
|
|
| |
- rename mat_cr.h to pmatrix_cr.h
- Optimization to the gmres solver.
- Simplifcation of vector operation code
|
| |
|
|
|
|
| |
definition.
|
|
|
|
| |
Nightmare]
|
|
|
|
| |
* Consequently prefer to save on compile time and size.
|
|
|
|
| |
* where possible rely on forward declarations to optimiuze compile time.
|
|
|
|
| |
* Remove code duplication.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
| |
* nltool --help is your friend.
|
| |
|
|
|
| |
* also fix an issue with netlist vs build
|