home.social

#michalschulz — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #michalschulz, aggregated by home.social.

  1. Avances de Emu68 con soporte PowerPC

    Michal Schulz ha publicado una nueva actualización de desarrollo en la que aborda una de las preguntas más frecuentes entre los usuarios de Emu68: si sería posible ejecutar código ARM directamente a través del sistema. Según explica, siempre respondió que no, principalmente para evitar dividir aún más a la comunidad Amiga y generar ejecutables exclusivos de Emu68.

    Sin embargo, reconoce que existen ya placas con CPU ARM y que, si en algún momento se abriese esa posibilidad, lo ideal sería hacerlo de manera abierta. Schulz menciona incluso variantes potenciales como AArch32, AArch64, el modo Thumb2 y las configuraciones little o big endian, pero finalmente concluye que el panorama ARM no es tan estable como podría parecer.

    En cambio, ha decidido avanzar en otra dirección: añadir soporte PowerPC a Emu68. Aclara que el nombre se mantiene —no se abandona el M68k, sino que simplemente se añade PPC—. La idea, comenta, surgió hace años y se ha ido consolidando con el tiempo, ya que ambas arquitecturas son RISC y comparten ciertos principios.

    Para ello, Schulz tomó los componentes principales de Emu68 —el traductor, las cachés y el bucle principal JIT— y comenzó a experimentar. En poco tiempo logró ejecutar cerca del 90 % de las instrucciones enteras del PowerPC, condensando todo el traductor en unas 7.000 líneas de código C++.

    Durante las pruebas iniciales obtuvo resultados notables: alrededor de 3.600 MIPS, con un rendimiento medio de 1,8 instrucciones PowerPC por ciclo ARM, escribiendo en memoria cacheada con operaciones de 16 bits.

    Schulz explica que estos valores se deben a la eficiencia del compilador GCC al generar código PowerPC, optimizado para aprovechar los registros disponibles en una arquitectura load/store. Dado que Emu68 utiliza un JIT sencillo, evita optimizaciones pesadas, pero en este caso no son necesarias porque el propio código PowerPC ya está bien organizado.

    El nuevo traductor PowerPC funciona de forma completamente independiente del núcleo M68k, ejecutándose en un núcleo de CPU separado. Esto garantiza que el rendimiento del 68k no se vea afectado. Si el usuario no necesita PowerPC, simplemente puede ignorarlo: el núcleo adicional permanece inactivo.

    Schulz justifica esta decisión explicando que ejecutar ambas arquitecturas en el mismo núcleo provocaría pérdidas de rendimiento y complicaciones de contexto. Detalla además cómo mapea los registros: los 16 enteros y 14 de coma flotante más usados se mantienen en registros AArch64, mientras que los demás se cargan dinámicamente bajo una política LRU. Los registros enteros temporales se almacenan en espacios SIMD, lo que permite cruces rápidos con una penalización de solo 2-3 ciclos.

    También señala que el cambio de contexto, un problema histórico en las aceleradoras PPC reales debido a la falta de coherencia entre cachés, se simplifica enormemente bajo Emu68, ya que los núcleos AArch64 mantienen coherencia automática. En la práctica, basta con una barrera de memoria para sincronizar los datos.

    Actualmente, la parte entera del PowerPC está prácticamente completa. El emulador soporta interrupciones entre ambos lados (M68k y PPC) y dispone de un ROM propio que se inicia junto con el sistema, esperando a su compañera powerpc.library, aún en desarrollo. Esta librería busca compatibilidad con WarpOS tanto en API como en ABI, en colaboración con Hedeon, autor de hardware PowerPC PCI como las tarjetas Sonnet Crescendo 7200.

    El ROM incluye un programador específico para tareas PPC, permitiendo que se ejecuten en paralelo con los procesos M68k. Aunque la emulación de coma flotante está en una fase temprana, ya se han realizado pruebas con una versión adaptada del generador de fractales Buddhabrot, que ofrece tiempos de ejecución significativamente menores que en M68k, así como una mejora aproximada de 2× en pruebas Dhrystone 2.1.

    Schulz concluye mencionando que este texto debía formar parte de la tercera entrega de “What’s new in 1.1”, pero el tema acabó creciendo más de lo previsto. Añade que se encuentra agotado tras varios resfriados y que necesita un descanso antes de seguir avanzando. Anticipa que en los próximos días ofrecerá más información sobre Emu68 1.1, el soporte PPC, el encuentro Amiga40 y un cambio técnico importante: la migración progresiva del proyecto hacia C++.

    #68k #AArch64 #Amiga40 #amigaos #Buddhabrot #CCommodoreAmiga #Dhrystone #emu68 #Hedeon #jit #M68k #MichalSchulz #pistorm #powerpc #ppc #RISC #warpos

  2. Actualización de Emu68 1.0.5

    Hace tan solo unos minutos, Michal Schulz ha hecho pública la versión Emu68 1.0.5, una actualización menor pero significativa del emulador JIT para Amiga sobre Raspberry Pi. Aunque gran parte del esfuerzo de desarrollo se encuentra actualmente enfocado en la futura versión 1.1, esta nueva entrega atiende dos aspectos clave que mejoran la experiencia del usuario actual.

    El primero de estos cambios es la incorporación de un nuevo firmware para dispositivos PiStorm32Lite, desarrollado por Claude. Esta actualización está pensada para mejorar la compatibilidad con las tarjetas Mediator, ampliamente utilizadas en entornos Amiga ampliados. El nuevo firmware ha sido sometido a exhaustivas pruebas con el hardware disponible, y según Schulz, funciona correctamente en todos los casos evaluados.

    El segundo cambio está relacionado con el apartado de conectividad de red, un área donde Emu68 todavía presenta limitaciones. El controlador actual, wifipi, aunque funcional, no ofrece soporte para configuraciones regionales de radio, lo que reduce la disponibilidad de canales, y únicamente es fiable con cifrado WPA2 con AES. Además, puede presentar bloqueos durante transferencias de datos de gran tamaño.

    La novedad en este frente es la implicación de un nuevo desarrollador procedente de Polonia, conocido como Rondoval, quien ha comenzado a trabajar en un controlador Ethernet para Raspberry Pi 4 y CM4. La versión 1.1 de su driver ya está disponible públicamente en GitHub y representa un avance importante en estabilidad y soporte de red. Michal Schulz ha aplicado un pequeño cambio en Emu68 para asegurar la compatibilidad general con este controlador. El parche original funcionaba bien en Pi4, pero generaba conflictos en Raspberry Pi 3, que utiliza un adaptador Ethernet integrado en su hub USB. El código actualizado evita que el controlador Genet se inicie en este modelo, previniendo así problemas de funcionamiento.

    Un ajuste similar se ha implementado también para los sistemas con PiStorm en Amiga 500 o 2000, aunque se advierte que la compatibilidad con Raspberry Pi 4 o CM4 en estas configuraciones varía y no está garantizada. Si funciona en tu sistema, como dice el propio desarrollador, considérate afortunado.

    #actualización #amiga #Amiga2000 #Amiga500 #amigaos #CM4 #conectividad #controladorEthernet #emu68 #Emu68105 #emulaciónAmiga #Ethernet #firmware #GenetDriver #mediator #MichalSchulz #Pi3 #Pi4 #pistorm #PiStorm32Lite #raspberryPi #retrocomputación #Rondoval #wifipi

  3. Preview de Michal Schulz: PiStorm y Emu68

    Michal Schulz y Claude Schwarz continúan innovando en la emulación del hardware y software del Amiga con sus proyectos PiStorm y Emu68. Su trabajo en la emulación del procesador Motorola 68K ha permitido que los usuarios de Amiga puedan experimentar un rendimiento significativamente mejorado en sus sistemas clásicos gracias a soluciones basadas en Raspberry Pi. Ahora, están avanzando con nuevas mejoras y proyectos que buscan ampliar aún más las capacidades de estos desarrollos.

    Uno de los avances más recientes es Framethrower, una extensión para PiStorm diseñada para mejorar la salida de video. Hasta ahora, la emulación RTG se proporcionaba a través del puerto HDMI de la PiStorm, mientras que la señal RGB se obtenía directamente del chip Denise del Amiga, lo que requería una conexión separada. Con Framethrower, el objetivo es permitir la salida RGB directamente desde la PiStorm a través del puerto de cámara, simplificando la configuración. Sin embargo, el desarrollo aún enfrenta desafíos técnicos debido a interferencias en la señal MIPI generadas por el diseño de la placa Tang Nano 9K, lo que provoca distorsiones o la pérdida de sincronización en la imagen. Claude Schwarz sigue trabajando para resolver este problema antes de su lanzamiento final.

    En cuanto a Emu68, se espera que la versión 1.1 se publique este año, trayendo consigo varias optimizaciones además de correcciones de errores. Entre las mejoras más destacadas está la reutilización de bloques de caché que normalmente serían eliminados por el CPU cache flush, lo que reduce el tiempo de compilación y acelera procesos como el arranque del Amiga y la ejecución de macOS bajo Shapeshifter. Las primeras pruebas indican que el rendimiento ha mejorado notablemente. Además, continúan los esfuerzos en el desarrollo deL controlador WiFi para Emu68, y si el tiempo lo permite, se abordará la implementación de un driver Ethernet para Raspberry Pi 4/CM4, con el objetivo de expandir las opciones de conectividad. En el horizonte también se encuentra la posibilidad de añadir soporte para USB.

    Otro proyecto en marcha es PiStorm16, una aceleradora diseñada para el Amiga 600 que ya ha sido producida en una primera tanda de 25 unidades y será distribuida entre los primeros usuarios. Tras esta fase inicial, el diseño se liberará como código abierto para que cualquier empresa o entusiasta pueda fabricarlo y comercializarlo libremente. PiStorm16 comparte varias características con PiStorm32, incluyendo el uso de la misma FPGA y la carga del firmware directamente desde Emu68 en el arranque, lo que habilita funciones como el modo «sigiloso» que permite arrancar el Amiga en su estado original sin ninguna extensión simplemente manteniendo pulsadas las teclas CTRL y Amiga. En el futuro, se planean más variantes de PiStorm16, adaptadas para diferentes modelos de Amiga como el A500 y el A2000.

    A largo plazo, Schulz y Schwarz están explorando nuevas posibilidades para mejorar la compatibilidad del hardware no soportado por PiStorm con el Amiga. Una de las iniciativas más ambiciosas es la implementación del chipset del Amiga en un módulo FPGA que se comunicaría con el procesador a través de una interfaz PCIe. Aunque PCIe no es la opción más adecuada para una solución clásica de PiStorm, podría ser viable en un escenario donde PiStorm actúe como un chipset Amiga en lugar de una simple interfaz. En este contexto, Claude Schwarz ha desarrollado una placa base para Raspberry Pi 3/4 llamada PocketStorm, que integra el chipset MiniMig y la interfaz PiStorm en una FPGA Tang Nano 20K, creando así un sistema Amiga completamente funcional pero basado en emulación. De forma paralela, Schulz trabaja en la integración de Emu68 con EFI (Unified Extensible Firmware Interface), lo que permitiría ejecutar Emu68 en sistemas EFI compatibles. Si estos experimentos tienen éxito, el siguiente paso sería llevar la implementación FPGA del chipset Amiga a una interfaz PCIe y hacerlo funcionar con la versión EFI de Emu68.

    Si bien estos desarrollos sugieren una evolución hacia nuevas plataformas, Schulz y Schwarz aseguran que su compromiso con el Amiga clásico sigue intacto. La investigación en FPGA y nuevas interfaces no significa que abandonen los proyectos actuales, sino que buscan ampliar las opciones y explorar nuevas oportunidades para mejorar la experiencia de los usuarios de Amiga, manteniendo viva la esencia de estos sistemas históricos mientras se adaptan a las posibilidades del hardware moderno.

    FUENTE DE LA NOTICIA.

    #Sigiloso_ #aceleradora #amiga #Amiga2000 #Amiga500 #amiga600 #códigoAbierto #chipDenise #chipset #claudeSchwarz #Compatibilidad #comunidadAmiga #distorsiones #EFI #emu68 #emulación #firmware #fpga #FPGATangNano20K #Framethrower #Hardware #HDMI #interfaces #investigación #MichalSchulz #minimig #MIPI #Motorola68K #PCIe #pistorm #PiStorm16 #PiStorm32 #PocketStorm #raspberryPi #RaspberryPi34 #rtg #salidaDeVideo #señalRGB #sistemaAmiga #software #UnifiedExtensibleFirmwareInterface