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.
Often used alongside ASCII Table Generator and Hex to ASCII Converter.
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
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.