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.

viernes, 9 de agosto de 2024

El efecto chico nuevo

 El efecto chico nuevo lo podría definir así:

"Si en un sistema introducimos un elemento nuevo, cualquier cosa que falle o pensemos que haya fallado solo pensaremos que la culpa es del elemento nuevo".

Es un efecto que pasa en prácticamente todos los ámbitos de la vida, fruto del desconocimiento y de la ignorancia de algo que no conocemos.

Me voy a central en mis experiencias en el mundo de la informática, veremos que ha creado hasta leyendas negras.

Primeros 80: el ordenador ha roto la tele

Los que tenemos añitos suficientes para haber visto el inicio de la informática de consumo en España recordaremos el pavor que tenían nuestros padres a que se rompiera la tele por enchufarle un ordenador.

En aquellos años, las familias solían tener solo un televisor y que se estropeara era un palo económico fuerte, conectar esa caja extraña les hacía pensar que iba a terminar mal.

Supongo que en algún caso daría la casualidad que la tele se rompería estando conectado al ordenador, no por estar conectada sino porque le tocaba, de hecho, la única vez que he visto que un televisor enchufado a un ordenador de entonces explotará ocurrió en el aula del EATP de Informática de mi instituto, después de meses enchufada a un Vic-20.

Los televisores eran donaciones de padres de viejos televisores de várvulas que tendían a romperse con facilidad e incluso incendiarse sin necesidad de tener ningún ordenador enchufado.


¡Ha sido el pingüino!

Los que usamos GNU/Linux muchas veces hemos escuchado historias de gente que se le ha estropeado el ordenador después de instalar el sistema operativo, es decir, se le ha roto el hardware por instalar un software.

La leyenda de las lonchas de queso

Había una leyenda parecida a la de los 8 bits mata-teles, gente que creía que los discos tenían capas como las lonchas de queso y cada vez que formateabas perdías una, cuando se acaban te quedabas sin disco duro. Absurdo, pero había gente que se lo creía.

Rabitos de pasa

Hablando de algo más tangible, un amigo nuestro que había instalado un dual boot decía que se le corrompía todo el disco duro después de instalar una distribución de GNU/Linux, siempre se lo dejaba funcionando y a los dos días le pasaba lo mismo.

Al final le instalamos solo Windows 10 y a los dos días también se le fastidió, tirando del hilo y reproduciendo todo lo que hacía encontramos al culpable, un viejo juego de Windows ORIGINAL EN CD-ROM se cargaba el secure boot con sus protecciones o accesos a bajo nivel, se llevaba todos los sistemas por delante. Se trataba del juego Príncipe de Persia las Dos Coronas... para Windows.

Lo que no nos contó es que después de instalar GNU/Linux instalaba el juego en Windows.

Echar la culpa al software de un fallo de hardware

Otro amigo le daba un kernel panic al arrancar y decía que el Windows le iba bien.

Como experimento le instalé un juego que requería muchos recursos de memoria y nada más arrancarlo pantallazo azul.

Tenía un módulo de memoria en mal estado.

 

¿Has cambiado el color del sitio? ¡para que tocas!

Si habéis desarrollado sitios web ya sabéis que cualquier cambio hace que los usuarios no encuentren nada y crean que todo está roto.

El caso más surrealista que me he encontrado fue cambiar el color del fondo de una cabecera de verde manzana a azul marino, solo tocar una línea de css que cambiaba el valor del color.

Inmediatamente, muchos usuarios decían que no le funcionaba nada ni eran capaces de encontrar lo que usaban habitualmente.

 

Si tienes más historias del chico nuevo dejalas en los comentarios ;-)


viernes, 2 de agosto de 2024

Haciendo un stopmotion (I): las fotos

Este es el primero de los artículos sobre como hacer stopmotion y como no podía ser de otra forma el primer paso es obtener las fotos que van a hacer de fotogramas de la manera correcta para hacer nuestra vídeo o gif posteriormente.


En todos los casos debemos prestar especial atención en que no se mueva la cámara, para lo cual tendremos que usar algún método para tomar las fotos sin tocarla y que las fotos estén en una carpeta diferenciada por proyecto y ordenada en orden a como se tomaron.

Voy a proponer diversos escenarios de más simple a más profesional, en función de nuestros medios y de lo que necesitemos obtener.

Usar la webcam con trípode

Éste es el método que voy a utilizar porque es lo que tengo a mano y es la manera más fácil de obtener un resultado aunque no sea el más óptimo que podemos obtener.

Para el ejemplo voy a poner dos vehículos de TENTE que van a simular un adelantamiento, para ello coloco la cámara a cierta distancia de los objetos y voy haciendo fotos con un programa, en mi caso cheese, entre foto y foto voy moviendo ligeramente uno o dos de los vehículos, cuando más leve sea ese movimiento obtendré una animación más creíble, aunque lógicamente harán falta más fotos y el resultado pesará más, pero bien merece la pena pues es algo que es crucial para la calidad del resultado.

Estaremos limitados por la longitud del cable de la webcam y las condiciones de luminosidad de la estancia.


Usar el móvil con trípode

Haríamos lo mismo que en el caso anterior y usando los mismos programas.

Necesitaríamos un trípode especial para móviles o incluso un palo selfie siempre que consigamos que el peso del móvil no haga que termine moviéndose.

Para hacer las fotos sin tocar el dispositivo podemos usar un pulsador por bluetooth como los que acompañan a muchos palos selfie o mediante un programa que permita manejar el móvil remotamente, por ejemplo con un ordenador.

Así podríamos hacer escenas de exterior y con mejores condiciones de luminosidad, aunque si queremos resultados profesionales tendremos que...

Usar una cámara profesional

Esta es la opción de más calidad pero también tendrá más complejidad porque probablemente requiramos hacer preprocesado a las fotos lo que nos va a consumir mucho tiempo o al menos más tiempo de procesamiento por el peso de las imágenes y requeriremos más recursos de espacio y procesamiento.

Los medios que necesitaremos también van a ser mucho más caros y específicos para la tarea, no estaremos reutilizando algo que ya tenemos como en los casos anteriores.


Usemos el método que usemos ahora hay que unir todas esas fotos para hacer una secuencia, ya sea un GIF animado o un vídeo al que incluso le podemos añadir una banda sonora o una locución.

viernes, 26 de julio de 2024

Controlar la temperatura de tu PC

Para controlar la temperatura de los componentes de tu PC hay varios comandos, vamos a ver algunos:

sensors

Este comando de consola te muestra información de todos los sensores de temperatura que tiene tu ordenador, para ello hay que instalar el paquete lm-sensors que está en los repositorios oficiales de tu distro, en el caso de Debian y derivadas se puede instalar con el comando:

sudo apt install lm-sensors

Este comando muestra información desde consola del momento exacto en el que se ejecuta el comando:

sensors

Si se quiere monitorizar en tiempo real podemos abrir otra consola en nuestro monitor secundario y ejecutar:

watch sensors

Lógicamente tendremos que haber instalado watch previamente.


xmbmon y mbmon

Otro programa para monitorizar temperaturas y voltajes, desde consola con mbmon o entorno gráfico con su front-end xmbmon

No funciona con todas las placas.

viernes, 19 de julio de 2024

JavaCPC Paint: convertir imágenes a CPC con la suite de emulación JavaCPC

JavaCPC es una suite de emulación o más bien un conjunto de herramientas para crear cosas para Amstrad CPC que incluye un emulador y del que ya hablamos con anterioridad.

Cuando lo iniciamos nos arranca un nuevo escritorio sobre el nuestro en el que lo primero que aparece es un emulador.

 

A la izquierda del emulador vemos gran cantidad de programas para diversos propósitos, hoy nos vamos a fijar en JavaCPC Paint, una utilidad que permite importar imágenes del PC al CPC cargándolas directamente en el emulador.

Es compatible con el programa OCP-Art-Studio.

Empezamos creando un disco nuevo con el que trabajaremos, para ello nos vamos a las opciones de menú:

File > Unidades > DS0 > Crear DSK

Elegimos el formato DATA de 40 pistas que es el estándar.


 

A continuación abrimos JavaCPC Paint haciendo doble clic en el icono.


Elegimos si queremos usar una imagen Normal u Overscan (sin bordes). Nosotros vamos a elegir Normal.

 

Cargamos una imagen.


Una vez cargada podemos cambiar entre mode 0, 1 y 2 quedarnos con la imagen que más nos guste.

 


Podéis ver que en la barra de iconos tenemos diversas herramientas para modificar la imagen, como relleno, líneas, dibujar figuras, poner textos, etc...

En el emulador del entorno también se muestra la imagen cargada.

Si guardamos la misma con el botón TO DSK se guardará la imagen convertida al DSK que antes hemos creado o cargado con el nombre que le pongamos, que debe tener menos de 8 caracteres.

 

Al guardarlo se generarán dos archivos con la imagen y la paleta, de manera que si le hemos puesto a la imagen de nombre SCREEN, tendremos los archivos SCREEN.SCR y SCREEN.PAL

Llegados a este punto si queremos seguir trabajando con el emulador lo recomendable es salir y entrar de JavaCPC para evitar que algunas teclas sigan siendo atajos de teclado de JavaCPC Paint (no vale solo con reiniciar el emulador).

Para poder cargar esa imagen en el emulador, o en un CPC real tendríamos que hacer un cargador BASIC con el siguiente código:

10 MODE 0
20 LOAD "!SCREEN.SCR", &C000
30 CALL &C7D0
40 GOTO 40

Comentando rápidamente las líneas:

  1. Definimos el modo con el que hemos guardado la imagen, en nuestro ejemplo MODE 0.
  2. Cargarmos la imagen como binario a partir de la dirección &C000, ponemos una admiración al principio del nombre para que, en caso de estar cargando desde cinta no aparezcan mensajes de carga que estropeen la imagen. Si se carga de disco no tiene ningún efecto, pero hemos definido un nombre de 8 caracteres o menos para que se pueda grabar también en este medio con el mismo código.
  3. La imagen incluye un trozo de código fuente en la dirección &C7D0 para cargar la paleta con la propia imagen, se invoca con el comando CALL.
  4. Llamamos a la propia línea para que la imagen se siga viendo sin romper hasta que hagamos doble pulsación de la tecla ESC.

 A continuación salvamos el código BASIC con el comando:

SAVE "SCREEN.BAS"

Podemos repetir esta operación varias veces con el mismo DSK mientras tenga espacio, es decir, tenga libre al menos 19 o 20K.

 


Los archivo BAK los podemos borrar para ahorrar más espacio, recuerda que el comando es:

|ERA, "*.BAK"


JavaCPC te lo puedes instalar automáticamente con script Retro Muti Installer si usas una distribución GNU/Linux de la familia Debian o bien descargártelo e instalarlo manualmente desde la página oficial del proyecto si usas otro sistema.

https://sourceforge.net/projects/javacpc/