π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: 8 veces

πBacteria, emulador Bare Metal para la Raspberry Pi

Mensajepor antoniovillena » 23 Oct 2014, 06:13

¿Qué es un emulador Bare Metal? Es un emulador que corre directamente sobre la máquina, sin sistema operativo detrás.

¿Qué ventajas tiene? Que tienes toda la máquina con todos los recursos para tí, sin restricciones, y el arranque es inmediato.

¿Desventajas? Que a día de hoy no hay un driver de teclado USB en condiciones, así que no hay más remedio que conectarlo a un teclado de Spectrum por el puerto GPIO

¿Cómo se instala? Muy fácil, insertas la tarjeta SD donde tienes el SO de la Raspberry en tu PC y renombras kernel.img a kernel.bak. Te descargas de aquí kernel.img y lo guardas en la tarjeta SD, y luego insertas la tarjeta en la Raspberry. Cuando quieras volver al sistema operativo de antes, restauras kernel.bak a kernel.img.

Bajar la última versión de kernel.img pinchando aquí



¿Cómo conecto el teclado? Pues aquí dejo un esquema.

conectar_spectrum.png
conectar_spectrum.png (33.55 KiB) Visto 14118 veces


¿Funciona en la primera versión que sacaron de la Raspberry? De momento no, tendría que hacer otra versión separada porque los puertos están cambiados. Funciona en todos los demás modelos incluido el B+.

Solo veo el Basic, ¿cómo puedo cargar juegos? De momento no se puede, quiero poder cargar desde cinta pero antes tengo que sincronizar el emulador para que vaya al 100% de la velocidad. Si tenéis muchas ganas os puedo subir el kernel.img de algún juego de cartucho mientras tanto.

¿Para qué complicarse si puedes correr Fuse en la Raspberry? Este tipo de preguntas no las voy a contestar.

Es una versión alpha de un emulador así que no le pidáis más. Es el primer emulador Bare Metal para la Raspberry, con el tiempo sacarán más emuladores de este tipo y la gente cacharreará con ellos. Cabe dentro de la carcasa de un gomas y puede ir con la alimentación, el teclado y el puerto EAR. A pesar de que el arranque sea inmediato no deja de ser un emulador.

IMG_20141023_052322.jpg
IMG_20141023_052322.jpg (103.45 KiB) Visto 14118 veces


IMG_20141023_052310.jpg
IMG_20141023_052310.jpg (141.16 KiB) Visto 14136 veces
Adjuntos
kernel.zip
(22.73 KiB) Descargado 607 veces
Última edición por antoniovillena el 24 Oct 2014, 17:03, editado 3 veces en total.

Avatar de Usuario
EdgeM
Atari 1040 STf
Atari 1040 STf
Mensajes: 803
Registrado: 01 Feb 2008, 12:55
Gracias dadas: 2 veces
Gracias recibidas: 5 veces

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

Mensajepor EdgeM » 23 Oct 2014, 07:46

Bendito seas Antonio. Este tipo de proyectos me encantan :D

¿Está hecho en C o has tirado de ensamblador para ARM?

Por cierto, ¿cómo se sabe si tenemos un modelo de los primeros? Yo compré mi Pi casi al principio...

Avatar de Usuario
Zardoz
MSX Turbo R
MSX Turbo R
Mensajes: 283
Registrado: 09 Sep 2013, 19:04
Sistema Favorito: (Otro)
primer_sistema: (Otro)
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Madrid
Contactar:

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

Mensajepor Zardoz » 23 Oct 2014, 07:58

Que problema hay con el driver USB para el teclado ?
Yep, I have a blog :zardoz.es
Emulador DCPU-16 VM
Emulador Trillek

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 53 veces
Contactar:

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

Mensajepor mcleod_ideafix » 23 Oct 2014, 08:15

Zardoz escribió:Que problema hay con el driver USB para el teclado ?

Que hay que escribirlo :D

Al no haber SO detrás, todo el acceso a periféricos de la Pi tienes que hacerlo tú. Eso significa en la práctica coger el código fuente del kérnel de Linux para la Pi, y de ahí sacar:
- El código del driver para el USB host de la Pi
- El código del driver para USB HID

Leerlo, entenderlo, y a partir de ahí, escribir un driver de teclado. No es imposible, pero no es trivial.

Si la Pi fuese un PC y tuviera chipset de PC, podría incorporar emulación de los puertos 60h - 64h, y trabajar con el teclado así es muchísimo más fácil que el USB nativo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Zardoz
MSX Turbo R
MSX Turbo R
Mensajes: 283
Registrado: 09 Sep 2013, 19:04
Sistema Favorito: (Otro)
primer_sistema: (Otro)
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Madrid
Contactar:

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

Mensajepor Zardoz » 23 Oct 2014, 08:17

Tomo nota
Yep, I have a blog :zardoz.es
Emulador DCPU-16 VM
Emulador Trillek

Avatar de Usuario
Zardoz
MSX Turbo R
MSX Turbo R
Mensajes: 283
Registrado: 09 Sep 2013, 19:04
Sistema Favorito: (Otro)
primer_sistema: (Otro)
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Madrid
Contactar:

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

Mensajepor Zardoz » 23 Oct 2014, 08:58

Y el código fuente? Lo tienes subido a github ?
Yep, I have a blog :zardoz.es
Emulador DCPU-16 VM
Emulador Trillek

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

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

Mensajepor antoniovillena » 23 Oct 2014, 09:45

Zardoz escribió:Y el código fuente? Lo tienes subido a github ?


http://sourceforge.net/p/emuscriptoria/ ... iBacteria/

-- Actualizado 23 Oct 2014, 09:08 --

EdgeM escribió:Bendito seas Antonio. Este tipo de proyectos me encantan :D

¿Está hecho en C o has tirado de ensamblador para ARM?


100% ensamblador

EdgeM escribió:Por cierto, ¿cómo se sabe si tenemos un modelo de los primeros? Yo compré mi Pi casi al principio...


Los primeros disponían de 256Mb de RAM, fíjate en esta foto para ver los megas que tienes.

http://i.imgur.com/6gm8L.jpg

-- Actualizado 23 Oct 2014, 09:17 --

Cambian 3 pines entre la revisión 1.0 y el resto:

  • GPIO 0<->GPIO 2 (pin 3)
  • GPIO 1<->GPIO 3 (pin 5)
  • GPIO 21<->GPIO 27 (pin 13)

http://raspi.tv/wp-content/uploads/2014 ... inouts.png

Si cambiáis el código fuente por vuestra cuenta, los comandos para compilar son:

Código: Seleccionar todo

as -o tmp.o piBacteria.s
ld -e 0 -Ttext=0x8000 -o tmp.elf tmp.o
objcopy tmp.elf -O binary kernel.img


-- Actualizado 23 Oct 2014, 10:03 --

Tiene web propia, he subido una versión provisional.


http://πbacteria.speccy.org

Avatar de Usuario
wilco2009
MSX Turbo R
MSX Turbo R
Mensajes: 401
Registrado: 29 Ago 2013, 15:48
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: ZX81
consola_favorita: Sega Master System
Primera consola: Atari 2600
Gracias dadas: 1 vez
Gracias recibidas: 7 veces

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

Mensajepor wilco2009 » 23 Oct 2014, 20:05

Una pasada antonio. Siempre habia querido un emulador como este ya sea para pc o para arm.
Me parece una idea genial.

Avatar de Usuario
EdgeM
Atari 1040 STf
Atari 1040 STf
Mensajes: 803
Registrado: 01 Feb 2008, 12:55
Gracias dadas: 2 veces
Gracias recibidas: 5 veces

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

Mensajepor EdgeM » 23 Oct 2014, 20:38

Gracias por la foto para diferenciar modelos... afortunadamente parece que tengo el de 512MB :D

¿Hay documentación para programar de esta manera o te lo has currado todo por tu cuenta?

Avatar de Usuario
jltursan
Amiga 2500
Amiga 2500
Mensajes: 4028
Registrado: 13 Oct 2006, 19:45
Sistema Favorito: MSX
primer_sistema: Dragon
Ubicación: Serracines, Madrid, España
Gracias dadas: 57 veces
Gracias recibidas: 157 veces
Contactar:

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

Mensajepor jltursan » 23 Oct 2014, 20:49

Impresionante, vaya partido que se le podría sacar a la Pi trabajando de esta forma :shock:


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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