Libemu is a library (and aditionally a set of tools) that help a developer to write a emulator.
The development of a emulator traditionally is a complex task that takes a lot of time. Since many tasks are the same for all emulators, this time could be reduced if a library was implemented that:
- provided a ready-to-use debugger for the plataform the user is developing
- provided a API that would simplify video output (tiles/sprites/raster/etc), RAM access, ROM loading, etc...
- controled the speed of the emulator
- made a emulated device (a microprocessor, for instance) independent from the emulated machine, so that it could be reused
- among others
So this project seeks to solve these problems. The project tools will be:
- libemu: the main library, that contains the API, and the users projects will be linked against it. It'll use GTK.
- libemud: the same as libemu, but will also contain everything the user needs to develop the project (debuggers, etc...)
- emucc: a emulator C compiler, that'll compile each one of the devices (CPU, video, etc) in a independent file that can be reused
- emutouch: a tool that creates a source file ready-to-use with all the headers, so that the user can fill them in