retrogolib

module
v0.0.0-...-4536e44 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2025 License: Apache-2.0

README

RetroGoLib - a Golang library for retro console tooling development

Build status go.dev reference Go Report Card codecov

Overview

RetroGoLib is a Golang library designed to simplify the development of tools for retro consoles. It provides a set of functionalities that can be used to create tools for various retro consoles, like emulators and debugging tools, all while keeping dependencies to a minimum.

The GUI renderer supports SDL without the use of CGO/SDL2, which makes it easier to build and distribute.

Current system support

CPUs:

  • 6502
  • Chip-8

Systems:

  • NES (Nintendo Entertainment System)

Project layout

├─ app              common application/service helpers
├─ arch/cpu/chip8   Chip-8 virtual CPU support
├─ arch/cpu/m6502   6502 CPU support
├─ arch/nes         NES common types and helpers
├─ assert           test assertion helpers
├─ buildinfo        show version info that is embedded in the binary
├─ gui              GUI support - SDL without need for CGO
├─ input            hardware controller/keyboard helpers
├─ log              fast and structured logging based on slog

Directories

Path Synopsis
Package app implements common application/service helpers.
Package app implements common application/service helpers.
arch
cpu/chip8
Package chip8 provides support for the virtual Chip-8 CPU.
Package chip8 provides support for the virtual Chip-8 CPU.
cpu/m6502
Package m6502 provides support for the MOS Technology 6502 CPU.
Package m6502 provides support for the MOS Technology 6502 CPU.
nes
Package nes provides support for the Nintendo Entertainment System (NES).
Package nes provides support for the Nintendo Entertainment System (NES).
nes/cartridge
Package cartridge provides .nes ROM loading and saving.
Package cartridge provides .nes ROM loading and saving.
nes/codedatalog
Package codedatalog implements support for Code/Data Logging in a FCEUX/Mesen emulator compatible format.
Package codedatalog implements support for Code/Data Logging in a FCEUX/Mesen emulator compatible format.
nes/parameter
Package parameter provides helpers to output instruction parameters as string compatible with specific assemblers.
Package parameter provides helpers to output instruction parameters as string compatible with specific assemblers.
nes/register
Package register contains constants that represent special memory register addresses.
Package register contains constants that represent special memory register addresses.
Package assert contains test assertion helpers.
Package assert contains test assertion helpers.
Package buildinfo formats build information that is embedded into the binaries.
Package buildinfo formats build information that is embedded into the binaries.
gui
Package gui implements different GUIs renderers.
Package gui implements different GUIs renderers.
sdl
Package sdl provides a SDL GUI renderer.
Package sdl provides a SDL GUI renderer.
Package input provides hardware controller/keyboard helpers.
Package input provides hardware controller/keyboard helpers.
Package log provides logging functionality.
Package log provides logging functionality.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL