Rendering, input handling, and audio libraries
App | Techniques | Implementation libraries | C64 | Generic |
---|---|---|---|---|
Highbyte.DotNet6502.App.WASM |
Render: SkiaSharp.Blazor.View ,OpenGL |
Render: Highbyte.DotNet6502.Impl.Skia |
x | x |
Input: Blazor ,ASP.NET ,JavaScript |
Input: Highbyte.DotNet6502.Impl.AspNet |
x | x | |
Audio: WebAudio API , Blazor JS interop |
Audio: Highbyte.DotNet6502.Impl.AspNet |
x | ||
Highbyte.DotNet6502.App.SilkNetNative |
Render: Silk.NET ,OpenGL ,SkiaSharp |
Render: Highbyte.DotNet6502.Impl.Skia |
x | x |
Render (OpenGL/shaders): Highbyte.DotNet6502.Impl.SilkNet |
x | |||
Input: Silk.NET |
Input: Highbyte.DotNet6502.Impl.SilkNet |
x | x | |
Audio: NAudio |
Audio: Highbyte.DotNet6502.Impl.NAudio |
x | ||
Highbyte.DotNet6502.App.SadConsole |
Render: SadConsole |
Render: Highbyte.DotNet6502.Impl.SadConsole |
x | x |
Input: SadConsole |
Input: Highbyte.DotNet6502.Impl.SadConsole |
x | x | |
Audio: NAudio |
Audio: Highbyte.DotNet6502.Impl.NAudio |
x |
- Library with renderers implemented with the
SkiaSharp
2D drawing library. - For C64, multiple variants of a SkiaSharp renderer exists, with different tradeoffs (speed vs completeness).
- It's possible to use special Skia SKSL fragment shaders with SkiaSharp, which is used by some renderer variants.
- Can be used from both native and WASM applications.
- Note: other alternative renderers using only OpenGL + shaders can be found in
Highbyte.DotNet6502.Impl.SilkNet
currently used by the Silk.NET native app, see below.
Highbyte.DotNet6502.Impl.AspNet
- InputHandlers implemented with
ASP.NET Blazor
. Can be used from web applications. - AudioHandlers implemented with
ASP.NET Blazor
JS Interop to WebAudio. Can be used from web applications.
Experimental (non-complete) emulation of C64 SID audio chip.
Highbyte.DotNet6502.Impl.SilkNet
- InputHandlers implemented with the
Silk.NET
windowing library. Can be used from native Silk.NET application. - Renderers implemented with Silk.NET OpenGL bindings, together with custom shaders. Can be used from native Silk.NET application.
Highbyte.DotNet6502.Impl.Naudio
- AudioHandlers implemented with
NAudio
audio library using a customSilk.NET.OpenAL
provider for cross platform support. Can be used from all native applications.
Highbyte.DotNet6502.Impl.SadConsole
- Renderers and InputHandlers implemented with the
SadConsole
2D console drawing library. Can be used from native SadConsole application.