Skip to content

Tool to allow use of legacy IBM symbol sets #1504

Open

Description

@abcbarryn

This is NOT a bug, but a note to inform people about a tool that works with NetHack since version 3.4 and has been tested with version 3.7. It allows the use of symbol sets that use the IBM CP437 code page and some other symbol sets on modern UTF systems without modifying the NetHack symbols file. It is used like this:
export NETHACKOPTIONS=symset:IBMgraphics
nethack | tolocal

It works with IBMgraphics, IBMGraphics_1, IBMGraphics_2, RogueIBM, RogueEpyx and RogueWindows

This also works with many other code pages and other programs.

https://github.com/abcbarryn/tolocal/releases/tag/0.1.1

Activity

  1. ostrosablin commented on Apr 24, 2026

    @ostrosablin

    Actually, there's already several documented ways to do just-in-time remap of IBM charset into UTF8 presentation for use with any modern UTF8 terminal seamlessly: konwert and filterm.

    https://nethackwiki.com/wiki/Konwert
    https://nethackwiki.com/wiki/IBMgraphics#Using_konwert.2C_filterm.2C_or_cp437_.28any_terminal.29

    Huge advantage of these is that they are present in repos of majority Linux distros and work flawlessly with both locally running NetHack instance, and public servers over ssh/telnet. It's as simple as this and works with any NetHack version with IBMgraphics support:

    filterm ascii-ascii cp437-utf8 nethack

  2. abcbarryn commented on Apr 24, 2026

    @abcbarryn
    ContributorAuthor

    Ok, nice to know. This tool: tolocal, has been around now for a few years and it has some features...
    Simpler command line, it reads your current terminals code so if it's not UTF8 you don't need to tell it. It also defaults to CP437 so you don't need to tell it that either. This also works flawlessly with both ssh and telnet

    ssh -t user@host 'export NETHACKOPTIONS=symset:IBMgraphics ; nethack' | tolocal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions