emuLib is a run-time library used by emuStudio, universal emulation platform, and its plugins.
For Maven, use:
<dependency>
<groupId>net.emustudio</groupId>
<artifactId>emulib</artifactId>
<version>12.0.0</version>
</dependency>
For Gradle, use:
implementation 'net.emustudio:emulib:12.0.0'
Until version 9.0.0 emuLib used different group (net.sf.emustudio
) and artifactId (emuLib
). From version 10.0.0
onwards it uses group net.emustudio
and artifactId emulib
(all lowercase).
The library should be placed in lib/
directory where emuStudio is installed.
For example: emuStudio/lib/emulib.jar
.
TLDR; Click here for more robust documentation of plugin development.
The library defines API for emuStudio plugins. A plugin is represented by single object which implements
net.emustudio.emulib.plugins.Plugin
interface (or it's derivative). Plugins can also implement so-called "contexts",
which are used for inter-plugin communication.
Plugins can also communicate with emuStudio application API, using object net.emustudio.emulib.runtime.ApplicationApi
obtained during plugin construction.
Generally, package net.emustudio.emulib.plugins
is the API which plugins need to implement.
Then, in package net.emustudio.emulib.runtime.helpers
are utility classes which might be useful for the runtime, like:
- Number utilities which can do various radix conversions or other number manipulations (
NumberUtils
,RadixUtils
,DecodingStrategies
) - Intel HEX file generator/loader (
IntelHEX
)