LIKO-12 es una computadora virtual (fantasy computer) de código abierto escrita en el lenguaje de programación Lua y desarrollada sobre el framework LÖVE. Permite a los usuarios crear, jugar y compartir pequeños juegos y programas de estilo retro, e incluye un sistema operativo tipo DOS llamado DiskOS.
El autor del proyecto es Rami Sabbagh. Cabe destacar que el proyecto ya no se desarrolla ni se mantiene actualmente.
Características principales
LIKO-12 ofrece un conjunto completo de especificaciones de hardware virtual para facilitar la creación de contenido:
CPU: LuaJIT (Lua 5.1) GPU/Pantalla: resolución de 192×128, profundidad de color de 4 bits Mapa: 144×128 celdas (255 tiles) Almacenamiento: 2 discos duros virtuales de 25 MB Entrada: teclado, ratón, pantalla táctil y gamepad
Su sistema integrado DiskOS proporciona programas de línea de comandos básicos y un editor visual de juegos. Los juegos y programas creados por el usuario se guardan como archivos de disco, lo que facilita su distribución.
Periféricos
LIKO-12 incluye una variedad de periféricos virtuales accesibles mediante su API:
HDD (disco duro) Proporciona un sistema de archivos completo con funciones como fs.drives(), fs.drive(), fs.sanitizePath(), fs.getDirectoryItems(), fs.combine(), fs.getName(), fs.getSize(), fs.getLastModified(), fs.isReadonly(), fs.exists(), fs.isFile(), fs.isDirectory(), fs.newDirectory(), fs.move(), fs.copy(), fs.delete(), fs.getFressSpace(), fs.find(), fs.getDirectory(), fs.getDrive(), fs.read(), fs.write(), fs.append(), fs.load(), fs.lines() y fs.mountZIP().
CPU Gestiona eventos y operaciones del sistema mediante funciones como pullEvent(), rawPullEvent(), triggerEvent(), clearESTack(), getHostOS(), isMobile(), clipboard(), clearClipboard(), sleep(), shutdown(), reboot(), openURL(), openAppdata(), getSaveDirectory() y cprint().
FDD (disquetera) Permite crear, importar y exportar disquetes virtuales mediante FDD.newDisk(), FDD.importDisk() y FDD.exportDisk(). Los discos pueden ser de color azul, naranja, rojo o verde.
Audio Ofrece generación y reproducción de sonido mediante Audio.generate(), Audio.play() y Audio.stop(). Soporta formas de onda senoidal, cuadrada, de pulso, diente de sierra, triangular y de ruido.
Gamepad Permite la configuración y mapeo de mandos mediante Gamepad._GetGUID(), Gamepad._MapButton(), Gamepad._CancelMapping() y Gamepad._SaveMap().
Controles táctiles Gestiona la entrada táctil mediante TC.setInput(state).
RAM Proporciona acceso directo a memoria mediante peek(), poke(), peek4(), poke4(), memget(), memset() y memcpu().
Teclado Gestiona la entrada de texto y teclas mediante textinput(), keyrepeat(), keytoscancode(), scancodetokey() y isKDown().
Implementación técnica y ecosistema
LIKO-12 está completamente escrita en Lua (algunas herramientas en Rust), funciona sobre el framework LÖVE y se distribuye bajo la licencia MIT. El proyecto es compatible con Windows, Linux, macOS y Android.
El repositorio principal en GitHub cuenta con más de 1.100 estrellas y 71 forks. En torno al proyecto han surgido varios subproyectos, incluidos programas de demostración, colecciones de shaders, documentación de la API y una capa de portabilidad que traslada CraftOS de ComputerCraft a LIKO-12.
Antecedentes históricos
LIKO-12 surgió originalmente como una alternativa de código abierto a PICO-8, con soporte para cargar cartuchos de PICO-8. Con el tiempo evolucionó hasta convertirse en una computadora virtual completa, con un sistema de periféricos virtuales y discos duros simulados.
Referencias
Enlaces externos Repositorio oficial en GitHub
Categoría:Software libre Categoría:Software de 2018 Categoría:Computadoras virtuales Categoría:Software escrito en Lua Categoría:Software para Windows Categoría:Software para Linux Categoría:Software para macOS Categoría:Software para Android