RasPi99/4A

vcoraba
Mensajes: 299
Registrado: 29 Oct 2010 15:07
Ubicación: Husillos
Agradecido : 2 veces
Agradecimiento recibido: 1 vez
Contactar:

Re: RasPi99/4A

Mensajepor vcoraba » 21 Oct 2013 22:49

Último mensaje de la página anterior:

¿Puedes tirar unas fotos al conjunto teclado membrana y conectores?
Si es como me imagino, no se podrá soldar sobre las pistas plásticas y intentar apañar con pintura de plata puede ser una odisea. Creo que en ese caso podemos usar PIC para implementar y reconvertir la matriz hacia ps2.
puede ser un bonito proyecto si dispones de tiempo.
saludos

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 21 Oct 2013 22:50

DyLucke escribió:El problema sería que el teclado del A600 es de membrana. No sé cómo se podría solucinar el asunto.


Aprovechando su propia faja y poniéndole un conector al final. Así de sencillo. Eso si, debería tratarse de un A600 deshauciado del todo, jejejeje.

Avatar de Usuario
DyLucke
Mensajes: 4726
Registrado: 30 Oct 2010 12:52
Ubicación: Pompaela vieja
Agradecido : 136 veces
Agradecimiento recibido: 183 veces

Re: RasPi99/4A

Mensajepor DyLucke » 21 Oct 2013 23:38

Sí, Ron, éso se puede hacer pero es precisamente aquello que hace el KeyRah.

Yo no sé si el problema con el keyghosting es un problema de diseño de la matriz de la membrana o bien es un problema del controlador de la misma.

Está claro que si es un problema del controlador, se puede intentar hacer uno con un PIC.
Cosa de la que no tengo ni idea, pero segurametne se podría.
"I'm playing games.
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

Avatar de Usuario
htdreams
Mensajes: 784
Registrado: 12 Nov 2012 19:34
Agradecido : 123 veces
Agradecimiento recibido: 142 veces

Re: RasPi99/4A

Mensajepor htdreams » 22 Oct 2013 10:21

Pues acabo de pedir una carcasa de a600 con teclado uk, asi que sera el siguiente proyecto después del amiga colorau :-)

La opción del keyrah va a estar siempre ahí, aunque me gustaría cacharrearme yo una solución... Tambien tengo un arduino nano que se podría utilizar, y sale más barato que el keyrah...

Avatar de Usuario
DyLucke
Mensajes: 4726
Registrado: 30 Oct 2010 12:52
Ubicación: Pompaela vieja
Agradecido : 136 veces
Agradecimiento recibido: 183 veces

Re: RasPi99/4A

Mensajepor DyLucke » 22 Oct 2013 12:30

Pues estupendo estaré atento a tus progresos, porque meter una RPi en un A600 tiene que molar mazo.
Sólo espero que empiecen a sacar emuladores en condiciones para la RPí, porque a día de hoy, parece que está
bastante desaprovechada.

El cacharro puede hacer mucho más.

Por ejemplo en el caso de la GBA, teniendo en cuenta que monta un ARM, debería ser muy sencillo sacarle un
rendimiento óptimo a un emulador sobre la RPi, lo mismo con la 3DO.
"I'm playing games.
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

Avatar de Usuario
ferix
Mensajes: 1009
Registrado: 28 May 2012 21:01
Agradecimiento recibido: 12 veces

Re: RasPi99/4A

Mensajepor ferix » 22 Oct 2013 14:14

Bueno, lo primero, enhorabuena por la currada del teclado, aunque yo habría optado por otra solución para mi mucho más limpia, utilizar un microcontrolador que leyese directamente la matriz del teclado del ti99...

Quizás lo más peliagudo sería "hacer hablar" el lenguaje USB al microcontrolador, pero hay estupendas bibliotecas opensource para AVR que ya lo solucionan, así que con un pequeño ATMEGA8 sería más que suficiente, y además nos daría la opción de remapear teclas, crear macros y virguerías varias...

Para el caso de un teclado de A600 el principio es el mismo. Un microcontrolador escanea el teclado y envía los scancodes de las teclas pulsadas a través del USB utilizando el protocolo adecuado (HID device).

El tema del ghosting creo que ya lo expliqué en otro post, aunque ahora no recuerdo cual, y es producido por el hecho de que los teclados usualmente se forman creando matrices de teclas para simplificar el hardware, ya que con una matriz de 8 filas por 8 columnas podemos escanear 64 teclas utilizando solo 16 conexiones, mientras que utilizando una linea por tecla al final necesitaríamos 64 conexiones.

Con una matriz de teclas lo más habitual es ir activando una fila (o columna) y comprobar por que columna (o fila) se recibe esta señal. Si se recibe la señal por alguna de estas líneas, lo más lógico es suponer que se ha pulsado la tecla que está justo en la intersección de la fila (o columna) que hemos activado y la columna (o fila) por dónde hemos recibido la señal.
El problema de este tipo de configuración de teclado es que la pulsación de una tecla puede llegar a enmascarar todas las teclas de una fila o columna, dependiendo de como se haga el barrido.
Además, la pulsación de varias teclas puede dar como resultado la activación de varias lineas de salida del teclado, lo cual puede confundir al microcontrolador o rutina destinados a la lectura del estado del teclado.
Existen varias soluciones para esto. Una es distribuir las teclas en la matriz de una forma en la que se prevea que va a ser poco probable que coincidan las pulsaciones y distribuyendo las más "conflictivas" en filas o columnas separadas para cada una de ellas, pero esto depende mucho del lenguaje del teclado y del uso que se le de a este, aparte que tenemos un límite de filas y columnas para "repartir".
Otra es utilizar otro método diferente de escaneado, por ejemplo, activar las filas o columnas más rápido y realizando barridos en ambos sentidos (primero columna-fila y luego fila-columna, por ejemplo), e incluso activar varias filas al mismo tiempo y luego ir desactivando una a una, comparando todos estos resultados para averiguar cuales son las teclas exactas que se han pulsado.
Obviamente esto necesita un cierto estudio de la matriz del teclado y las posibles combinaciones de teclas que pueden surgir, pero es perfectamente posible de realizar.

Un ejemplo claro de un teclado con matriz totalmente ortogonal (8 filas x 8 columnas) con escaneado secuencial, y además con un ghosting bestial, es el C64.
La gente que se dedica "en serio" a programar en el C64 por lo general carga algún programa que parchea la rutina de escaneo de teclado del C64 por otra que realiza la lectura de forma dinámica y permite una escritura mucho más rápida y cómoda.
Edito: Incluso ciertos juegos modifican las rutinas de escaneo o las reemplazan totalmente para evitar el ghosting en las teclas que estos utilizan.

Bueno, de todo esto podemos deducir que en el caso de ciertos ordenadores, como en el PC y en el Amiga, el problema del ghosting es una combinación entre el hecho de utilizar una matriz (como el 99% de los teclados) y de la forma en la que el controlador de teclado realiza el escaneado de esta, por lo que la solución en este caso no es sencilla y pasaría por reprogramar el controlador para realizar un escaneado dinámico más "inteligente", o bien sustituirlo directamente por otro controlador que sea capaz de hacerlo y que además "entienda" la matriz de teclas y disponga del tipo de conexión necesaria con el interfaz de teclado de la máquina (USB, PS2, serie, etc...).

En el caso concreto del A600 y A1200 este se encuentra en la propia placa base, mientras que en el resto de modelos está en una placa independiente que forma parte del propio teclado, ya sea interno (A500 y familia) o externo (A1000, A2000, A3000, A4000 y CDTV, en cualquiera de sus variantes).

Usualmente en los sistemas de 8 bits, como el C64, ZX Spectrum, CPC, etc., no existe ningún procesador o hardware específicamente diseñado para realizar la lectura del teclado, siendo la CPU del sistema la encargada de comprobar periódicamente si se ha pulsado alguna tecla en la matriz del teclado, y siendo por esto susceptible de ser modificada o mejorada la parte del código responsable de realizar dicha tarea, lo que hace relativamente más sencillo atajar el problema.

Por otro lado, en algunos casos existen también limitaciones de software, como en el USB, en el que la especificación de los dispositivos HID establece un máximo de scancodes que pueden ser enviados en cada paquete de información de estado del dispositivo, pero este número es bastante amplio y realmente complicado de conseguir incluso utilizando todos los dedos de ambas manos y pies :P.

Dicho todo esto, es perfectamente posible convertir un teclado de A600 a USB, microcontrolador mediante, y reducir al mínimo el efecto ghosting.

Edito:
Ya he encontrado el enlace que explica con detalle por que se produce el ghosting: Keyboard Ghosting Explained!

Avatar de Usuario
htdreams
Mensajes: 784
Registrado: 12 Nov 2012 19:34
Agradecido : 123 veces
Agradecimiento recibido: 142 veces

Re: RasPi99/4A

Mensajepor htdreams » 22 Oct 2013 15:27

Genial exposición Ferix! pues perfecto, entiendo que con el arduino nano no tendré problemas en programar el "puente" entre el teclado del A600 y el PI (si no he entendido mal en el A600 el teclado es una matriz sin más, no lleva controlador, no?)

Me empaparé algo más del tema de ghosting, ya que al programar para el A500 y el A1200 me he dado de lleno con él, al final he optado por lo mismo que han optado la mayoría de desarrolladores, tirar de joysticks, y por eso hice el adaptador para paralelo :-P

Por otra parte, creo que el candidato ideal para meter dentro un PI es el A600, ya que es más o menos un teclado moderno y compacto, con un diseño muy cuco, y que da mucho juego sin sacrificar mucho espacio en la mesa (más o menos lo que ya te podría consumir un teclado normal con la pi conectada directamente.

Eso si, tengo que decidir el color en el que hay que pintarlo, por que salió baratillo debido a que tanto carcasa como teclas presentan zonas amarillas bastante feuchas... :-)

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 22 Oct 2013 15:45

WOW Ferix !!! me gusta mucho tu comentario, estupendo post.

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 22 Oct 2013 17:50

Veamos una cosa, el TI.99/4A es una máquina de 1981 y excepto el Atari 400 y el ZX81 ( hasta la llegada del ZX Spectrum ) todos los teclados son mecánicos o hacen contacto sobre un circuito con lo que la opción de aprovechar el interfaz de un teclado USB es factible.

Lo que hizo vcoraba con cable , es exactamente remapear el teclado desde cero, ya que las pistas en placa están cortadas y las teclas han quedado como decís por arriba, individualizadas. SI se puede aprovechar el contacto de cada tecla, ya sea en faja o circuito, es totalmente factible.

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 26 Oct 2013 11:55

100_1787.JPG


100_1788.JPG


100_1789.JPG


100_1790.JPG


100_1791.JPG


100_1792.JPG


A falta de unos retoques ya finales... digamos que está 100 % operativo. Finalmente le metí dentro un HUB USB bastante antiguo que tenía por aquí con 4 puertos y ahora tengo 3 usados en el hub ( teclado, mouse y joystick ) y tengo un puerto libre tanto en el hub como en la raspi. ( El cable amarillo que veis es el de ethernet )

Falta por ir pensando a ver como le meto unas teclas de cursor, tengo unas cuantas ideas y creo que tengo todo lo necesario, la próxima vez que me junte con vcoraba va a quedar nickelado.

Seguiré informando...

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 26 Oct 2013 12:04

no, estaba usando la 0.3, sin duda tengo que mirar en un rato de actualizar cosas de la raspi que anoche no me dio tiempo, además me puse a ver la F1 y me terminé acostando a las cinco... juasjuasjuasjuas

Tengo dos Pi, una de las que ya venían con 512 y otra de las de lafumat que también son 512 y hay cosas que no fonan en la segunda... por lo que al final puse mi pi en el TI, ya que cambiarla es un segundo.

Además el TI lo podemos usar con un PC / Mac, tan solo hay que sacar el USB y ya está, un teclado en forma de TI-99/4A chutando a las mil maravillas.

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 09 Nov 2013 02:09

Hola Colegas !!!

http://www.youtube.com/watch?v=v8vS9a5nwWU

MISIÓN COMPLETADA

Avatar de Usuario
DyLucke
Mensajes: 4726
Registrado: 30 Oct 2010 12:52
Ubicación: Pompaela vieja
Agradecido : 136 veces
Agradecimiento recibido: 183 veces

Re: RasPi99/4A

Mensajepor DyLucke » 09 Nov 2013 04:03

Queda muy bonito Ron, pero la emulación sobre la Pi todavía es bastante mejorable.
Me cuesta creer que un micro tan potente de tan poco rendimiento.
"I'm playing games.
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 09 Nov 2013 10:49

DyLucke, pues que quieres que te diga -yu . La mayoría de los sistemas que emula MESS en RasPI ( por el momento ) es bastante adecuada en cuanto a términos de velocidad y precisión y estoy seguro que futuras versiones serán todo mejoras ( tu mismo lo piensas , así será ) , no le veo de momento ningún inconveniente, ¿ que debe mejorar...?, tenlo por seguro.

De hecho todo lo que he probado en MESS bajo RPI ( de lo que funciona ) a mi me ha gustado y estoy bastante satisfecho, a sabiendas que queda mucho camino por recorrer, dime tu a ver que ordenador de 20 pavos hace todo esto y además tan bien. Respecto a los emuladores individuales lo mismo.

Yo tengo funcionando el UAE4ALL por ponerte un ejemplo y sin demasiada optimización y con una base que tiene mucho camino que recorrer funciona, a ver si te voy a tener que pasar mis imágenes de SD para que salgas de dudas. Lo que si aseguro es que no se puede uno quedar esperando a que los demás saquen las cosas cuando las puedes hacer por ti mismo. Da igual que lo hagas bajo RiscOS que bajo Linux, el uso continuado de la Raspi te lleva a ello, pero si no la usamos y esperamos sentados, lo llevamos claro.

Yo me conformo teniendo el tema como está, obviamente quiero que evolucione y mejore pero repito, por 20 pavos emular todos los 8 bit no tiene precio, incluido el SAM. Ahora mismo tengo la carcasa de un TI-99/4A convertida en un nuevo ordenador basado en Raspberry Pi que me permite emular Apple ][, TRS80, Atari 8 bit, BBC Micro, Commodore Pet, Vic20, 64, 16, PlusIV, 128, Sinclair ZX81, ZXSpectrum , Oric 1 y Atmos, Dragon 32/64, MSX y MSX2, Amstrad CPC, Atari ST, PC DOS, Amiga , Sam Coupé.... y son unos cuantos de aparte de todo lo que se puede emular vía multi emulador.

No se, no soy ningún experto en RPI ni en nada, pero coño, a mi me funciona casi todo y lo que no lo hace me busco las cosquillas para hacerlo funcionar, al estar acostumbrado a usar Linux la RPI es un ordenador más con sus prestaciones y sus límites, también es el uso que le de cada uno, yo la uso exlcusivamente para emular y para rular RiscOS, pero hay gente que la usa para infinidad de cosas.

Al fin y al cabo lo que pretendía era tener un TI994A funcionando sin su hierro original y ahí está. Esto, me lleva a pensar otra vez en que podemos aprovechar las cosas. Mira, un TI994A que no funcionaba, su placa y su electrónica está en manos de alguien que bien la podrá aprovechar para otro TI o para otro micro, la carcasa en buen estado se reaprovecha y se busca algo en donde se puedan reproducir un TI994A y ya si son más pues mejor.

Y a eso iba, en vez de meter la raspi si hubiera una FPGA que emulase el TI a un precio asequible pues se lo metería. Te aseguro que si alguien que no sabe que es un emu, se lo pones delante... va a costarle trabajo darse cuenta que no es un TI original.

Avatar de Usuario
DyLucke
Mensajes: 4726
Registrado: 30 Oct 2010 12:52
Ubicación: Pompaela vieja
Agradecido : 136 veces
Agradecimiento recibido: 183 veces

Re: RasPi99/4A

Mensajepor DyLucke » 09 Nov 2013 16:12

No, si no pongo ningún pero al proyecto. Me parece estupendo.

Lo que pasa es que bajo mi punto de vista a día de hoy la emulación sobre RPi parece carente de cierta ambición.

Es cierto, puede emular bastantes micros de 8bits con un resultado óptimo, e incluso algunos ya de la época de los 16bits.

Sin embargo, insisto, el ARM de la RPi, puede con bastante más que éso.

Estaría COJONUDO que pudiera emular un Amiga con AGA y un 030 sencillo, en el mismo segmento de potencia podría emular un Falcon básico... Por no hablar de los sistemas consoleros de 16bits.

Y ya si nos ponemos exquisitos, aprovechando que cuenta con un ARM, por qué no un emu de la 3DO u de la GBA?
Utilizan un micro de la misma familia... Se podrían obtener unos excelentes resultados pues la carga de trabajo podría reducirse bastante.

En síntesis... Emulación en RPí, SÍ, pero espero con verdadera ansiedad que por fin den el salto a sistemas un poco más exigentes.

Por mi parte, cuando me haya instalado en la nueva casa, iniciaré el proyecto de instalar una de las RPi en un A1200, o quizá un A600. Ya veremos. Todo dependerá de los periféricos internos de los que la dote, y de por supuesto si podemos contar con alguien que programe un PIC para el intérprete de teclado, de modo que podamos beneficiarnos de la calidad del teclado del A1200 sin el dichoso key ghosting.

Creo recordar que ferix constató que el problema viene dado por el controlador de la placa del A1200, ya que por lo visto en el A500 no hay problemas de ghosting.
"I'm playing games.
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

Avatar de Usuario
Zardoz
Mensajes: 304
Registrado: 11 Mar 2013 20:37
Agradecimiento recibido: 1 vez

Re: RasPi99/4A

Mensajepor Zardoz » 09 Nov 2013 16:59

Joer ... si yo en un 486@133 movía el ZSNES y el emulador de MegaDrive en el DOS, la RPi debería de poder moverlos perfectamente!
I'm afraid that I have a blog: http://zardoz.es
Emulador DCPU-16 VM
Emulador RC3200-VM

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: RasPi99/4A

Mensajepor ron » 09 Nov 2013 17:27

Pues Zardoz di que si, a ver ... después de haberme pasado por 20 y tantas webs mirando benchmarking a nivel total, he podido ver tests que hacen ejecutando ya Java sobre la Pi y más o menos las conclusiones que están saliendo es que en términos totales de rendimiento una RasPi viene a ser un Pentium 2 a 300/400 MHz ( más cerca de 300 ) y eso ya es suficiente para emular casi de todo. A la vista que el rendimiento total del Pentium MMX 166 MHz es de .25 en comparación con la RasPi que es de 1.00 ( 4 veces más rápida ) ¿ como no va a poder mover emuladores que tiran en PC ?

La Dreamcast, que monta un SH4 ( Risc ) a 200 MHz tiene un rendimiento conjunto RAM+PowerVR+SH4+AMR7 viene a equivaler a un Pentium 2 a 300 Mhz, ¿ casualidad ?

Pero claro, hablo de comentarios y pruebas realizadas sin OVERCLOCK, es decir a los 700 MHz nativos de la PI. Como se puede overclockear la Pi sin hacerle sufrir demasiado hasta 1 GHz, solo me resta deciros que hagáis vosotros mismos la prueba y nadie mejor que uno mismo para salir de la duda. Se nota y mucho.

Para ir despejando dudas, en cuanto a tema gráfico, ya me diréis si un PII es capaz de reproducir películas a 1080 puntos sin pestañear como lo hace la RasPi, tiene un Broadcom BCM2835 basado en ARM 11 a 700 MHz con una GPU capaz de reproducir BlueRay, con un consumo eléctrico que es "la risa" si lo comparamos con lo que chupa un PII o un PIII en el tamaño de una tarjeta de crédito y que incluye todos los puertos e interfaces necesarios para ponerse a funcionar cuando y donde quieras.

Y para parar ya ... jaaja, que quiero hablar del QL sobre RPI en un post nuevo, nada como ver esto:

http://riscpi.co.uk/v1-5-of-fastdosbox- ... available/

FastDosBox is an enhanced fork of DOSBox, an open source x86 PC emulator. Based on the SVN source code of DOSBox, Users report that FastDosBox is 250% faster than the version of DOSBox on apt-get. The performance of FastDosBox is said to be comparable with that of a 486DX20

The ingredients for the “secret sauce” of FastDosBox include a fixed/ported dynrec x86 emulation part, support for dispmanx, and couple of assembler subroutines.

The benchmark used to compare DOSBox and FastDosBox, and which leads to the claim of a 250% gain in speed, is 3DBench, a benchmark often used in the DOSBox community to compare 386-486 Pentium class machines. Running the benchmark on FastDosBox on a Raspberry Pi gives a result of 12.0 – equivalent to a 486DX20 – whereas running the version 0.74 of DOSBox on the same board gives a result of 5.


Volver a “Emulaciones software, FPGA y otras soluciones”

¿Quién está conectado?

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