πBacteria, emulador Bare Metal para la Raspberry Pi

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor antoniovillena » 21 Ene 2015, 22:04

radastan escribió:
antoniovillena escribió:De todas formas creo que está tardando el que alguien escriba un segundo emulador Bare Metal.


Hombre, ya hay uno de C64 en marcha, además de uno de Apple II.


Quería decir de Spectrum. En breve tendremos al Vega, que también será Bare Metal pero la máquina será ligeramente distinta a una Rasperry. Si alguien hace un emulador no oficial para Vega no creo que le cueste mucho trabajo portarlo a la Raspberry.

-- Actualizado 21 Ene 2015, 22:09 --

Haciendo offtopic. Quedan 9 días para que se acabe la campaña de crowfunding y de los 3000 que pusieron para reservar un Vega del segundo lote sólo hay 351. Aun así llevan recaudados un 142% que está bastante bien.

-- Actualizado 21 Ene 2015, 22:18 --

Me acabo de dar cuenta de que a comienzos de año lanzaron otra recompensa, esta vez de 25 libras, para entrar en la lista de prioridad de la segunda edición del ZX Vega. Y a esta segunda recompensa se han apuntado 524. Todavía quedan más de 2000 vacantes para la segunda edición.

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: Nintendo NES/Clónica
Ubicación: Córdoba-Jaén
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor radastan » 21 Ene 2015, 23:19

VEGA me parece una mierda inmensa. No tener un teclado completo me parece humillante, una estafa, y una broma de mal gusto.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor antoniovillena » 22 Ene 2015, 00:33

radastan escribió:VEGA me parece una mierda inmensa. No tener un teclado completo me parece humillante, una estafa, y una broma de mal gusto.


Pero es una mierda que se la va a comprar mucha gente. Yo no me la voy a comprar, pero creo que hay que tenerla en cuenta. Lo único que critico es la campaña de crowfunding, que podrían haberlo sacado por su cuenta (no creo que necesiten financiación).

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5314
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 46 veces
Contactar:

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor mcleod_ideafix » 22 Ene 2015, 01:04

radastan escribió:VEGA me parece una mierda inmensa. No tener un teclado completo me parece humillante, una estafa, y una broma de mal gusto.

Las formas y los precios de lanzamiento son muy discutibles, la verdad. En otros crowfundings lo que se hace es precisamente todo lo contrario: premiar la confianza del inversor proporcionándole el producto a un precio inferior al de mercado, o bien ofrecerlo con extras interesantes. Aquí desde el principio han dejado claro que 100 libras no es el precio final del aparato, sino que será menos. Y para colmo, para la segunda hornada no son 100 sino 150. Y aun así tiene gancho.

Pero por otra parte, los creadores de Vega ya han dicho que planean dotarlo de algún tipo de conexión que permita teclados completo. Lo más sencillo es usar el USB host que seguro tiene el SoC que están usando para implementar una conexión para teclado USB. Hay quien ha apuntado que el SoC admite stack de bluetooth.

Yo repito una frase que escuché en WOS al principio de todo esto: "Si el teclado bluetooth de Elite es el mejor proeycto en las peores manos, Vega es el peor proyecto en las mejores manos"
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor antoniovillena » 22 Ene 2015, 05:42

Y para más inri, como vieron que había poca gente que reservaba con 50 libras para la segunda hornada, hicieron una rebaja. Bajaron la recompensa a 25 libras. De nuevo pasa que los que se apuntan primero salen perdiendo. Como dices esto desmotiva a los inversores. Si el Vega resulta un éxito ellos tendrán un Vega que valdrá el 30% de lo que le costó. Sólo ganan si resulta un fracaso, pues tendrán un "producto sinclair" de los raros, que dentro de unos X años lo mismo lo venden por el doble.

ZX-81
Commodore 128
Commodore 128
Mensajes: 115
Registrado: 04 Ene 2013, 16:43
Sistema Favorito: Spectrum +2
primer_sistema: ZX81
consola_favorita: Nintendo DS/3DS
Primera consola: Sega Genesis/Megadrive
Ubicación: La orilla del mar Mediterráneo
Gracias dadas: 14 veces
Gracias recibidas: 23 veces
Contactar:

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor ZX-81 » 23 Ene 2015, 14:53

antoniovillena escribió:En breve tengo pendiente añadirle soporte Kempston bajo la placa tecleator y modelos plus. El teclado USB tendrá que esperar más pero también lo tengo entre mis planes.

De todas formas creo que está tardando el que alguien escriba un segundo emulador Bare Metal.


Yo estuve deshojando la margarita varios días porque hace tiempo que no hago nada grande en C/C++ desde cero y como manera de refrescar conocimientos me vendría bien. Pero después de pensarlo mucho me parece que una opción a medio camino sería un emulador para la RPI que esté escrito adrede para la PI, que no necesite X-Window y que use las librerías OpenGL-ES que hacen uso de la GPU. Dejando de lado que la opción de bare-metal escogida por Antonio es la mejor para aprender de verdad cómo funciona la PI y cómo se programa en ASM de los procesadores ARM, no veo claro que al final sea una opción óptima deshacerse por completo del S.O. para acabar teniendo que hacer funciones similares a uno. No sabéis lo que le costó al autor de las librerías Circle / uspi localizar y arreglar un problema con un teclado USB que en lugar de ir con USB 1.10 iba con 2.0. En las últimas versiones de Circle ha incluido soporte de algunas cosas más (que por cierto empieza a preocuparme porque desde fin de año que no ha añadido una sola línea a la librería). La librería tiene soporte del chip de red pero si quisieras comunicación estándar con el exterior necesitarías una mini-capa TCP/IP y eso ya son palabras mayores.

Y cuando tuvieras una librería de lo más completa lo que en realidad habrías desarrollado es un S.O. por módulos. Por eso, dejando aparte el tema educativo que buscado con piBacteria, creo que sería más práctico usar mejor la potencia de la PI usando la GPU en lo que se pueda (que es el verdadero demonio de la placa). La pega sería que de portable no tendría nada porque dependería de un montón de cosas de la PI.

Lamentablemente, ni siquiera logro sacar tiempo para publicar una actualización menor de JSpeccy, con que mucho menos para empezar desde cero otro emulador. Además, y de forma sorprendente, si miras en webs de empleo te das cuenta de que la mayoría de ofertas de trabajo se centran en Java y .NET, y solo muy de vez en cuando aparece alguna en la que piden C o C++. Es lo que hay. :(
Todo espacio de dimensión finita distinta de cero con producto interno tiene una base ortonormal. Tiene sentido, cuando no piensas sobre ello.
Profesor de Matemáticas U.C. Berkeley

Empieza a jugar sin tener que compilar: JSpeccy
Emulador bare-metal para la Raspberry PI 2/3: ZXBaremulator

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor antoniovillena » 23 Ene 2015, 15:34

Para eso puedes coger el código del Fuse y añadirle soporte de teclado y puerto EAR por el puerto GPIO con la librería wiringPi. O si quieres entretenerte más, también puedes programar el emulador desde cero.

Pero vamos que la ventaja del arranque inmediato no la tendrás nunca a no ser que te decidas por el Bare Metal. No veo cómo aprovechar la GPU en un emulador de spectrum. Otra cosa sería un emulador de PS1. Desde Bare Metal también puedes hacer eso incluso más: por ejemplo que la GPU se encargue ella solita de mostrar la pantalla leyendo directamente de la memoria de video del spectrum.

Y la depuración tampoco es mucho problema. Yo me apaño con un monitor por el puerto serie: uso un bootloader por el puerto serie para cargar los programas Bare Metal por ahí y no estar continuamente extrayendo la SD. Pero si te quedas corto también hay placas JTAG por menos de 10 euros que te permiten depurar paso a paso.

Y no estás obligado a hacerlo en ensamblador, puedes usar C u otros lenguajes.

ZX-81
Commodore 128
Commodore 128
Mensajes: 115
Registrado: 04 Ene 2013, 16:43
Sistema Favorito: Spectrum +2
primer_sistema: ZX81
consola_favorita: Nintendo DS/3DS
Primera consola: Sega Genesis/Megadrive
Ubicación: La orilla del mar Mediterráneo
Gracias dadas: 14 veces
Gracias recibidas: 23 veces
Contactar:

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor ZX-81 » 23 Ene 2015, 16:56

Si algún día llegara a hacer algo al respecto, sería desde cero. Lo del arranque inmediato sería importante en un producto como el Vega, pero en cualquier otro caso veo más problema en no tener un sistema operativo que ya te de muchos servicios hechos. No conozco en absoluto OpenGL-ES, pero al menos habría de usar el soporte mínimo necesario para poder dibujar en pantalla (¿y quizá para tener una imagen más pequeña y escalarla hasta donde haga falta?). Lo que pretendía decir con lo de usar la GPU era que al no tener X-Window hay que usar las APIs de la GPU sí o sí.

Tú tienes muy trillado eso de la depuración vía serie (con otra RPI, creo recordar) y los tejemanejes de la JTAG. Yo de eso no tengo ni idea. En cualquier caso, depurar así tampoco es precisamente fácil.

No había pensado en escribir nada en ensamblador, precisamente porque lo que pretendería es refrescar la práctica que se supone que tengo en C/C++. Pero visto lo visto, no parece que el mercado laboral solicite muchos expertos en esos lenguajes. Ha sido toda una sorpresa para mi, la verdad....
Todo espacio de dimensión finita distinta de cero con producto interno tiene una base ortonormal. Tiene sentido, cuando no piensas sobre ello.
Profesor de Matemáticas U.C. Berkeley

Empieza a jugar sin tener que compilar: JSpeccy
Emulador bare-metal para la Raspberry PI 2/3: ZXBaremulator

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor antoniovillena » 23 Ene 2015, 17:52

ZX-81 escribió:Si algún día llegara a hacer algo al respecto, sería desde cero. Lo del arranque inmediato sería importante en un producto como el Vega, pero en cualquier otro caso veo más problema en no tener un sistema operativo que ya te de muchos servicios hechos.


Ya pero ten en cuenta que emuladores que funcionen en Raspbian hay muchos y que funcionen sin SO (de spectrum) por ahora sólo el mío que es muy básico. Ten por seguro que alguien que meta una Raspberry Pi dentro de la carcasa de un gomas va a optar antes por una opción Bare Metal. Evidentemente programar en Bare Metal es más difícil.

ZX-81 escribió:No conozco en absoluto OpenGL-ES, pero al menos habría de usar el soporte mínimo necesario para poder dibujar en pantalla (¿y quizá para tener una imagen más pequeña y escalarla hasta donde haga falta?). Lo que pretendía decir con lo de usar la GPU era que al no tener X-Window hay que usar las APIs de la GPU sí o sí.


Pues no he usado OpenGL. Sólo hay que hacer un par de escrituras en los Mailboxes (es el mecanismo para comunicarse con la GPU) para configurar el framebuffer. Y ya está, todo lo demás es escribir en el buffer de pantalla de forma periódica desde tu emulador.

http://elinux.org/RPi_Framebuffer

ZX-81 escribió:Tú tienes muy trillado eso de la depuración vía serie (con otra RPI, creo recordar) y los tejemanejes de la JTAG. Yo de eso no tengo ni idea. En cualquier caso, depurar así tampoco es precisamente fácil.


El JTAG nunca lo he usado, no me ha hecho falta. Pero se supone que es la forma fácil de hacerlo. El puerto serie lo único que hace es enviar bytes que puedo mostrar por pantalla. Esta es la forma "difícil" pero vamos que es cuestión de acostumbrarse. Yo prefiero la forma difícil porque a la larga te hace perder menos tiempo depurando. Para que te hagas un símil si has programado javascript: el puerto serie sería como el console.log mientras que el JTAG equivale al Firebug.

Yo tampoco tenía ni idea de ensamblador ARM ni de Bare Metal antes de meterme en el emulador. Si sabes otro ensamblador te costará poco trabajo hacerte con él. Y si no sabes ensamblador siempre puedes hacerlo en C.

ZX-81 escribió:No había pensado en escribir nada en ensamblador, precisamente porque lo que pretendería es refrescar la práctica que se supone que tengo en C/C++. Pero visto lo visto, no parece que el mercado laboral solicite muchos expertos en esos lenguajes. Ha sido toda una sorpresa para mi, la verdad....


El mercado laboral español en su mayoría son consultoras que lo que buscan es mano de obra barata. Y para desarrollar programas de baja calidad buscan lenguajes que tengan APIs gigantescas. No te piden C porque su API es minúscula y porque por lo poco que pagan no pueden pretender que el programador cree sus propios módulos. Yo prefiero aprender cosas por mi cuenta que me resulten útiles sólo por el hecho de aprenderlas.

ZX-81
Commodore 128
Commodore 128
Mensajes: 115
Registrado: 04 Ene 2013, 16:43
Sistema Favorito: Spectrum +2
primer_sistema: ZX81
consola_favorita: Nintendo DS/3DS
Primera consola: Sega Genesis/Megadrive
Ubicación: La orilla del mar Mediterráneo
Gracias dadas: 14 veces
Gracias recibidas: 23 veces
Contactar:

Re: πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor ZX-81 » 23 Ene 2015, 18:58

antoniovillena escribió:Ya pero ten en cuenta que emuladores que funcionen en Raspbian hay muchos y que funcionen sin SO (de spectrum) por ahora sólo el mío que es muy básico. Ten por seguro que alguien que meta una Raspberry Pi dentro de la carcasa de un gomas va a optar antes por una opción Bare Metal. Evidentemente programar en Bare Metal es más difícil.


Hay muchos que funcionan en Raspbian pero casi ninguno en modo gráfico puro, sin X-Window (al menos que yo sepa). Lo que es indiscutible es que si buscas a un pionero de muchas cosas, ahí tienes al Sr. Antonio Villena. Ese puesto no te lo disputa casi nadie. :D

antoniovillena escribió:El mercado laboral español en su mayoría son consultoras que lo que buscan es mano de obra barata. Y para desarrollar programas de baja calidad buscan lenguajes que tengan APIs gigantescas. No te piden C porque su API es minúscula y porque por lo poco que pagan no pueden pretender que el programador cree sus propios módulos. Yo prefiero aprender cosas por mi cuenta que me resulten útiles sólo por el hecho de aprenderlas.


Aunque sea salirse un poco del tema del hilo, ahora mismo todas las empresas en Ejspañía buscan mano de obra barata y dócil. En el caso de la informática, una gran parte de proyectos se hacen orientados a la Web, por eso es tan común el puesto de programador Java (J2EE) y de las tecnologías M$ (en menor medida creo). De vez en cuando ves algún puesto para programar sistemas embebidos, pero eso casi exclusivamente en Madrid o Barcelona. Ah!, y por pedir, nivel C1 de inglés (me pregunto si la gente que pone esos requisitos tendrán verdadera idea de lo que es un C1 o si se piensan que es un modelo nuevo de coche francés).

Obviamente, las empresas de selección de personal no tienen ni idea de la diferencia entre un "conocedor" del C (o de C++, o de Java, o de...) y un experto en ese lenguaje. Y como tú dices, van a llevar a cabo proyectos de bajísima calidad, así que les da igual lo bueno que sea el electo. Solo importa que su salario tienda a cero.

Como el tiempo de que disponemos es limitado, intento conjugar el aprender cosas interesantes con que puedan tener una utilidad en el mercado laboral, porque ahora mismo cualquier currante de la empresa privada está a la una menos diez de la cola del paro, de modo que conviene mantenerse "fresco".
Todo espacio de dimensión finita distinta de cero con producto interno tiene una base ortonormal. Tiene sentido, cuando no piensas sobre ello.
Profesor de Matemáticas U.C. Berkeley

Empieza a jugar sin tener que compilar: JSpeccy
Emulador bare-metal para la Raspberry PI 2/3: ZXBaremulator


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados