Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Dashiad

Páginas: [1]
1
Desarrollo / Musk64: Pi1541 y Tapuino en 1 solo dispositivo
« en: Octubre 17, 2021, 17:04:27 »
Después de muuuucha pelea, finalmente he conseguido portar Tapuino y Pi1541 para que funcionen en una misma plataforma (Teensy 4.1:https://www.pjrc.com/store/teensy41.html)
Elegí la Teensy porque da mucho rendimiento (800 Mhz) a un precio ajustado ($26 + envio), en un tamaño inferior a un arduino o una raspi, con un interfaz de programación tipo Arduino, y suficientes pines/dispositivos (SPI,I2C,etc,etc)

Portar tapuino (al menos, la versión antigua) es bastante trivial, el problema ha sido portar pi1541.. En ambos casos, había que eliminar todo el código de interfaz de usuario, y el código dependiente de plataforma...y luego adaptarlo a lo que la Teensy 4.1 puede hacer.
Éste ha sido el principal problema, ya que emular la 1541 significa que hay que emular lo que las VIAs leen del cabezal de la diskettera, y este proceso funciona a 16Mz, y, con el código original, la Teensy no cumplía el timing requerido...Por algún motivo, la pi1541 utiliza floats para mantener unos contadores que realmente podrían utilizar enteros, y con este cambio se ganan los ciclos necesarios para hacerlo funcionar.
El siguiente paso a probar, es usar un ESP32 para dar conexion wifi a la Teensy. El test inicial es descargar un d64 de la red, guardarlo en la sd, y montarlo en la diskettera. Esto abriria la puerta a tener un feed de novedades de juegos, demos, etc, descargarlos y ejecutarlos directamente desde el c64.
Además, el ESP32 también da bluetooth, como ya usa rik en su unijoysticle, por lo que también se podría integrar el soporte de mandos bluetooth dentro de la misma plataforma.
Otra de las cosas que es posible hacer con la pareja ESP32-teensy, son actualizaciones automáticas, ya que sería posible flashear la Teensy desde el ESP32 (aunque  no sé si sería necesario almacenamiento adicional para hacer esto).
Por otro lado, dar soporte básico a crts no debería ser complicado...habría que ver si sería posible portar código de Kung fu flash / EasyFlash y meterlo también en la misma plataforma..

En definitiva, la idea es tener 1 solo dispositivo, que haga cuantas más cosas mejor, y, suponiendo que seguirán saliendo placas cada vez más potentes, que migrar de una placa a otra no signifique reescribir proyectos completos, pero, sobre todo, añadir formas fáciles de acceder a las nuevas producciones y ejecutarlas en el hardware real sin tener que mover tarjetas SD de un lado a otro.

Ya iré dejando por aquí los avances que haya..

2
General / Jugando con el multipaint
« en: Diciembre 27, 2020, 13:40:37 »
Este par de días de vacaciones me ha dado por ponerme con el multipaint, y hacer mis primeros pixel "art".. Aqui os dejo mi primer y mi tercer intento (el segundo aún está sin terminar).
Por ahora todo muy básico, sin conocer bien cómo combinar correctamente la paleta..Es por eso que lo primero que hice intenta buscar colores medio naturales...y no es como funciona el c64 :-P ..
En la segunda imagen empiezo a buscar algo que funcione mejor con la paleta.

Lo malo es que es (otra) cosa que engancha... :-P

3
Problemas Hardware y Software / Sobre los 9V de alterna..
« en: Mayo 06, 2018, 19:09:45 »
He conseguido dos pequeñas fuentes que dan 9V de alterna, pero con un amperaje de 600 y 800 ma, por debajo del amperio de la fuente original.
Pero entiendo que el amperio que da la fuente original estaba pensado para alimentar a lo que estuviera conectado al puerto de usuario..porque en principio, para alimentar al SID y al generador de fecha, 600 u 800ma podrian ser suficientes...me equivoco??

4
El c64 que tengo para trastear, está dando un problema que no sé ni cómo buscar en internet algo sobre él.
Nada más arrancar, y en un patrón que va de arriba a abajo de la pantalla, fila a fila, los caracteres en pantalla se convierten en "basura" (más bien, ceros...Lo que sale es una @)
A lo largo del tiempo, el efecto cada vez es más fuerte, hasta que finalmente, el ordenador se cuelga.

Estaba esperando a que llegara la easyflash de @mjj para pasarle un cartucho de diagnostico, pero, interesantemente, cuando arranco con el EF3 conectado, lo que normalmente pasa, es que se queda la pantalla con el tipico borde en celeste, primer plano en azul, y nada más.No arranca el EF3, no sale nada en pantalla...

He subido un video porque sé que la explicación es pésima, a ver si se os ocurre que es, o qué puedo probar

https://youtu.be/p6iLTZ96alk


5
Desarrollo / Intentando hacer un juego
« en: Marzo 22, 2018, 04:07:51 »
Aunque tengo varios proyectos pendientes con el c64...son de cacharreo...y al final me paso más tiempo con el arduino que con lo que quiero realmente...que es quitarme la espina de no haber hecho un juego para el c64.
Estoy aún empezando, moviendo sprites,etc...Y tengo la idea del tema de un juego...pero, por ahora, me conformo con ir poco a poco.
La programación va a ser en código máquina, usando CBM Prg Studio + Charpad
Aquí va el fondo en el que estoy trabajando...30 caracteres y 15 tiles..Lo cual no sé si es mucho, o poco para lo que se ve (son tiles de 4x4)
Alguna idea de si estoy usando demasiado?

* level.PNG (18.56 kB . 675x320 - visto 782 veces)

6
General / Emulación de disketera usando sólo arduino (mega)
« en: Enero 14, 2018, 23:54:31 »
Al fiiiinn...Después de muchos cabezazos, he conseguido cargar 1 juego usando sólo un arduino mega, con un lector de tarjetas SD!!!

Sí, sé que está el uno2iec, pero éste requiere del pc para enviar los d64.El arduino sólo se ocupa del protocolo serie.

Esto debería haber estado terminado el JULIO pasado, pero había algún error de timing que me estaba volviendo loco, y no lo conseguia encontrar. En medio de la transmisión, el c64 dejaba de dar ack de los bytes que le enviaba.
Hoy me ha dado por retomarlo...Y aunque la documentación indica que el tiempo que hay que mantener un bit activo para ser leído por el c64 es de 60us, hasta que no lo he subido a 80, no ha funcionado.


Aún no está para distribuirlo (el d64 a cargar está puesto a capón, el fichero a cargar, también, no se soporta ningún otro comando que "load" ), pero, al menos, algún juego arranca!!!

La idea es hacer que esté medio estable, y meter el código de pantalla táctil que hice para el tapuino.


7
General / Mod: Joystick vtech vsmile para c64
« en: Mayo 04, 2017, 01:30:25 »
Había conseguido una consola Vtech v-smile por 4 euros en el mercadillo, y venía con sus dos joysticks.
La idea era usar esos joysticks con el c64, para los niños, y, aunque no sabía si eran analógicos o digitales, por ese precio, me la compré.
Aunque la consola funciona, lo que quiero es que los niños tengan su joystick para el c64, asi que me puse a hacer el mod...Y vaya pedazo de joysticks!! Me he quedado muy sorprendido!
Lo primero es que, a diferencia de la mayoría de joysticks que he visto, no se basa en membranas (ugh) o interruptores, sino en una tira que rota sobre un semicirculo metálico.Muy parecido a lo que sería un potenciómetro, por lo que parecería que es un joystick analógico.

Pero, en vez de eso,  el semicirculo está dividido en 6 partes: y sirve para dar 3 tipos de empuje por dirección! O sea, tiene 3 "sensibilidades" por dirección ("suave","medio" y "fuerte").En mi mod, he soldado las sensibilidades "media" y "fuerte" entre sí, pero un mod más complejo permitiría seleccionar distintas sensibilidades según el juego al que vayamos a jugar.

Como construcción, a mi me parece más durable que los cacharros con interruptores, y el joystick tiene pinta de indestructible.Aparte, muy ingenioso el sistema para zurdos!


8
Desarrollo / Mapas en c64 con scroll
« en: Mayo 01, 2017, 22:04:55 »
Uno de los motivos que me hacen seguir cacharreando con el c64 es quitarme mi espina clavada:hacer un juego en ensamblador para el commodore.
Y, para empezar, quisiera resolver dos primeros problemas: el mapa, y el scroll.
Lo que quisiera conseguir es tener un mapa continuo, con scroll fino, y con libertad de movimiento del personaje. Es decir, tipo Turrican.

Os comento mi planteamiento inicial, para ver si me podeis echar una mano, e ir acumulando ideas:

Sobre el mapa:
- Basado en tiles: los tiles podrían ser de 8x8 caracteres, o de 4x4 caracteres.
  Si los tiles son de 8x8, la variedad de graficos es poca, es más dificil combinar tiles entre sí, pero los requisitos de memoria, y el numero de indirecciones a hacer en el pintado de la pantalla, es menor.
  La memoria para almacenar los tiles, es mayor que si fueran de 4x4

Si tenemos un máximo de 256 tiles:
 En el caso de 8x8, la memoria requerida es 256*8*8=16Kb
 En el caso de 4x4, la memoria requerida es 256*4*4=  4Kb

Sin tener en cuenta espacio para marcadores:
  Un mapa de 128x32 tiles de 8x8 , equivaldría a unas 25 pantallas de ancho por unas 10 de alto, y ocuparía 4Kb
  Un mapa de 256x64 tiles de 4x4, sería un tamaño de mapa equivalente, y ocuparía 16Kb.

O sea, en uso de memoria para almacenar posiciones, los requisitos de memoria serian iguales.

Sobre el color:
   No me he puesto a estudiar todos los modos posibles, y cual seria el mas adecuado, pero voy a suponer, en principio, que hay 2 comunes, color de fondo, y que libre queda el color de primer plano.
El color de primer plano podría :
   1) Ir asociado al caracter: el caracter se representa con el mismo color esté en el tile en el que esté.
   2) Ir asociado al tile : todos los caracteres de un tile, tiene un mismo color de primer plano.
   3) Ir asociado a la posicion dentro del tile: cada tile tiene, ademas de 8x8 o 4x4 caracteres, 8x8 o 4x4 colores.En el caso de 8x8, necesitaria 16K (8k codificando 2 colores por byte).En el caso de 4x4, necesitaria 4k (2Kb, codificando 2 colores por byte)

Sobre los tipos de objetos del mapa:
El código de caracter debería codificar información del tipo:
- Si codigo & 0x80, el caracter no es atravesable. (Tendríamos 128 caracteres para objetos atravesables, como suelo, etc, y otros 128 para no atravesables)
- Si codigo & 0xC0 == 0xC0, el contacto con el caracter te mata (Tendríamos 64 caracteres para objetos no atravesables que no matan, y otros 64 para caracteres no atravesables que sí matan)
Así se podrían codificar esas propiedades o cualquier otra.

Sobre el dibujado del mapa y el scroll:
  Este modelo no es el tipico de naves donde el scroll es independiente de lo que haga el jugador: el jugador es libre de moverse en cualquier direccion.
El modelo es que existe un rectangulo invisible en el centro de la pantalla.Si el usuario se mueve dentro de ese rectángulo, la pantalla está fija.
Supongamos que el jugador está justo en el borde de ese rectángulo.Si se mueve 1 paso más, se saldría del rectángulo, y provocaría el scroll.
En el turrican, el scroll es inmediato.Se ve que el jugador "empuja" el mapa.El problema es que la nueva pantalla, tiene que ser pintada inmediatamente.
Pero, si miramos el Sams Journey, es diferente: al jugador se le permite atravesar el rectángulo, y el mapa le "seguirá".Eso da tiempo para preparar la nueva pantalla.

Digo "preparar", porque la pantalla nueva debería hacerse con un doble buffer (una pantalla escondida, donde se dibuja mientras se muestra la primera).Sin embargo, en el c64 no se puede hacer doble bufer de la memoria de color.Sin embargo, sí que se podría calcular qué colores hay que pintar en cada posición, y almacenarlo en un buffer de 1k, para que cuando haya que refrescar el mapa de color, sólo haya que copiar el buffer, y no hacer todos los cálculos.

También sería posible hacerlo vía interrupciones: teóricamente, una vez que el raster ha pasado las primeras 8 lineas visibles, ya se puede empezar a pintar, fila a fila, los caracteres.Como pintando vamos a ser más lentos que el raster, no lo vamos a alcanzar.Por seguridad, los sprites sí que habría que actualizarlos cuando el raster esté completamente fuera de la pantalla.

También debería haber una seríe de caracteres especificos que se van a ir actualizando cada x frames, para hacer animaciones, etc

Algun comentario / idea / link de info ?


9
General / Tapuino con pantalla táctil de 3.2 / Editor de Sprites
« en: Diciembre 01, 2016, 02:02:57 »
He modificado el código del tapuino para utilizar una pantalla táctil de 3.2'' (poco más de 3 euros en AliExpress), que incluye el lector de SD, y un arduino mega (aprox 9 euros). De esta forma, montar el tapuino sólo requiere de un optocoupler para la línea del motor (20 por 1 euro), y el conector de datasette.
La ventaja es que es posible navegar por los directorios, ver su contenido (paginado), implementar los botones del datasette, etc, sin necesidad de botones adicionales.
Como quería hacer algo que simplemente funcionara, no me he preocupado de mantener compatibilidad con la estructura de código del tapuino (cosa dificil por otro lado, por las librerías necesarias para el LCD), y no está muy pulido, pero si a alguien le interesa, le envío el código.

No le he prestado más atención porque sigo empeñado en hacer un editor de sprites multi-sprite y multi-layer! Os dejo un screenshot del avance!

10
Presentaciones / Hola a todos
« en: Mayo 19, 2016, 14:32:47 »
Bueno, otro viejo commodoriano que intenta rehabilitarse...
Yo sólo he sido commodoriano "del monton" , poseedor de C64 y triste unidad de datasette. Pero, entre el esfuerzo que hicieron mis padres en aquel entonces para comprármelo, y que con él aprendí a programar, pues...Y que tengo entre ceja y ceja pasar la devoción a los enanos...Pues nada, aqui volvemos.
Para dar algo de "chicha" a la presentación, dos cosillas:
La primera, una cosa que a mi me ocurría , y no sé cómo de común es,o si es algo de  conocimiento generalizado: cuando, al cargar un juego con el datasette, ponía el volumen del televisor al máximo, se oía el típico sonidito del handshake.Lo típico del spectrum, etc..y que era bastante util para resolver líos con el azimuth.Sólo había que recordar volver a bajar el volumen ANTES de seguir viendo Dragon Ball.
Y, la segunda, recomendar mi juego favorito de C64, que creo que no salió en España, y es un juegazo : Times of Lore .Lo compré en "formato B&W" (o "carátula fotocopiada") en un mercadillo..Y..bueno, oye, que merece la pena jugarlo.

Y, bueno, vengo interesado en cacharrear (programación, proyectitos hardware) y, sobre todo, estar en una comunidad de apasionados por lo que hacen.
Parte de este comeback, es también responsabilidad del señor SirArthur y su podcast/vlog.Influido por el gran Cebrian...Turno de noche / La Rosa de los vientos + C64 era un combo mítico..

Y, por si lo lees, SirArthur, sigo pensando que si tu plan nunca-antes-realizado con el c64, es comértelo, va a ser un exitazo.

Ah, por cierto...Acabo de pillar un c64 por 1.23 euros en ebay x-D..Tengo uno funcional (con carcasa horrible), y una placa para repuestos (en el remoto caso de que los chips se dejaran desoldar)

Páginas: [1]