NFO File Viewer

Decodes pasted text or an uploaded .nfo/.txt file's raw bytes through the real IBM PC code page 437 (CP437) table used by classic "scene" release .nfo files, so box-drawing borders and block-art characters render correctly instead of showing garbled question marks the way a naive UTF-8 or Latin-1 read does. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-27

Overview

Introduction

Long before Unicode was universal, DOS-era "scene" software groups shipped every cracked game or app with an accompanying .nfo text file, ASCII art logo, group credits, and release notes, all drawn using IBM PC code page 437's extended character set for box borders and shading blocks.

Opening one of those files today in a modern UTF-8-only text editor shows a wall of question marks and mojibake where the art should be, because CP437's byte values 128-255 mean completely different characters under modern encodings.

What Is NFO File Viewer?

A byte-accurate viewer that decodes raw file bytes (or pasted Latin-1-preserved text) through the real CP437 table IBM shipped on the original PC, rather than treating the bytes as UTF-8 or Windows-1252.

It reads the uploaded file as raw bytes (not as pre-decoded text), which is what makes it possible to recover the original box-drawing and block characters instead of whatever a naive text read already mangled them into.

How NFO File Viewer Works

An uploaded file is read with `FileReader.readAsArrayBuffer`, giving direct access to every byte 0-255 exactly as stored on disk; pasted text is instead read character-by-character and each character's code point (assumed to be 0-255, i.e. still Latin-1-shaped) is treated as a raw byte.

Each byte is looked up in a hand-built 256-entry CP437 table: bytes 32-126 match plain ASCII, bytes 0-31 and 127 use CP437's control-picture glyphs (except tab/LF/CR, kept as real whitespace), and bytes 128-255 map to CP437's extended Latin letters, box-drawing lines, shading blocks, and symbols.

The decoded text is rendered in a dark-background monospace block so the box-drawing characters visually line up the way they did in a DOS console.

When To Use NFO File Viewer

Use it whenever you've downloaded or found a classic .nfo release file and it shows garbled characters instead of the intended ASCII/CP437 art in your normal text editor.

Also useful for viewing any other DOS-era CP437 text, batch file headers, BBS door-game text, or old shareware READMEs, that relies on the extended character range.

Features

Advantages

  • Reads the file's actual raw bytes rather than trusting a prior (often wrong) text decoding, so nothing is lost before the CP437 table is even applied.
  • Implements the full 256-entry CP437 table, including the box-drawing and block-shading ranges that make .nfo art recognizable.
  • Renders output in a terminal-styled monospace block so alignment-dependent box art displays correctly.

Limitations

  • Does not interpret embedded ANSI color escape codes, some scene .nfo/.ans files use them for color; this tool shows the raw escape bytes as CP437 characters instead of rendering color.
  • Pasted (non-file) input depends on the browser/OS not having already destroyed the original byte values before the paste happened; a true byte-for-byte read is only guaranteed via file upload.
  • Byte 0x00 (NUL) is rendered as a blank space rather than any visible glyph, matching common CP437 viewer convention, though some references leave it undefined.

Examples

Decoding a double-line box border

Input

Bytes 201, 205×3, 187 (a top border row)

Output

╔═══╗

CP437 byte 201 is ╔, 205 is ═, and 187 is ╗, the classic double-line box-drawing set used in scene .nfo headers.

Plain ASCII passes through unchanged

Input

Bytes for "RELEASE NOTES"

Output

RELEASE NOTES

Bytes 32-126 are identical between CP437 and standard ASCII, so ordinary letters, digits, and punctuation render exactly as typed.

Best Practices & Notes

Best Practices

  • Prefer uploading the actual .nfo file over copy-pasting its contents from another program, since copy-paste can already have re-decoded the bytes through the wrong encoding before you ever see them.
  • If a file still shows unexpected characters after decoding, check whether it might use a different DOS code page (e.g. CP850) instead of CP437, they overlap heavily but diverge in a few extended-range positions.

Developer Notes

This is the one tool in the ascii category that intentionally does NOT call the shared `validateStrictAscii` 0-127 gate: its entire purpose is correctly rendering bytes 128-255, so restricting to 7-bit ASCII would defeat the tool. The CP437 table is hand-built as two lookup arrays (control codes 0-31, extended range 128-255) plus the identity mapping for 32-126, with tab/LF/CR special-cased to real whitespace in `decodeCp437Bytes()` since real .nfo files use them as line control, not art, even though the full CP437 font technically defines glyphs for those three positions too.

NFO File Viewer Use Cases

  • Reading classic scene-release .nfo files whose ASCII art shows as mojibake in a normal editor
  • Recovering box-drawing art from any DOS-era CP437 text file
  • Verifying which raw bytes a mysterious garbled text file actually contains

Common Mistakes

  • Opening a .nfo file directly in a UTF-8 text editor and assuming it's simply corrupted, when it's actually intact CP437 bytes being misread.
  • Pasting already-mangled text (re-decoded through the wrong encoding by another program first) and expecting a clean recovery; only the original file bytes decode perfectly.

Tips

  • If the output still looks wrong after uploading, double check the file isn't UTF-8 to begin with, some modern re-releases of old .nfo content are saved as UTF-8 and don't need CP437 decoding at all.
  • Box-drawing rows should line up vertically in the monospace output; if they don't, the file's line endings may be inconsistent rather than the byte decoding being wrong.

References

Frequently Asked Questions