This project goal is to provide as much debugging support as possible for retro assemblers and possibly compilers starting with KickAssembler.
- Debug file (.dbg) parsing provided by
IKickAssemblerDbgParser
. - Byte dump file (.dmp) parsing provided by
IKickAssemblerByteDumpParser
. - Compiler invocation (NOTE: Kick Assembler requires java installed on computer, OpenJDK is fine) provide by
IKickAssemblerCompiler
. - Converting Kick Assembler specific data into universal model provided by
IKickAssemblerProgramInfoBuilder
. - Universal model - for different assemblers and compilers (early version, might change in future) with top class
AssemblerAppInfo
.
I will add more services and more support types along the path.
This is a .NET 8+ cross-platform library.
All service classes have matching interface. Register them manually or run IoCRegistrar.AddDebugDataProvider
extension method on IServiceCollection
instance like:
public static IServiceCollection Configure(this IServiceCollection services)
{
services.AddDebugDataProvider();
}
Get debug data model by calling
var model = await IKickAssemblerDbgParser.LoadFileAsync("PATH_TO_DBG_FILE", ct)
Get byte dumb model by calling
var model = await IKickAssemblerByteDumpParser.LoadFileAsync("PATH_TO_BYTE_DUMP_FILE", ct)
Convert Kick Assembler specific debug model to universal one by calling
var universalModel = await IKickAssemblerProgramInfoBuilder.BuildAppInfoAsync("PROJECT_DIRECTORY", debugData, ct)
where debugData
argument is output from Debug file parser.
Clone repository.
Since Kick Assembler binaries are not included in this repository, it's required to download them and manual install them: in src/Righthand.RetroDbgDataProvider/Righthand.RetroDbgDataProvider
subdirectory create directory binaries/KickAss
and place inside Kick Assembler files KickAss.cfg
and KickAss.jar
.