Skip to content

VPA-Linux 3.67.6

Latest

Choose a tag to compare

@promano7 promano7 released this 27 Sep 10:13
· 3 commits to main since this release
Immutable release. Only release title and notes can be modified.

VPA-Linux 3.67.6 — Native Wayland, pluggable graphics backends and combat-viewer charge indicators

🇬🇧 English. A new release of the native GNU/Linux build of VGA
Planets Assistant (VPA) 3.67
, the classic client for the play-by-email
strategy game VGA Planets 3. Built from the original Turbo/Borland Pascal DOS
source with Free Pascal — no DOSBox, no dosemu. Star map, ships, planets,
StarBases, messages, and a native, bit-exact PHost combat viewer (replacing
the old DOS-only PVCR.EXE), all running natively on X11 and, from this
release on, natively on Wayland too.

The headline of this release is native Wayland support: VPA no longer
needs XWayland in a Wayland session, and the mouse pointer is no longer
trapped in its window. To get there the graphics layer was rebuilt as
run-time plugins, one per display system, behind a common internal API. A
handful of fixes come along with it — see What's new below.

Downloads

  • vpa-linux-3.67.6-x86_64.tar.gz — pre-built binary for 64-bit x86 +
    everything you need to run it: the plugins/ folder with the two
    graphics backends and the bundled SDL3 (new, see below), VPA.HLP,
    VPA_RUS.HLP, VPA.MSG, DISTTABL.DAT, LITT_VPA.CHR. Start here if
    you're on a regular PC and just want to play. See HOWTO.en.md / HOWTO.es.md for
    setup instructions, including which files from your own VGA Planets
    installation and host you'll still need.
  • vpa-linux-3.67.6-aarch64.tar.gz — pre-built binary for 64-bit ARM
    (Raspberry Pi 3/4/5 and other aarch64 boards), same contents as the x86_64
    package, both plugins and SDL3 included.
  • vpa-linux-3.67.6-src.tar.gz — full source tree for this release,
    cleaned of DOS-era build artifacts. See BUILD.en.md /
    BUILD.es.md to compile it yourself.

Requirements

64-bit Linux (x86_64 or aarch64) with glibc 2.34 or later (Debian 12,
Ubuntu 22.04 and anything newer), and a graphical session, X11 or
Wayland
. The VPA binary itself only needs libc; the plugins use the
libraries every desktop already has: the usual X11 ones (libX11, libXext,
libXfixes, libXi, libXrandr, libXxf86vm) for the X11 plugin, and the Wayland
client libraries (libwayland-client, libxkbcommon, libdecor) for the Wayland
plugin. SDL3 is bundled, you don't need to install it. Full details and
per-distribution package names in the HOWTO.

Quick start

tar xzf vpa-linux-3.67.6-<arch>.tar.gz      # x86_64 or aarch64
cd vpa-linux-3.67.6-<arch>
chmod +x VPA
./VPA <race> [game-directory]

The plugins/ folder must stay next to the VPA binary — VPA won't
start without it. If you copy VPA to your own games folder, copy
plugins/ along with it. VPA.HLP must be present in the directory you run
VPA from — it's required to start.

What's new in 3.67.6

Native Wayland — how it was done

Up to 3.67.5, VPA linked the Free Pascal ptcgraph library and, through it,
seven X11 libraries: it was an X11 program, and in a Wayland session it only
ran through XWayland. That is where the known limitation of the last two
releases came from: the mouse pointer was grabbed when it entered the window
and never released, because all the pointer handling was X11 code
(XGrabPointer/XWarpPointer) that Wayland deliberately does not honour.
Patching around it was not possible; the fix had to be structural.

  • The executable no longer draws by itself. VPA now links no graphics
    library at all (ldd VPA: libc only). A new core, GRAPH/ (VPAGraph),
    offers VPA the same BGI drawing API it has always used, plus keyboard and
    mouse, so VPA's ~2,400 drawing calls did not change: uses ptcgraph simply
    became uses vpagraph. At start-up the core loads a graphics plugin
    with dlopen and forwards every call to it through a table of function
    pointers (the VPAGraph ABI v1). Before a plugin is accepted its ABI version,
    its table size and every mandatory entry are checked.

  • Two plugins, the same drawing code. plugins/libvpagraph-x11.so and
    plugins/libvpagraph-wayland.so both contain the same ptcgraph; only the
    PTC "console" that finally puts the pixels on screen differs. The X11 one is
    the console VPA-Linux has always used; the Wayland one is a new PTC console
    written for this port on top of SDL3
    , which talks to the compositor
    natively. That is why the picture is byte-for-byte identical on both
    backends — and it is not taken on trust: make visual-test captures a set
    of reference scenes from a real game on X11 and on Wayland and compares
    every frame with the golden ones, with a threshold of zero.

      VPA (executable)                  libc only
       └─ GRAPH/  VPAGraph core         BGI API + keyboard + mouse + plugin loader
            │   VPAGraph ABI v1 (table of function pointers)
            ├─ plugins/libvpagraph-x11.so       ptcgraph on PTC's X11 console
            └─ plugins/libvpagraph-wayland.so   the same ptcgraph on a new
                    │                           SDL3 console (native Wayland)
                    └─ plugins/libSDL3.so.0     bundled SDL 3.4.16
    
  • Why plugins and not two builds. There is still a single VPA
    binary
    . If SDL3 were linked into the executable, a system without it could
    not start VPA at all; as a plugin, a missing SDL3 just means the Wayland
    plugin does not load and VPA carries on with X11, exactly as before.

  • Nothing to configure. VPA looks at the session (WAYLAND_DISPLAY,
    DISPLAY, XDG_SESSION_TYPE), loads the matching plugin and, if it fails,
    tries the other one. VPA_GRAPH_BACKEND=x11 or =wayland forces one, and a
    forced backend never falls back silently: if it fails, VPA stops and says
    why. The new ./VPA --graph-info explains the whole decision (session,
    order tried, plugin chosen, or every reason why none worked) without opening
    a window — attach its output to any graphics bug report. ./VPA --help
    now also lists the VPA-Linux environment variables.

  • SDL3 comes in the package. Many distributions don't ship SDL3 yet, and
    some ship one that is too old, so the package carries its own:
    plugins/libSDL3.so.0, SDL 3.4.16 built from the unmodified official
    tarball with only what VPA uses (Wayland video, events and rendering), its
    zlib licence in LICENSE.SDL3.txt. Nothing is installed in your system. The
    plugin looks for it next to itself first and in the system second, so if
    you'd rather use your distribution's SDL3 (3.4.4 or later), just delete the
    bundled copy.

  • What you get on Wayland. The pointer comes and goes freely: VPA's white
    crosshair inside the window, the desktop's cursor outside. The picture stays
    sharp with fractional desktop scaling (tested at 100 %, 125 %, 150 %, 200 %
    and 240 %). The window keeps VPA's 4:3 shape when you resize it, as on X11,
    and VPA_SCALE=fullscreen fills the screen with black side bands and no
    distortion. The map stops auto-scrolling when the pointer is over those
    bands. The window's [X] button saves your turn like Alt-X. Key repeat,
    keyboard focus (also after returning from Edit file) and Ctrl-+ / Ctrl--
    on non-US layouts all work, and the "sticky mouse" that pulls the pointer
    onto planets and ships works on compositors that allow pointer warping.

  • Built for older systems too. The packages are now built in a clean
    Debian 12 (bookworm) chroot, amd64 and arm64, with scripts included in
    tools/. That's where the glibc 2.34 minimum above comes from.

Fixes

  • The map no longer scrolls while the pointer rests on the right-hand
    panel.
    With AutoScroll = On the map kept scrolling for as long as the
    pointer was anywhere over the panel. This came from the very first versions
    of the port and happened on X11 as well: under DOS the mouse driver stopped
    the pointer at the edge of the map (SetMouseRange(0,0,479,479)), but on a
    modern desktop the real pointer moves into the panel, and its position was
    only clamped to 479 — so the whole panel counted as "the right edge". Now
    only the 8-pixel strip at the edge of the map scrolls, as on the other
    three sides.
  • The bottom auto-scroll strip is 8 pixels, like the other three. It was
    2: the original DOS source used MouseY>477 at the bottom and 8 pixels
    everywhere else. Under DOS nobody noticed, because the mouse driver pinned
    the pointer to the edge anyway; with the right-hand side fixed, the
    difference became obvious.
  • The PHost combat viewer shows the charge of beams and torpedo tubes, in
    the battle simulator (F5) and when watching VCRs, like the classic viewer
    always did: a red bar per beam that fills green as it recharges, and a
    red / yellow / green circle per tube. The native PHost viewer that replaced
    PVCR.EXE had left these indicators unwired. The combat maths is untouched.
  • Integer settings line up in the Ctrl-O menu. Numeric entries such as
    StickyMouseRange were printed without padding, one column to the left of
    the On/Off entries.
  • VPA_FULLSCREEN and VPA_VIDEO are gone. They were leftovers from the
    first fullscreen attempt; VPA_SCALE=fullscreen (or full, max) is the
    one way to go fullscreen, on both backends.
  • For developers: make builds VPA and the X11 plugin;
    make wayland-plugin builds the Wayland plugin against the system's SDL3;
    make data assembles the full package with both plugins and its own SDL3
    (make sdl3). make visual-test runs the pixel comparison described
    above. The whole design, phase by phase with its decisions and tests, is in
    WAYLAND.md (Spanish), and the choice of the Wayland engine in
    docs/adr-001-motor-wayland.md.
  • Version bumped to 3.67.6 in the console banner and the graphical intro
    screen.

Acknowledgements

Thanks again to Alexander Alexandrovich Bezborodov (Александр
Александрович Безбородов), AKA "at0mix", who kept playing the
development builds and comparing them side by side with the DOS VPA. The
bottom auto-scroll strip and the missing charge indicators in the combat
viewer were both his catches, reported with screenshots from both versions.
Спасибо, Александр!

Known limitations

A thorough side-by-side comparison against the DOS version under DOSBox is
still pending. One cosmetic, by-design difference remains, documented in the
README: the combat viewer's first decimal digit can differ by ±0.5 from
PVCR.EXE due to a fractional-accumulation difference between the classic host
and PCC2ng's algorithm — the integer part and the final result always match.

The native Wayland backend has been played by hand on KDE Plasma 6
(KWin)
, and runs through the automated tests on Weston and Sway. Other
compositors, GNOME's included, have not been tried by hand yet; if something
looks wrong there, please report it with the output of ./VPA --graph-info.

The "sticky mouse" needs the compositor to let a program move the pointer
(the pointer-warp-v1 protocol, which KDE Plasma 6.7 provides). On
compositors without it the pointer is not pulled onto planets and ships;
everything else works.

If you force VPA_GRAPH_BACKEND=x11 inside a Wayland session, or no usable
SDL3 is available, VPA runs through XWayland as in 3.67.5, with the old
caveat: the pointer is grabbed and not released when it leaves the window
(F1 or F10 free it). Debian 13 (trixie) ships SDL 3.2.10, which is too
old for the plugin: keep the bundled copy there.

Credits & license

Original VPA by Alex V. Ivlev (1993–96) and later maintainers. Native PHost
combat viewer derived from PCC2ng by Stefan Reuther. SDL 3 by Sam
Lantinga and the SDL contributors (zlib), bundled in the binary packages;
SDL3-for-Pascal bindings by the Pascal Game Development Team (zlib).
Cyrillic console font from the Linux kbd/console-setup fonts (public
domain). This Linux port © 2026 Pablo Romano Gómez. Multi-license breakdown
and full texts in LICENSE.md.


🇪🇸 Español. Nueva versión de la compilación nativa para GNU/Linux de
VGA Planets Assistant (VPA) 3.67, el cliente clásico del juego de
estrategia por correo VGA Planets 3. Reconstruido a partir del código
original en Turbo/Borland Pascal para DOS con Free Pascal — sin DOSBox, sin
dosemu. Mapa estelar, naves, planetas, StarBases, mensajes, y un visor de
combate PHost
nativo y bit-exacto (sustituyendo al antiguo PVCR.EXE, solo
para DOS), todo funcionando de forma nativa sobre X11 y, desde esta versión,
también de forma nativa sobre Wayland.

La gran novedad de esta versión es el soporte nativo de Wayland: VPA ya
no necesita XWayland en una sesión Wayland, y el puntero del ratón ya no se
queda atrapado en su ventana. Para llegar hasta aquí se ha rehecho la capa
gráfica como plugins que se cargan en tiempo de ejecución, uno por sistema
gráfico, detrás de una API interna común. Con ello llegan también unas
cuantas correcciones — ver Novedades más abajo.

Descargas

  • vpa-linux-3.67.6-x86_64.tar.gz — binario ya compilado para x86 de 64
    bits + todo lo necesario para ejecutarlo: la carpeta plugins/ con los
    dos backends gráficos y la SDL3 incluida (nuevo, ver más abajo), VPA.HLP,
    VPA_RUS.HLP, VPA.MSG, DISTTABL.DAT, LITT_VPA.CHR. Empieza por
    aquí
    si estás en un PC normal y solo quieres jugar. Instrucciones en
    HOWTO.es.md / HOWTO.en.md, incluyendo qué ficheros de tu propia
    instalación de VGA Planets y de tu host seguirás necesitando.
  • vpa-linux-3.67.6-aarch64.tar.gz — binario ya compilado para ARM de 64
    bits (Raspberry Pi 3/4/5 y otras placas aarch64), con el mismo contenido que
    el paquete x86_64, los dos plugins y la SDL3 incluidos.
  • vpa-linux-3.67.6-src.tar.gz — árbol de código fuente completo de esta
    versión, ya limpio de artefactos de compilación de la era DOS. Instrucciones
    para compilarlo en BUILD.es.md / BUILD.en.md.

Requisitos

Linux de 64 bits (x86_64 o aarch64) con glibc 2.34 o posterior (Debian 12,
Ubuntu 22.04 y cualquier versión más nueva), y una sesión gráfica, X11 o
Wayland
. El binario VPA por sí solo solo necesita libc; los plugins usan
las librerías que ya tiene cualquier escritorio: las X11 habituales (libX11,
libXext, libXfixes, libXi, libXrandr, libXxf86vm) el plugin X11, y las
librerías cliente de Wayland (libwayland-client, libxkbcommon, libdecor) el
plugin Wayland. La SDL3 va incluida, no hace falta instalarla. Detalle
completo y nombres de paquete por distribución en el HOWTO.

Arranque rápido

tar xzf vpa-linux-3.67.6-<arch>.tar.gz      # x86_64 o aarch64
cd vpa-linux-3.67.6-<arch>
chmod +x VPA
./VPA <raza> [directorio-de-partida]

La carpeta plugins/ tiene que estar junto al binario VPA — sin ella VPA
no arranca. Si copias VPA a tu propia carpeta de partidas, copia plugins/
con él. VPA.HLP tiene que estar en el directorio desde el que ejecutas
VPA — es obligatorio para arrancar.

Novedades de la 3.67.6

Wayland nativo — cómo se ha hecho

Hasta la 3.67.5, VPA enlazaba la librería ptcgraph de Free Pascal y, a
través de ella, siete librerías X11: era un programa X11, y en una sesión
Wayland solo funcionaba a través de XWayland. De ahí venía la limitación
conocida de las dos últimas versiones: el puntero del ratón se capturaba al
entrar en la ventana y no se soltaba nunca, porque toda la gestión del puntero
era código X11 (XGrabPointer/XWarpPointer) que Wayland, a propósito, no
atiende. No había parche posible; el arreglo tenía que ser de estructura.

  • El ejecutable ya no dibuja por sí mismo. VPA ya no enlaza ninguna
    librería gráfica (ldd VPA: solo libc). Un núcleo nuevo, GRAPH/
    (VPAGraph), le ofrece a VPA la misma API de dibujo BGI que ha usado siempre,
    más teclado y ratón, así que las ~2.400 llamadas de dibujo de VPA no han
    cambiado: uses ptcgraph pasó a ser uses vpagraph. Al arrancar, el núcleo
    carga un plugin gráfico con dlopen y le pasa cada llamada a través de
    una tabla de punteros a función (la ABI v1 de VPAGraph). Antes de aceptar un
    plugin se comprueban su versión de ABI, el tamaño de su tabla y todas las
    entradas obligatorias.

  • Dos plugins, el mismo código de dibujo. plugins/libvpagraph-x11.so y
    plugins/libvpagraph-wayland.so llevan dentro el mismo ptcgraph; solo
    cambia la "consola" de PTC que acaba poniendo los píxeles en pantalla. La de
    X11 es la que VPA-Linux ha usado siempre; la de Wayland es una consola PTC
    nueva escrita para este port sobre SDL3
    , que habla con el compositor de
    forma nativa. Por eso la imagen es idéntica byte a byte en los dos
    backends — y no es un acto de fe: make visual-test captura una serie de
    escenas de referencia de una partida real en X11 y en Wayland y compara cada
    fotograma con los dorados, con umbral cero.

      VPA (ejecutable)                  solo libc
       └─ GRAPH/  núcleo VPAGraph       API BGI + teclado + ratón + cargador de plugins
            │   ABI v1 de VPAGraph (tabla de punteros a función)
            ├─ plugins/libvpagraph-x11.so       ptcgraph sobre la consola X11 de PTC
            └─ plugins/libvpagraph-wayland.so   el mismo ptcgraph sobre una consola
                    │                           SDL3 nueva (Wayland nativo)
                    └─ plugins/libSDL3.so.0     SDL 3.4.16 incluida
    
  • Por qué plugins y no dos compilaciones. Sigue habiendo un único
    binario VPA
    . Si la SDL3 estuviera enlazada en el ejecutable, un sistema
    sin ella no podría ni arrancar VPA; como plugin, que falte la SDL3 solo
    significa que el plugin Wayland no carga y VPA sigue con X11, exactamente
    como antes.

  • Nada que configurar. VPA mira la sesión (WAYLAND_DISPLAY, DISPLAY,
    XDG_SESSION_TYPE), carga el plugin que le corresponde y, si falla, prueba
    el otro. VPA_GRAPH_BACKEND=x11 o =wayland fuerza uno, y un backend
    forzado nunca se cambia por otro en silencio: si falla, VPA se detiene y dice
    por qué. El nuevo ./VPA --graph-info explica toda la decisión (sesión,
    orden de prueba, plugin elegido o, si ninguno funciona, todos los motivos)
    sin abrir ninguna ventana — adjunta su salida a cualquier informe de fallo
    gráfico. ./VPA --help lista ahora también las variables de entorno de
    VPA-Linux.

  • La SDL3 viene en el paquete. Muchas distribuciones todavía no traen SDL3,
    y alguna trae una demasiado antigua, así que el paquete lleva la suya:
    plugins/libSDL3.so.0, SDL 3.4.16 compilada a partir del tarball oficial
    sin modificar y solo con lo que VPA usa (vídeo Wayland, eventos y render),
    con su licencia zlib en LICENSE.SDL3.txt. No se instala nada en el sistema.
    El plugin la busca primero junto a sí mismo y después en el sistema, así que
    si prefieres la SDL3 de tu distribución (3.4.4 o posterior), basta con borrar
    la copia incluida.

  • Qué se nota en Wayland. El puntero entra y sale con libertad: la diana
    blanca de VPA dentro de la ventana, el cursor del escritorio fuera. La
    imagen se mantiene nítida con escalado fraccionario del escritorio (probado
    al 100 %, 125 %, 150 %, 200 % y 240 %). La ventana conserva la proporción 4:3
    de VPA al redimensionarla, como en X11, y VPA_SCALE=fullscreen llena la
    pantalla con bandas negras a los lados y sin deformar. El mapa deja de
    desplazarse cuando el puntero está sobre esas bandas. El botón [X] de la
    ventana guarda el turno como Alt-X. La repetición de teclas, el foco del
    teclado (también al volver de Edit file) y Ctrl-+ / Ctrl-- con teclados no
    estadounidenses funcionan, y el "imán" que lleva el puntero a planetas y
    naves funciona en los compositores que permiten mover el puntero.

  • Compilado también para sistemas más antiguos. Los paquetes se compilan
    ahora en un chroot limpio de Debian 12 (bookworm), amd64 y arm64, con scripts
    incluidos en tools/. De ahí sale el mínimo de glibc 2.34 de los requisitos.

Correcciones

  • El mapa ya no se desplaza mientras el puntero descansa sobre el panel
    derecho.
    Con AutoScroll = On el mapa se desplazaba sin parar mientras el
    puntero estuviera en cualquier punto del panel. Venía de las primeras
    versiones del port y pasaba también en X11: en DOS el driver del ratón
    paraba el puntero en el borde del mapa (SetMouseRange(0,0,479,479)), pero
    en un escritorio actual el puntero real entra en el panel, y su posición solo
    se recortaba a 479 — así que todo el panel contaba como "el borde derecho".
    Ahora solo desplaza la franja de 8 píxeles del borde del mapa, como en los
    otros tres lados.
  • La franja inferior de auto-scroll mide 8 píxeles, como las otras tres.
    Medía 2: el código original de DOS usaba MouseY>477 abajo y 8 píxeles en
    el resto. En DOS nadie lo notó, porque el driver del ratón clavaba el puntero
    en el borde de todos modos; con el lado derecho ya arreglado, la diferencia
    saltaba a la vista.
  • El visor de combate PHost muestra la carga de los rayos y de los tubos de
    torpedos
    , en el simulador de batallas (F5) y al ver los VCR, como hizo
    siempre el visor clásico: una barra roja por rayo que se llena de verde al
    recargarse, y un círculo rojo / amarillo / verde por tubo. El visor PHost
    nativo que sustituyó a PVCR.EXE había dejado estos indicadores sin
    conectar. La matemática del combate no se ha tocado.
  • Los ajustes enteros quedan alineados en el menú de Ctrl-O. Las entradas
    numéricas como StickyMouseRange se escribían sin relleno, una columna a la
    izquierda de las de On/Off.
  • Desaparecen VPA_FULLSCREEN y VPA_VIDEO. Eran restos del primer
    intento de pantalla completa; VPA_SCALE=fullscreen (o full, max) es la
    única forma de ponerse a pantalla completa, en los dos backends.
  • Para quien compila: make construye VPA y el plugin X11;
    make wayland-plugin, el plugin Wayland contra la SDL3 del sistema;
    make data monta el paquete completo con los dos plugins y su propia SDL3
    (make sdl3). make visual-test ejecuta la comparación de píxeles descrita
    arriba. El diseño completo, fase a fase con sus decisiones y sus pruebas,
    está en WAYLAND.md, y la elección del motor de Wayland en
    docs/adr-001-motor-wayland.md.
  • Número de versión actualizado a 3.67.6 en el banner de consola y en la
    pantalla de bienvenida gráfica.

Agradecimientos

Gracias de nuevo a Alexander Alexandrovich Bezborodov (Александр
Александрович Безбородов), AKA "at0mix", que ha seguido jugando con las
versiones de desarrollo y comparándolas lado a lado con el VPA de DOS. La
franja inferior del auto-scroll y los indicadores de carga que faltaban en el
visor de combate los encontró él, y los reportó con capturas de las dos
versiones. ¡Спасибо, Александр!

Limitaciones conocidas

Queda pendiente una comparación exhaustiva contra la versión DOS bajo DOSBox. Se
mantiene una diferencia cosmética y por diseño ya documentada en el README: el
primer decimal del visor de combate puede diferir en ~±0.5 respecto a
PVCR.EXE, por cómo cada uno acumula la fracción sub-unidad de forma distinta
(host clásico vs. algoritmo de PCC2ng) — la parte entera y el resultado final
siempre coinciden.

El backend Wayland nativo se ha jugado a mano en KDE Plasma 6 (KWin), y
pasa las pruebas automáticas en Weston y en Sway. Otros compositores,
incluido el de GNOME, todavía no se han probado a mano; si algo se ve mal en
ellos, repórtalo con la salida de ./VPA --graph-info.

El "imán" del ratón necesita que el compositor deje a un programa mover el
puntero (el protocolo pointer-warp-v1, que KDE Plasma 6.7 ofrece). En los
compositores que no lo tienen, el puntero no salta a planetas y naves; todo
lo demás funciona.

Si fuerzas VPA_GRAPH_BACKEND=x11 dentro de una sesión Wayland, o no hay una
SDL3 utilizable, VPA funciona a través de XWayland como en la 3.67.5, con la
pega de siempre: el puntero se captura y no se suelta al salir de la ventana
(F1 o F10 lo liberan). Debian 13 (trixie) trae la SDL 3.2.10, demasiado
antigua para el plugin: ahí hay que quedarse con la copia incluida.

Créditos y licencia

VPA original de Alex V. Ivlev (1993–96) y mantenedores posteriores. Visor de
combate PHost nativo derivado de PCC2ng de Stefan Reuther. SDL 3 de
Sam Lantinga y los colaboradores de SDL (zlib), incluida en los paquetes
binarios; enlaces SDL3-for-Pascal del Pascal Game Development Team (zlib).
Fuente cirílica de consola procedente de las fuentes kbd/console-setup de
Linux (dominio público). Este port a Linux © 2026 Pablo Romano Gómez. Desglose
de licencias y textos completos en LICENSE.md.