whatisgithub

What is tinyretropad?

plummerssoftwarellc/tinyretropad — explained in plain English

Analysis updated 2026-05-18

53AssemblyAudience · developerComplexity · 4/5LicenseSetup · hard

In one sentence

A working Notepad style Windows text editor written entirely in x86 assembly and compiled down to about 2.5 kilobytes, as a size optimization exercise.

Mindmap

mindmap
  root((TinyRetroPad))
    What it does
      Tiny Windows text editor
      Full Notepad style menus
      Extreme size optimization
    Tech stack
      x86 Assembly
      MASM
      Crinkler
    Use cases
      Demoscene sized programs
      Low level Windows programming study
    Audience
      Assembly enthusiasts
      Demoscene developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how a full Windows menu system can be built in raw assembly with minimal byte cost.

USE CASE 2

Learn size optimization techniques used in the demoscene community.

USE CASE 3

Use the growth log in the source to see the byte cost of each added feature.

USE CASE 4

Build a working, ultra small Windows text editor as a personal exercise.

What is it built with?

AssemblyMASMCrinklerWinAPI

How does it compare?

plummerssoftwarellc/tinyretropadfrancescobbo/nosjwasham/assembly-and-c
Stars531188
LanguageAssemblyAssemblyAssembly
Last pushed2016-08-11
MaintenanceDormant
Setup difficultyhardhardhard
Complexity4/55/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires MASM and the Crinkler linker, plus an antivirus exception since Crinkler builds are often flagged.

So what is it?

TinyRetroPad is a fully working, Notepad style text editor for Windows that is written in x86 assembly language and compiled down to roughly 2.5 kilobytes. It is a fork of an earlier tiny editor project, and its whole point is to prove how small a real, usable Windows application with actual menus can be made, as an exercise in extreme size optimization rather than a tool meant for daily use. Under the hood, it is basically a thin wrapper around a built in Windows text editing control, so most of the heavy lifting, like text rendering and cursor handling, is not written by hand at all. On top of that bare control, the project adds a full set of familiar Notepad features: File, Edit, Format, View, and Help menus, opening and saving files, printing and page setup, find, replace, and go to line, font selection, word wrap, inserting the current time and date, and a status bar showing the current line and column. Each of these was added while tracking exactly how many extra bytes it cost, and that growth log is kept at the top of the project's main source file. Building it requires a specific assembler and a size optimizing linker called Crinkler, both of which are common in the demoscene community that specializes in tiny, hand tuned programs. Because Crinkler produces unusual executables, some antivirus software, including Windows Defender, may flag or delete the resulting file, so building and testing it requires setting up an exception for that folder. This project will mostly appeal to people interested in low level Windows programming, assembly language, or the demoscene tradition of squeezing real functionality into the smallest possible program size. It is released under the Apache License 2.0.

Copy-paste prompts

Prompt 1
Explain how TinyRetroPad implements Find and Replace using Windows common dialogs.
Prompt 2
Walk me through why Crinkler-built executables sometimes get flagged by antivirus software.
Prompt 3
Show me how the menu bar is built in CreateNotepadMenus and how commands get routed.
Prompt 4
Explain the difference between the 1.0 and 2.0 versions of this editor's base control.

Frequently asked questions

What is tinyretropad?

A working Notepad style Windows text editor written entirely in x86 assembly and compiled down to about 2.5 kilobytes, as a size optimization exercise.

What language is tinyretropad written in?

Mainly Assembly. The stack also includes Assembly, MASM, Crinkler.

How hard is tinyretropad to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is tinyretropad for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.