Skip to content

Contributing

Rudolf Stepan edited this page Jun 20, 2026 · 2 revisions

Source file

Contributing

Scope

This repository contains a C99-based 6502 SBC emulator, helper ROM generators, and documentation. The FPGA implementation lives in a separate repository, rudolfstepan/6502-sbc-fpga, linked here as a git submodule at fpga/. Clone with --recurse-submodules (or run git submodule update --init) when working on the FPGA side.

Development Workflow

  1. Fork the repository or create a feature branch.
  2. Keep changes focused and small.
  3. Rebuild locally with make clean && make.
  4. Test the changed behavior manually.
  5. Update documentation if user-facing behavior changes.

Coding Guidelines

  • Use C99.
  • Prefer small, local changes over broad refactors.
  • Preserve cycle-accuracy and existing device behavior unless the change explicitly targets them.
  • Keep public behavior and CLI options backward compatible when possible.
  • Avoid introducing external dependencies unless necessary.

Pull Requests

Please include:

  • A short problem statement
  • The change made
  • How it was tested
  • Any emulator behavior or compatibility impact

Documentation Policy

When behavior, memory maps, or workflows change, keep documentation in the same PR in sync.

Checklist:

  • Update README.md for user-visible changes.
  • Update affected docs in docs (for example architecture, device, or workflow pages).
  • Remove or rewrite obsolete sections instead of leaving conflicting guidance.
  • Keep addresses, register maps, and command examples aligned with current code/config.
  • Add a short note in CHANGELOG.md under Unreleased for notable user-facing updates.

Reporting Bugs

When reporting an issue, include:

  • Host OS
  • Build command
  • ROM used
  • sbc.ini or relevant config changes
  • Steps to reproduce
  • Expected behavior
  • Actual behavior

Clone this wiki locally