viernes, 27 de diciembre de 2024

Resumen de 2024 de Malagueños Originales y Libres

En este último artículo del año vamos a repasar lo que hemos visto en el blog en este 2024.

  • Software libre, sobre todo de GNU/Linux destacando la instalación y uso de diversas aplicaciones de interés así como manuales para sacar más partido al sistema.

  • Juegos y otros programas para ocio (GNU/Linux y multisistema).

  • Medidas para convertir tu smart TV en un televisor normal y así asegurar tu privacidad #unsmartyourtv.

  • Retroinformática: emuladores, recetas, eventos, trucos, etc...

  • Destripamos el script RetroMultiInstaller para comprender su funcionamiento y que puedas añadir los scripts de tus programas favoritos, seguiremos viendo algunos artículos de esta serie en 2025 aunque más espaciados en el tiempo.

  • Trucos, sobre todo para GNU/Linux, configuración, usos poco conocidos...

  • Edición de vídeo, GIMP

 

Pero no nos vamos a quedar aquí, seguiremos con más experimentos y búsqueda de conocimiento el próximo año.

 


¡Feliz 2025! ;-)

viernes, 20 de diciembre de 2024

FreeCAD 1.0.0 en Debian

FreeCAD es uno de los más potentes modeladores paramétricos 3D, y es software libre.

 

Instalación desde repositorios (más antigua)

Podemos instalarlo en Debian desde los repositorios oficiales con el típico comando:

sudo apt install freecad

Pero en el caso de Debian 12 vas a tener la versión 0.2, si quieres la versión 1.0.0, más moderna y completa puedes hacerlo de dos maneras.

Appimage

Aunque no me gustan estas paqueterías que lo engloban todo, appimage es la mejor de todas porque es simplemente un binario que ejecutas sin ni siquiera instalarlo, es decir, una aplicación portable que no toca nada en el sistema.

Podemos descargarnos la última versión disponible de la web:

https://github.com/FreeCAD/FreeCAD/releases

Una vez descargado basta con darle permisos de ejecución y se lanza con un doble clic sobre el archivo.

Para más comodidad recomiendo hacer un acceso directo, aunque si te quieres ahorrar el trabajo el script RetroMultiInstaller te instalará esta versión si tu distro es arquitectura ARM64, lo habitual en un PC.


Desde el código fuente

Como software libre que es, puedes compilarlo a partir del código fuente y así podrás disfrutarlo en otras arquitecturas, basadas en ARM por ejemplo.

Antes tendrás que instalar un buen puñado de paquetes, ya que el programa tiene muchas dependencias:

sudo apt install git build-essential cmake libtool lsb-release python3 swig libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libvtk9-dev libx11-dev libxerces-c-dev libyaml-cpp-dev libzipios++-dev libsimage-dev

sudo apt install qtbase5-dev qttools5-dev libqt5opengl5-dev libqt5svg5-dev qtwebengine5-dev libqt5xmlpatterns5-dev libqt5x11extras5-dev libpyside2-dev libshiboken2-dev pyside2-tools pyqt5-dev-tools python3-dev python3-matplotlib python3-packaging python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-pyside2.qtwebengine python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtwebchannel pyqt5-dev-tools qt5-default

sudo apt install libocct-data-exchange-dev libocct-draw-dev libocct-foundation-dev libocct-modeling-algorithms-dev libocct-modeling-data-dev libocct-ocaf-dev libocct-visualization-dev occt-draw

Nos descargamos el código desde una carpeta:

git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad-source

Compilamos:

cd freecad-source
mkdir build
cd build
cmake ../
make -j$(nproc --ignore=2)

E instalamos:

sudo make install

El proceso tarda mucho rato incluso si tienes un PC potente pero si todo ha ido bien ya tienes instalado FreeCAD desde el código fuente.


viernes, 13 de diciembre de 2024

Ejecutar software de Amstrad CPC con MAME en modo gráfico GUI (I)

Hace tiempo que MAME incluye en su código lo que era el emulador MESS, que era una bifurcación del proyecto enfocada a emular ordenadores y consolas en lugar de máquinas arcades, por ello MAME es capaz de emular también este tipo de máquinas.

Antes de seguir vamos a instalar el mame en caso de que aún no lo hayas instalado, en el caso de Debian y otras distros derivadas puedes instalarlo con el comando:

sudo apt install mame

Para conseguir esto hay que incluir las BIOS(*) de los ordenadores como ROMs, se podrían incluir simplemente como archivos comprimidos en la misma carpeta de roms pero es más recomendable tenerlos en una carpeta aparte, en mi caso he creado en $HOME una carpeta mess y dentro dos carpetas, una de bios y otra de software.


Para incluir la carpeta de bios, en mi caso /home/miusuario/mess/bios puedo añadirlo al archivo mame.ini a las rutas definidas en la variable rompath, o hacerlo visualmente desde el propio entorno de MAME.

General settings ► Customize folders ► ROMs ► Add folder

Nos aparecerá un selector de carpetas por el que tenemos que navegar hasta llegar a la carpeta deseada y una vez dentro de ella pulsar la tecla TAB para añadirla.

Después vamos saliendo de las diferentes opciones seleccionadas pulsando la tecla ESC hasta volver a 'General settings' en cuya opción podemos hacer los cambios permanentes, con la opción 'Save Settings', en caso de que hayas salido completamente de las opciones las acciones serían:

General settings ► Save Settings

Ahora salimos completamente de las opciones de menú pulsando ESC una vez más hasta ver la página principal de MAME donde nos ofrecerá algunas ROMs para ejecutar, si tecleamos 'Amstrad' nos aparecerá todas las máquinas Amstrad que podemos emular.

Seleccionamos por ejemplo Amstrad CPC6128.

Nos aparecerán diversos juegos reconocidos por MAME pero que no nos funcionarán por no estar en la ruta adecuada con el nombre exacto que reconoce MAME, así que tendremos que elegir la opción 'Start empty'.

Nos saldrá una pantalla de confirmación, pulsamos una tecla y ya podemos ver nuestro Amstrad CPC6128 funcionando.

Una vez que estamos ejecutando el Amstrad CPC tenemos que activar los controles UI pulsando la tecla 'Insert' de nuestro teclado.

Pulsamos la tecla TAB y seleccionamos la opción 'File Manager'.


Nos aparecerá un menú para indicar la ubicación del archivo que queremos emular.


Podemos elegir diversos tipos de archivos, incluso a la vez:

  • printout (prin): archivo en el volcaremos la salida de lo que imprimamos.
  • snapshot (dump): archivos SNA que son volcados de memoria, en este caso se iniciaría el programa inmediatamente.
  • floppydiskX: archivos DSK, es decir, imágenes de disco, la X puede ser 1 o 2 según queramos que se comporte como unidad A: o B:
  • cassette (cass): archivos CDT, es decir, imágenes de cinta.

En el caso de elegir disquetes o cassettes tenemos que cargarlos como si estuviéramos en un Amstrad CPC real.

Si elegimos cassette debemos tener en cuenta que la combinación de teclas CTRL + Enter (pequeño) no funciona, así que tenemos que teclear RUN " y pulsar ENTER. 

Recuerda que como hemos elegido el CPC6128 hay que teclear antes |TAPE

Una vez seleccionada la imagen de cinta y ejecutado RUN" hay que "darle al play en el cassette", para ello le damos otra vez al tabulador y ahora seleccionamos la opción "Tape Control".

Seleccionamos la opción 'Play' y esperaremos a que termine la carga, no hay que esperar a que termine para salirnos de los menús.

Y bueno, básicamente así podríamos emular varios ordenadores de 8 bits con MAME.

No es el emulador más amigable del mundo y tiene varios defectos pero no está mal para un emulador que se creó para emular máquinas arcade y ahora aspira a emularlo todo.

----

(*) Los archivos BIOS necesarios se pueden sacar de casi cualquier otro emulador de CPC, como CPCEmu, caprice32, etc..., deberían comprimirse en archivos ZIP de la siguiente manera:

  • cpc464.zip: cpc464.rom y cpcados.rom
  • cpc664.zip: cpc664.rom
  • cpc6128.zip: cpc6128.rom

Recordemos que Amstrad autorizó hace años la distribución de ROMs en emuladores.


viernes, 6 de diciembre de 2024

Ampliando RetroMultiInstaller: los scripts de instalación (V)

El directorio installers es la carpeta que contiene toda colección de scripts que instalan cada uno de los programas.

Estos scripts se ejecutan desde el script instalador.sh desde la carpeta tmp para que los archivos temporales se creen en esa ruta.

El nombre del archivo del script de instalación que vamos a ejecutar sería la etiqueta que tenemos definida en el correspondiente archivo txt de la carpeta /menu seguido del sufijo _installer.sh
Si lo ejecutamos manualmente para probar que funciona correctamente hay que ir a la carpeta tmp y ejecutarlos así:

../installers/programa_installer.sh
Un ejemplo simple de script de instalación de software podría ser así:
#/bin/bash
../commonscripts/instalator.sh git
../commonscripts/createshortcuts.sh desktopcal
source ../commonscripts/makeopenchangetodir.sh /opt/webapps
git clone https://github.com/hvianna/desktopCal.js desktopcal
Los scripts que están dentro de la carpeta ../commonscripts son scripts para diversos usos que veremos en el próximo epígrafe.
El último de estos script se invoca con la instrucción source al principio, esto se hace para cambiar al directorio indicado. Hay que tener especial cuidado con los scripts que se ejecuten después de él, ya que a partir de ahora ya no se van a ejecutar desde la carpeta tmp sino por la indicada en este último script.
Después de git clone se pueden añadir todos los comandos para compilar el programa, si requiriera compilación, integración, etc…

viernes, 29 de noviembre de 2024

Castellanizar un Android TV (X96 mini)

Cuando compramos un Android TV, o reseteamos uno viejo, una de las primeras tareas que hay que hacer en poner lo menús en castellano, hay que hacerlo al menos en dos sitios:


 

En el propio sistema Android

  1. Hacemos clic en el boton de Settings, que está en letras blancas sobre fondo verde fosforito para que no lo veamos (a la porra la accesibilidad).
  2. Seleccionamos Language.
  3. Seleccionamos Español/España.
  4. Pulsamos la tecla para volver a atrás dos veces.

En el fork de KODI que trae, KD Player

NOTA: Para configurar KD Player debe estar configurada la Wi-Fi en el dispositivo para que podamos descargarnos el idioma deseado.

  1. Hacemos clic en el botón KD Player (esta vez sí es un botón grande y visible).
  2. Una vez arrancado KD Player, hacemos clic en el icono de la rueda dentada.
  3. Seleccionamos 'Interface settings'.
  4. Nos vamos a la opción 'Regional' y cambiamos las siguientes opciones:
    1. Language/Idioma: Spanish.
    2. Character set/Conjunto de caracteres: lo dejamos como está (Default / Por defecto).
    3. Keyboad layouts/Distribuciones de teclado: elegimos Spanish QWERTY.
    4. Formato regional determinado: cambiamos a España 24 horas, salvo que estemos en Canarias que podemos dejar ese que es el que trae por defecto al elegir Spanish.
  5. Pulsamos otra vez la tecla volver a atrás hasta volver al menú principal de KD Player.

viernes, 22 de noviembre de 2024

Raspberry Pi OS: programas solo para 64 bits

Hace poco tuve que cambiarme a Raspberry Pi OS de 64 bits porque había algunos programas que solo funcionan con esta versión y no con la versión de 32 bits, en realidad hay muchos más programas que se pueden compilar exitosamente en esta versión.

A continuación voy a poner una lista que irá creciendo aquí con el tiempo:

  • Digger: clásico juego de minas.
  • Retro Virtual Machine: el gran emulador multisistema.
  • ytfzf: este script para ver vídeos solo funciona en PC con GNU/Linux y raspberry pi de 64 bits.
  • KODI 20 o superior, las versiones anteriores sí funcionan con la versión de 32 bits, pero algunos plugins necesitan versiones más modernas para funcionar correctamente.
Aparte de esta lista, te encontrarás muchos más que no se podían compilar en la versión de 32 bits y ahora sí te van a funcionar.

Si conocéis más casos de programas que funcionen en Raspberry Pi OS de 64 bits y no en la de 32 bits, poned un comentario y vamos completando la lista entre todos.

viernes, 15 de noviembre de 2024

SmartTV: una barrera de uso para las personas mayores

 ¿Estás pensando comprar una smartTV a tus padres para sustituir su viejo televisor? Lee antes lo siguiente porque a lo mejor lo que vas a hacer es crearles un gran problema.

Hace unos meses estuve contando como convertir un smartTV en un televisor convencional, por temas de comodidad de uso, adaptación a mis necesidades, privacidad, gestión de mi red...

Temo que los próximos modelos sean cada vez más enemigos de los mayores por tener un mayor control sobre el uso que le damos al televisor y sobre todo dirigirnos en el uso que ellos consideran debemos darle: ser unos buenos consumidores de servicios digitales.

A raíz de esto otro usuario de este televisor me hizo una consulta porque un familiar mayor literalmente NO PODÍA USAR EL TELEVISOR TAL Y COMO VIENE CONFIGURADO, algo que no me extraño en absoluto, dadas las barreras que traen los últimos televisores, reproduzco más o menos la respuesta que le di:

Problemas con este modelo en concreto

Primera barrera: El mando que trae de serie:

El mando que trae el televisor es una auténtica vergüenza, no tiene ni números para seleccionar el canal, hay que darle a un botón para que te salga un navegador para seleccionar los números.

El mando que he comprado es un simple mando universal para televisores Samsung que encontrarás en algunos chinos de tu zona, están por todos sitios. Es un mando infrarrojo de toda la vida.
 

Segunda barrera: Smart Hub

Te habrás dado cuenta que cuando enciendes la tele no terminas en un canal de TV o una fuente externa sino que apareces en un panel que te ofrece una serie de servicios, donde uno de ellos por ahí perdido es la aplicación que te permite ver la televisión convencional o fuentes externas... esto es un coñazo para nosotros que tenemos destrezas digitales pero para una persona mayor o que no tenga estas destrezas es un muro infranqueable.
Afortunadamente, lo puedes quitar aunque también está muy escondido.

Con el mando y quitado smart hub tu madre para a percibir esta tele como una convencional y la podrá usar normalmente, eso sí, en algún canal le va a salir un molesto marco publicitario que reduce el tamaño de lo que ve durante unos segundos.

Otros modelos más antiguos muestran la tendencia

El caso es que hace unos años mis padres compraron otra tele Samsung que no arrancaba el smart HUB al inicio y sí se pudieron adaptar y eso que mi padre ve un ordenador y ve al demonio, pero los nuevos modelos son aún más intrusivos y eso que éste ya lo era más que el de mi hermana, una LG con sistema operativo WebOS.
WebOS lo veo algo mejor en el tema de ser menos intrusivo aunque también está limitadísimo y la tele tiene una pega gordota: de vez en cuando al canal se le va la olla y se pone a detectar una y otra vez los puertos, cuando pasa eso no puedes cambiar de canal, modificar el volumen... ni nada. Solo te queda esperar a que se pase la paranoia.

Sobre las teles con Android TV les veo un peligro: imagínate que se te bloquea el sistema en una tele de varios cientos de euros. Por supuesto también es intrusiva, aunque al menos en teoría te va a dejar instalar más cosas (y más posibilidades de cagarla). Supongo que tendrán algún arranque de emergecia para hacerle un wipe como los móviles.

Espero que os sirvan estas experiencias.

viernes, 8 de noviembre de 2024

Emular ZX Spectrum NEXT con ZEsarUX

ZX Spectrum NEXT es una evolución reciente de ZX Spectrum con diversas mejoras, entre ellas unos gráficos mejores, más hardware, nuevo sistema operativo, nuevo basic, nuevas conexiones, almacenamiento en SD, etc...

Hay un buen puñado de juegos específicos para esta evolución y algunos emuladores para disfrutarlos si no dispones de este ordenador, hoy vamos a ver como disfrutarlos con el emulador libre ZEsarUX, que ya vimos como lo podíamos instalar


 Para disfrutarlo con este emulador cambiamos la máquina emulada con las opciones:

  1. Botón derecho sobre la pantalla del emulador.
  2. Seleccionamos la opción: Machine
  3. Seleccionamos el fabricante: vTrucco/FB Labs
  4. Seleccionamos ZX Spectrum Next.

La primera vez nos preguntará si queremos descargar la última versión de la distro para ZX Spectrum Next, recomiendo decir que SÍ y así disfrutaremos de la máquina inmediatamente con muchos programas y juegos.


viernes, 1 de noviembre de 2024

Ampliando RetroMultiInstaller: el script principal (IV)

retroinstaller.sh es el script principal que debemos ejecutar para lanzar el RetroMultiinstaller, para analizar el código más en profundidad, he incluido en el mismo un comentario con un número que identifica lo explicado en los siguientes puntos:

  1. La primera línea es distinta al típico /bin/bash para que también podamos ejecutarlo haciendo doble clic sobre el script en un entorno gráfico.
  2. Definimos la función is_missing_dialog_pkg que comprueba si el paquete dialog está instalado y si no es así lo instala.
  3. Después de invocar la función para instalar dialog si es preciso entramos en un bucle infinito.
  4. Se asigna a la variable “seleccion” la salida del comando menugen.sh, pasada a minúsculas. El script ‘menugen.sh’ es el que realmente dibuja los menús y lo veremos más adelante.
  5. Si se elige “exit” o se cancela el menú se sale del menú y se acaba la ejecución.
  6. Si existe un archivo en la carpeta menús cuyo nombre sea igual al valor de la variable “seleccion” más la extensión “.txt” se ejecuta de nuevo el script pero pasándole como parámetro el valor de la variable “seleccion”.
  7. Si selección toma un valor distinto a “exit” se ejecuta el comando cuyo nombre es el valor de la variable selección seguido de “_installer.sh”.
  8. En este caso también se muestra un texto de ayuda con el script warninggen.sh de la carpeta commonscripts, si existe el archivo warning/seleccion.txt 


A continuación podemos ver como quedaría el script:

#!/usr/bin/env bash
function is_missing_dialog_pkg() { #2
    if [ ! -f /usr/bin/dialog ]; then
        while true; do
            read -p "Missing 'dialog' package. Do you wish to let me try to install it for you? (aprox. 1.3 kB) [y/n] " yn
            case $yn in
            [Yy]*)
                ./commonscripts/instalator.sh dialog
                break
                ;;
            [Nn]*)
                echo "Please install 'dialog' package to continue."
                exit 1
                ;;
            *) echo "Please answer (y)es or (n)o." ;;
            esac
        done
    fi
}

#3
is_missing_dialog_pkg
#Blue infinito para pintar los menus #3
while true; do
    #4
    seleccion=$(./commonscripts/menugen.sh $1  | tr '[:upper:]' '[:lower:]')
    #5
    if [ $seleccion == "exit" ] || [ -z "$seleccion" ]; then
        clear
        break
    fi
    #6
    if  [ -f "./menus/${seleccion}.txt" ]; then
        ./retroinstaller.sh $seleccion
    else
        #7
        mkdir tmp
        clear
        echo ">>> Installing ${seleccion}..."
        cd tmp
        ../installers/${seleccion}_installer.sh
        #8
        ../commonscripts/warninggen.sh ${seleccion}
        cd ..
    fi
done

viernes, 25 de octubre de 2024

Resetear Android TV a valores de fábrica (X96 mini)

 ¿Quién no ha hecho alguna vez un "wipe" a un móvil que se ha quedado tostado del todo?

¿Se podría hacer lo mismo con un Android TV que tiene tanta porquería que ya casi ni responde?

La respuesta es sí, pero la pregunta es... ¿dónde está el botón que debo dejar pulsado para entrar en el menú de Android Recovery?

En los Android TV suele existir un botón para este menester pero en muchos casos está en el lugar más insospechado, en el caso del X96 mini está dentro del jack para conectarlo por AV a un  televisor antiguo.

 


Para resetearlo hay que mantener pulsado este botón mientras se arranca el dispositivo hasta que aparece en pantalla el menú de Recovery de Android.

Como es lógico, lo primero es conectar por HDMI el aparato al televisor y seleccionada la entrada por la que vemos el aparato, una vez comprobado que es así encendiendo el mismo, lo dejamos conectado pero desconectamos la alimentación. 

Lo siguiente que hacemos es empujar un palito de madera o plástico del tamaño adecuado por el oficio del jack de AV hasta escuchar un clic y mantenerlo en esa posición mientras encendemos de nuevo el dispositivo, ya sea conectando con la otra mano el conector de alimentación de 5V o conectando la regleta en la que está enchufado el dispositivo.


Una vez que sale el menú de recovery de Android ya podemos retirar el palito y usamos el mando a distancia para seleccionar las opciones de menú deseadas, estas son las teclas que vamos a usar:

  • ARRIBA: con el botón de subir volumen (azul) o con el botón arriba de la cruceta seleccionamos la opción que hay encima de la actual.
  • ABAJO: con el botón de bajar volumen (amarillo) seleccionamos la opción que hay abajo de la actual.
  • SELECCIÓN: con el botón de encender/apagar el aparato o con el botón OK de la cruceta ejecutamos la opción que está en este momento seleccionada.

 

¿Y que opciones hay que ejecutar?

Las opciones a ejecutar son, en este orden:

  1. Wipe caché partition: limpia la caché de datos.
  2. Wipe data/factory reset: inicia el dispositivo con los valores de fábrica, es decir, lo deja como si lo acabáramos de comprarlo. 

 


Después de ejecutar cada una de estas opciones, se nos pedirá confirmación, ya que vamos a borrar los datos y configuraciones del dispositivo.

 


La última opción que ejecutaremos será 'Reboot system now' tras lo cual arrancará el dispositivo como si fuera la primera vez, por lo que tardará un poco más de lo habitual.


Y listo, ya solo nos queda volver a configurar nuestro Android TV a nuestro gusto para disfrutarlo como nuevo.


Si aún te han quedado dudas también puedes ver el siguiente vídeo con todo el proceso:



viernes, 18 de octubre de 2024

TAPClean: conversor de imagenes TAP de Commodore a WAV con comprobación de integridad

TAPClean es un programa para la consola de comandos que permite convertir los archivos TAP a archivos de sonido WAV que podemos reproducir para cargar en un ordenador Commodore real.

Esta disponible, entre otros sistemas, para Windows y GNU/Linux, tanto para PCs de 64 bits, 32 bits o sistemas basados en ARM.

Vamos a ver como instalarlo en GNU/Linux:

  1. Descargamos el programa de su página oficial, eligiendo el archivo gz correspondiente a la arquitectura de nuestro ordenador.
    En https://sourceforge.net/projects/tapclean/files/latest/download descargaremos automáticamente la última versión disponible para nuestro sistema.
  2. Descomprimimos el archivo con el programa gunzip del sistema, por ejemplo:
    gunzip tapclean-0.38-linux-x86_64.gz -O tapclean.gz
  3. Damos permisos de escritura al archivo descomprimido:
    sudo chmod +x tapclean
  4. Movemos el archivo a la carpeta /usr/local/bin para que sea otro comando más de nuestro GNU/Linux que podamos invocar desde cualquier directorio:
    sudo cp tapclean /usr/local/bin

Para saber que se puede hacer con el programa basta con teclearlo sin parámetros:

tapclean

Y de mostrará la relación de parámetros que podemos usar.

----------------------------------------------------------------------
TAPClean 0.38 - (C)2006-2019 TC Team [Built Jan  8 2019 by ldf]
Based on Final TAP 2.76 Console - (C) 2001-2006 Subchrist Software
----------------------------------------------------------------------

Usage:
tapclean [[option][parameter]] ...
Example: tapclean -o giana_sisters.tap -tol 12

Options:
 -t   [tape]    Test tape image
 -o   [tape]    Optimize tape image
 -b   [dir]     Batch test
 -au  [tape]    Convert tape image to Sun AU audio file (44kHz)
 -wav [tape]    Convert tape image to Microsoft WAV audio file (44kHz)
 -rs  [TAP]     Correct the 'size' field of a TAP file header
 -ct0 [tape]    Convert tape image to version 0 TAP format
 -ct1 [tape]    Convert tape image to version 1 TAP format

 -boostclean    Raise cleaning threshold
 -debug         Allow detected files to overlap
 -do<loader>    Scan only for <loader>
 -docyberfault  Report Cyberload F3 bad checksums of $04
 -doprg         Create PRG files
 -extvisipatch  Extract Visiload loader patch files
 -fstats        Pulse stats are per file
 -incsubdirs    Make batch scan include subdirectories
 -list          List of supported scanners and options used by -no<loader>
 -no<loader>    Don't scan for <loader> Example: -nocyber
 -noaddpause    Don't add a pause to the file end after clean
 -noc64eof      C64 ROM scanner will not expect EOF markers
 -noid          Disable scanning for only the 1st ID'd loader
 -preserve      Preserve loader variables between program executions
 -prgunite      Connect neighbouring PRG's into a single file
 -reckless      Allow cleaning of tape images with errors
 -sine          Make audio converter use sine waves
 -skewadapt     Use skewed pulse adapting bit reader
 -sortbycrc     Batch scan sorts report by cbmcrc values
 -tol [0-15]    Set pulsewidth read tolerance, default = 10

Experimental options (for advanced users):
 -16            Force Commodore 16 tape
 -20            Force Commodore VIC 20 tape
 -64            Force Commodore 64 tape (default)
 -ntsc          NTSC timing
 -pal           PAL timing (default)

También tienes disponible la instalación automática desde el script RetroMultiInstaller

Y puedes hacerte un mod de audio con tu C64 Datacassette siguiendo este tutorial.

viernes, 11 de octubre de 2024

Raspberry Pi OS 64bits con X11 (en lugar de Wayland)

No hace muchos años Raspberry pi OS de 32 bits ganaba de mano a la versión de 64 bits en rendimiento y sobre todo en estabilidad sin haber software que necesitara expresamente la versión de 64 bits, por lo que su uso tenía poco sentido, esto ha cambiado bastante en este tiempo.

Hoy en día hay programas que solo funcionan en la versión de 64 bits, como algunos emuladores y juegos, y además ya es un sistema totalmente estable aunque aún no da el rendimiento de la versión de 32 bits y algunos programas como capturadores de pantalla no funcionan, el culpable es el compositor que trae por defecto: Wayland.

Por tanto, vamos a volver a nuestro fiable X11 para ello debemos abrir una terminal desde 

Menú  Acccesorios  LX Terminal

Y ejecutar el comando:

sudo raspi-config

Nos aparecerá el menú clásico de configuración de nuestra raspberry:



Elegimos Wayland


Seleccionamos la opción 'X11' .

Cuando pulsemos en Aceptar nos pedirá reiniciar para arrancar con nuestro fiel X11.

Si necesitaras volver a la configuración de Wayland, repite todo el proceso pero al final debes elegir la opción 'Wayfire' que es la que traía de fábrica.

Recuerda que cada vez que cambies de compositor se pierde parte de tu personalización del sistema, por lo que es conveniente hacer esta operación nada más instalar el sistema para ahorrarte duplicar el trabajo.

viernes, 4 de octubre de 2024

Ampliando RetroMultiInstaller: archivos del directorio principal (III)

En el propio directorio donde hemos copiado Multi-installer tenemos una serie de archivos esenciales para su funcionamiento:

  • retroinstaller.sh: es el script principal que tendremos que ejecutar para la ejecución del programa desde el directorio donde hemos copiado el programa, ya sea desde consola con la instrucción ./instalador.sh o haciendo doble clic desde el entorno gráfico de GNU/Linux, en cuyo caso tendremos que seleccionar la opción ‘Ejecutar desde una terminal’.
  • README.md: documento escrito en el lenguaje markup para wiki en el que podemos incluir una descripción del programa Multi-installer junto con la relación de programas que se pueden instalar con el script, en cada ítem debería incluirse al menos una descripción de lo que hace, enlace para descargar el programa de su página oficial, arquitecturas soportadas, etc.
  • TO_DO.md: documento con las mejoras que se desean incluir en un futuro sin plazo determinado.
  • logo.png: icono identificativo de la aplicación que se mostrará en la descripción del proyecto si se sube a algún servicio de hospedaje de código gestionado por git, como github o gitlab.
    Se recomienda que sea cuadrado, no muy pesado ni grande, 256x256 pixels es una buena opción.
  • LICENSE: licencia del programa, GNU GPL 3.

En el próximo capítulo veremos como funciona el script retroinstaller.sh en más profundidad.

viernes, 27 de septiembre de 2024

Wayland en Raspberry Pi OS de 64 bits: lo que pierdes y lo que cambia

Raspberry Pi OS de 64 bits ya es un sistema estable de verdad y ya hay software que solo funciona en la versión de 64 bits, sobre todo algunos emuladores o juegos pero trae por defecto el compositor Wayland en lugar del clásico X11, porque es más moderno y supuestamente "mejor", sin embargo hay muchos incovenientes y sobre todo cosas que te van a dejar de funcionar en Wayland:

  • Pérdida de rendimiento: no es dramática pero si se nota bastante.
  • No puedes hacer capturas de pantallas o snapshots, un problema si haces manuales o quieres enseñar algo.
  • La consola gráfica no la puedes agrandar o disminuir con la combinación de teclas CTRL + y CTRL -
    Tienes que hacerlo mediante el menú de la ventana.
  • No puedes cambiar las aplicaciones de la Barra de Aplicaciones en el panel de menús.
  • Si en una categoría tienes más aplicaciones de las que caben en la pantalla no podrás desplazarte para ver las que n aparecen.
  • Pasar contenidos con el portapapeles entre aplicaciones es la mayoría de las veces imposible.
  • Diversos problemas con KODI.

Las pruebas se han hecho en una Raspberry Pi 400, recuerda que los modelos antiguos como mi Raspberry Pi 2 solo funciona Raspberry Pi OS 32 bits legacy

Sobre las supuestas ventajas... dicen que esta versión tiene problemas de tearing con X11, no lo he experimentado en mi Raspberry pi 400.

En un próximo artículo explicaré como volver a X11 y evitar todos estos inconvenientes.

sábado, 21 de septiembre de 2024

¿Fragmentación? ¡NO! LIBERTAD

Lo que mucha gente llama "fragmentación" es la esencia del software libre, si no todos tendríamos que tragar snap o gnome por ejemplo, algo que no nos gusta a los que queremos optimizar nuestra inversión de hardware ni los problemas de integración que traen esas nuevas paqueterías.

De todas formas se hace bastante drama de este "problema" ya que precisamente un novato escribe el nombre del programa en la aplicación de instalación que trae la distro y le da a instalar, poco le afecta lo que haga "por debajo".

En fin, que hay gente que no entiende bien el concepto de libertad o bien les da miedo tener que tomar sus propias decisiones, ¡con lo fácil que es que otros lo hagan por tí!

 


¡Feliz Día del Software Libre!

viernes, 13 de septiembre de 2024

Las señales del pingüino asesino

Los más avanzados en GNU/Linux ya habéis imaginado que de lo que voy a hablar es del comando kill, mediante el cual podemos mandar mensajes a los diversos procesos que se están ejecutando en nuestro sistema.

Lo primero es identificar el proceso al que vamos a mandar una señal, para ello ejecutamos el comando

ps aux

Pero si lo ejecutamos así nos vamos a peder entre todos los procesos, imaginemos que queremos interactuar en algún programa, por ejemplo, kodi, pa

usuario      180914  0.0  0.0   2608  1700 ?        S    01:29   0:00 /bin/sh /usr/bin/kodi
usuario      180924 81.5  3.9 3016212 316192 ?      SLl  01:29   0:08 /usr/lib/x86_64-linux-gnu/kodi/kodi-x11
usuario      181112  0.0  0.0  11528   720 pts/0    S+   01:29   0:00 grep --color=auto kodi

En la segunda columna aparece el número de proceso, sobre la que podemos interactuar con la siguiente sintaxis.

kill -numeroonombredeseñal numerodeproceso 

El número o nombre de señal es opcional y por defecto es 15 que significa que queremos que se cierre ordenadamente, podría ser uno de estos dos comandos si queremos interactuar sobre el primer proceso de kodi:

kill  180914

ó

kill -15 180914

Supongamos que no se cierra, entonces tendríamos que mandar la señal del cerrado forzado:

kill -9 180914

Pero a pesar del nombre del comando no solo sirve para matar procesos, también los podemos cosas poner en pausa y reanudarlos a continuación, por ejemplo, supongamos un proceso de reproducción de un audio con VLC, lo primero es averiguar el primer número de proceso con el comando:

ps aux | grep -i vlc

usuario      189886  6.2  1.0 1704216 86284 ?       Sl   01:45   0:02 /usr/bin/vlc --started-from-file /home/usuario/audio.mp3
usuario      190291  0.0  0.0  11528   716 pts/1    S+   01:45   0:00 grep --color=auto -i vlc

Pausamos con el comando:

kill -STOP 189886

Seguiríamos haciendo nuestras cosas y ya no nos acordaríamos el número del proceso que está detenido algo que podemos saber simplemente tecleando:

jobs

Y para reanudarlo simplemente ejecutamos:

kill -CONT 189886

Podemos obtener el listado completo de señales disponibles con el comando:

kill -l


Fuentes:

viernes, 6 de septiembre de 2024

Ampliando RetroMultiInstaller: carpetas principales (II)

Los próximos primeros viernes de cada mes voy a retomar el análisis de la herramienta que creé para agrupar todos los scripts de instalación que tengo y seleccionarlo con un sencillo menú.

Así cada uno podrá adaptar RetroMultiInstaller a sus necesidades.

Aunque en el anterior artículo ya comenté algo de la estructura interna del programa, en este voy a explicar los directorios esenciales que cuelgan de la carpeta donde descomprimos RMI.

En el directorio donde copiamos Multi-installer hay una serie de directorios que contienen otros directorios y archivos.
La estructura de directorios es la siguiente:

├── commonscripts
├── installers
├── menus
├── shotcuts
│   ├── etc
│   │   └── xdg
│   │       └── menus
│   │           └── applications-merged
│   ├── opt
│   └── usr
│       └── share
│           ├── applications
│           ├── desktop-directories
│           └── pixmaps
└── resources
└── warning
└──tmp

Analizando cada directorio con más detalle:

  • commonscripts: aquí se incluyen todos los scripts de uso común y que llamaremos desde otros scripts.
  • installers: aquí se incluyen los script de instalación, uno por cada programa.
  • menus: son los archivos txt que contienen la definición de los menús.
    Cada archivo tiene la definición de un menú y cada línea de cada menú la definición de un programa a instalar o una categoría que abre un nuevo menú.
  • shotcuts: incluye todos los archivos para crear los accesos directos con sus iconos y las categorías especiales para agruparlos.
    Dentro de este directorio hay una estructura de subdirectorios igual que donde se van a copiar los archivos en el sistema operativo.
  • warning: incluye los archivos de texto con instrucciones u otra información que se mostrará al terminar la instalación del programa.
  • tmp: carpeta donde se crearán los archivos temporales para las instalaciones tales como el código fuente antes de compilar e instalar.

Casi todos los scripts se ejecutarán desde esta carpeta, por lo que siempre deberemos referirnos a ellos con una ruta relativa que parte de esta carpeta.
Todos los archivos que contienen las carpetas installers, menus, shotcuts y warning correspondientes a un programa a instalar, contienen al principio de su nombre la etiqueta que identifica ese programa en minúsculas.

viernes, 30 de agosto de 2024

Una mesa, dos ordenadores de 8 bits

Los aficionados al retro tenemos un eterno problema: el espacio. 

Si tenemos por ejemplo, un Amstrad, un ZX Spectrum y un Commodore y queremos tenerlos siempre montados y operativos necesitaríamos 3 mesas pero, ¿podriamos poner 2 en una sola mesa de manera que los tengamos listos para su disfrute? Pues sí. 


Como veis he conseguido poner mi ZX Spectrum +2 y mi Commodore 64 en una sola mesa con la posibilidad de dejarlos debajo de los monitores cuando no los use y poder aprovechar ese espacio para hacer otra cosa.

 

Para conseguirlo, me he valido de las mesas de ordenador que ya tengo, en concreto de la auxiliar que tengo junto a la que uso para el PC, que es la que usé hace unos días para cambiar la goma del Amstrad.
 
He aprovechado una repisa que tenía del mismo color vengué a la que le he puesto 4 patas de armario de 15 cms de altura así puedo guardar debajo los dos ordenadores cuando no los use y aprovechar ese espacio para otros usos.

Las patas me han salido mucho más baratas en una ferretería local que los precio que he visto por internet que me parecen demasiado subidos.

Hasta en los proyectos más sencillos hay cosas que hay que tener en cuenta, como veis he puesto el ZX Spectrum a la izquierda y el Commodore 64 a la derecha, antes lo había puesto al revés y lo tuve que desmontar, el motivo era donde lleva cada uno el puerto de joystick, el Commodore a la derecha y el ZX Spectrum a la izquierda, de la forma inicial chocarían los conectores y como queda ahora cada uno está a un lado.

Otra cosa que he tenido que cambiar es la regleta por otra especial con interruptores para cada enchufe, ya que la idea es dejarlo todo enchufado pero desconectados cuando no se use, aparte de que el ZX Spectrum +2 NO tiene interruptor de corriente, por lo que con una regleta normal permanecería encendido cuando esté usando del Commodore, a no se que desconecte la clavija o el enchufe, algo incómodo que no quiero hacer.

La solución es una nueva regleta con interruptores independientes para cada enchufe:


Acerca de los monitores, mi idea inicial era poner uno solo para los dos pero tenía dos problemas:

  • Si usaba solo el monitor Amstrad CTM-644 no podría conectar el Commodore 64 que no admite conexión por RGB, a no ser que le hiciera una modificación a un viejo sintonizador analógico para sacarle una entrada RCA, a lo mejor en un futuro.
    Hay que acordarse que el ZX Spectrum NO tiene altavoces y el sonido lo saca de la tele o del conector de audio y este monitor no lleva tampoco altavoces, por lo que, o le pongo unos de PC, o lo conecto al cercano equipo de música o uso cascos.
  • Si uso solo el televisor podía conectar los dos, pero podría tener algún problema con el ZX Spectrum para conseguir la misma calidad que con mi CTM-644, es algo que también probaré más adelante.

 

Bueno, ahora por fin voy a poder disfrutar de estos dos equipos siempre listos para su uso cuando tenga ganas de echar unas partidas o algo de cacharreo.

viernes, 23 de agosto de 2024

Free Basic Compiler: compilar programas Basic en GNU/Linux

Free Basic es un compilador de Basic para GNU/Linux bastante compatible con los clásicos intérpretes Basic de MS-DOS.

Instalación

  1. Instalar los paquetes necesarios para que funcione:
    sudo apt install build-essential gcc libncurses5-dev libffi-dev libgl1-mesa-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxpm-dev libtinfo5 libgpm-dev
    utilindex="freebasic"
  2. Descargar la última versión para tu sistema operativo, en nuestro caso GNU/Linux.
  3. Descomprimir en una carpeta y entrar en esa carpeta.
  4. Instalar con el script de instalación que incluye:
    sudo ./install.sh -i
  5. Si se desea se puede desinstalar con el comando:
    sudo ./install.sh -r


Uso

Para compilar un programa:

fbc programa.bas

En este ejemplo, se generará un binario de nombre 'programa'. 

Por cierto, los binarios generados son más pequeños que los creados por QB64, aunque por contra no tenemos una GUI.


Puedes consultar más las opciones del compilador con el comando:

man fbc

En un futuro artículo veremos como adaptar código de Microsoft Basic, GWBasic, QuickBasic, etc... para ser compilado con FreeBasic.
 

Páginas de interés


viernes, 16 de agosto de 2024

Cambiar la goma de la disquetera de mi Amstrad CPC6128, la primera vez

Mi Amstrad CPC6128 me lleva acompañando desde 1989 y, salvo una cara "avería" que tuvo la disquetera en 1993, la goma de la disquetera no se ha cambiado una operación de mantenimiento que llevaba postergando desde entonces hasta que ha dejado de funcionar.

Antes de hacer esta operación, que no había hecho antes y me imponía respeto a pesar de haber reparado varios PC a lo largo de los años, me he estado documentando con manuales y diversos videotutoriales cuyos enlaces he puesto al final del artículo. Si vais ha hacer esto os diré que verlos no es una recomendación, es completamente obligatorio para tener éxito y no liarla parda.

Vamos a ver los pasos que he seguido, tened en cuenta que hay que seguir un orden riguroso para no dejarse nada atrás ni romper nada más. No es la manera más ortodoxa y he ido al grano, es decir, no he desarmado otros elementos para limpiarlos por ejemplo. He tratado de desconectar lo mínimo posible siguiendo la máxima: "si funciona NO lo toques". 

 

Paso 1: Preparar la zona de trabajo

Teniendo en cuenta que el Amstrad CPC6128 se va abrir con un libro, lo ideal es una mesa que pueda albergar el doble de la longitud del Amstrad, en mi caso tengo dos mesas de IKEA que previamente he regulado para que estén exactamente a la misma altura y sea como si fuera una sola muy larga.


Paso 2: Abrir el Amstrad

Damos la vuelta al ordenador y empezamos quitando los tornillos de la parte trasera, son unos 6 tornillos de longitud media y uno algo más grande a la altura de los conectores de vídeo o energía.

 


En mi caso tenía la pegatina del servicio técnico tapando el tornillo grande, algo común en los SAT para limpiarse las manos si alguien hace alguna reparación posterior. 


A continuación retiramos los dos tornillos del lateral de la disquetera.


Es importante tener controlados todos los tornillos que vayamos quitando para luego saber ponerlos en el sitio y momento correspondientes.

Volvemos a dar la vuelta al ordenador para ponerlo otra vez en posición normal y con mucho cuidado vamos separando la parte de arriba de la de abajo, una vez liberado HAY QUE ABRIRLO COMO UN LIBRO, si lo hacemos al revés y forzamos nos cargaríamos los conectores del teclado entre otros.



Paso 3: Extraer la disquetera del ordenador

Hay que hacer dos cosas:

Retirar los dos tornillos que la siguen sujetando a la carcasa, observa que uno de ellos está conectado a un cable de tierra a la placa base, luego hay que dejarlo igual.


Retirar los cables de alimentación y datos, con cuidado de no dañarlos y apuntando como estaban conectados, lo mejor es hacer una fotografía con detalle.

 


También hay que retirar la chapa metálica de sujeción para acceder al interior de la disquetera. 


Paso 4: Acceder a la goma

Esta es la operación más delicada y donde hay más cosas donde liarla.

Retiramos el frontal desatornillando los dos tornillos que la sujetan y tirando hacia afuera con sumo cuidado de no dañar las pestañas.

 


Hay que tener en cuenta cuando la volvamos a poner que el plástico de la parte inferior debe quedar por debajo de la placa inferior de la disquetera.

 

Como es muy común perder el clavito que detecta si un disquete tiene protección de escritura o no, se pueden hacer dos cosas para prevenir esta contingencia:

  • Fijarlo momentáneamente con cinta de carretero.
  • Dejar un disquete dentro. Ésta es la opción que he usado yo.


 

Si al final terminamos perdiendo el clavito, consulta los enlaces del final para ver el vídeo y el artículo en el que se explica como solucionar este problema.

Ahora retiramos los tres tornillitos de la placa inferior de la disquetera, pero que todavía no vamos a retirar porque nos vamos a encontrar más cosas que hay que quitar para no romper nada.

Disquetera de 3", detalle placa inferior
Disquetera de 3", detalle placa inferior (sacada del artículo de AUA: Reparación de disquetera: disc is write protected)

 

También hay que quitar los conectores de los motores, que, en mi disquetera están a los lados.




Finalmente hay que retirar un sensor que hay que dejar exactamente en la misma posición para no tener errores de funcionamiento en la unidad.


Para volver a ponerlo igual hay que señalar con un rotulador indeleble su posición, aunque yo en lugar de retirarlo he quitado el cable del pasador para tener holgura para retirar un poco la placa de abajo, lo suficiente para acceder a la goma, por si muevo el sensor accidentalmente marco igualmente con indeleble su posición.


De esta manera es un poco más incómodo acceder a la goma y sobre todo limpiar los restos de goma si se hubiera deshecho, afortunadamente la mía está entera aunque algo dada de sí.


Con unas pinzas consigo retirar la goma vieja y sustituirla por la nueva, me aseguro que los rodillos funcionan moviendo uno y viendo como se mueve el otro.


Paso 5: Volver a cerrarlo y conectarlo todo

Ahora tenemos que ir cerrando todo y volver a conectar lo que hemos desconectado en el orden inverso, lista de tareas:

  1. Cerrar la disquetera.
  2. Poner el cable del sensor por el pasador.
  3. Conectar los dos motores.
  4. Atornillar la placa inferior de la disquetera. 
  5. Sacar el disquete.
  6. Volver a poner el frontal en su sitio exacto, de manera que la parte más inferior del frontal quede por debajo la placa inferior.
  7. Colocar la placa de sujección a la izquierda de la disquetera.
  8. Colocar la disquetera en su sitio en la carcasa del CPC.
  9. Conectar los cables de alimentación y datos.
  10. Atornillar la disquetera a la carcasa con sus dos tornillos.
  11. Cerrar el CPC como cerraríamos un libro.
  12. Poner los tornillos inferiores de la carcasa y los dos que sujetan la disquetera por su lateral derecho.


Paso 6: Pruebas finales

Una vez cerrado todo toca cruzar los dedos y ver que funciona todo correctamente:

  1. Encendemos el Amstrad y vemos que sigue arrancando correctamente.
  2. Introducimos algunos disquetes y vemos que carga los juegos y programas con normalidad.
  3. Probamos con algún disquete que tenga espacio libre y guardamos el típico programa BASIC del "Hola mundo", si lo hace con normalidad hemos terminado las pruebas con éxito. ¡ENHORABUENA!


Si tienes algún problema con algún disquete comprueba que las revoluciones de tu disquetera son las correctas.

 

Videotutoriales y otros manuales

A continuación pongo los enlaces de donde he sacado información para completar este mantenimiento, en orden de utilidad para la tarea:


Muchas gracias a los compañeros de los foros y grupos de Telegram que me han dado consejos de como proceder y en especial al sr. Rosa que incluso se ha ofrecido para ayudarme a cambiarla y que tenía en la recámara por si la cosa no salía como esperaba.