Skip to content

Add hash-bench-nes to Home Consoles/NES - #5

Open
dmang-dev wants to merge 1 commit into
sehugg:masterfrom
dmang-dev:add-hash-bench-nes
Open

Add hash-bench-nes to Home Consoles/NES#5
dmang-dev wants to merge 1 commit into
sehugg:masterfrom
dmang-dev:add-hash-bench-nes

Conversation

@dmang-dev

Copy link
Copy Markdown

What this PR does

Adds a single entry to Home Consoles → NES:

* [hash-bench-nes](https://github.com/dmang-dev/hash-bench-nes) - Hash-algorithm benchmark ROM that times 18 cryptographic and non-cryptographic hashes (CRC, MD5, SHA-1, etc.) on the 6502, displaying ms/iter on screen. Built with cc65; NROM (mapper 0).

Why this section

The NES section here mixes tutorials, tools, homebrew, and references — a working cc65 NROM project that's something other than a game fits cleanly. Sits next to NESFab (NES-specific language) and FamiStudio (NES tool) at the bottom of the section.

Project at a glance

The README documents a real cc65-on-NES gotcha that bit us during development: cc65's NES BSS at $6000 requires the iNES header to flag battery PRG RAM, and FCEUX is stricter about NROM/WRAM combinations than Mesen — so the prebuilt ROM works in Mesen2 but may not boot cleanly in FCEUX.

Disclosure

I'm the author.

A cc65-based NROM ROM that times 18 hash algorithms on the 1.79 MHz
6502 and displays milliseconds-per-iteration on screen.  The
implementation deliberately keeps to the algorithms whose state fits
the cc65 toolchain's no-uint64_t constraint (so SHA-512, SHA-3,
xxHash64 etc. are dropped; everything else carries over).

Useful as a worked example of practical cc65 usage on real NES
hardware — passes Mesen2 cleanly; FCEUX has WRAM-mapping issues
documented in the README.

- Repo: https://github.com/dmang-dev/hash-bench-nes
- v1.0.0 release with prebuilt .nes:
  https://github.com/dmang-dev/hash-bench-nes/releases/tag/v1.0.0
- License: MIT
- Built with: cc65

I'm the author.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant