denebtm / 6502emu Goto Github PK
View Code? Open in Web Editor NEWattempt at a 6502 system emulator with a plugin interface
attempt at a 6502 system emulator with a plugin interface
Handling keyboard input in the PET 2001 character device is rather meh, be nice if this could be done in its own plugin for purposes of reuse between different character device implementations
Requirements besides the obvious:
The changes from #4 cause symbol lookup errors upon loading a second instance of a plugin, due to the new namespace not having access to symbols in the main namespace
This currently causes a load failure on PIA2 with configs/{pet2001,basic4,basic4_turbo}.yaml
(though nothing needs it right now anyways)
Currently, plugins that provide an update function run it on each CPU clock cycle, which slows things down tremendously
Perhaps some sort of "run Plugin1 update on clock cycle X" system could be implemented without sacrificing emulation accuracy
Plugins should be able to have their own configuration options they can access at runtime
To think about: Maybe these should be shared between all plugins, so that e.g. Plugin1 can look up ConfigOptionA of Plugin2
The reason plugin_callback
exists is because I couldn't get plugin-to-program symbol binding (e.g. extern Emu6502 cpu
working. This should be re-evaluated, because void*
arguments with a cast are an ugly C-ism.
Best-case: plugin-to-main symbol binding can work -> no callback, provide a few useful functions for plugins to use
Worst-case: have plugin_init
populate a list of function pointers instead of a single callback
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.