› Foros › Retro y descatalogado › Consolas clásicas
Hola a todos,
llevo muchos años registrado en EOL y he visto uno tras otro hilos en los que se hablaba acerca de crear una consola desde esta comunidad. Inevitablemente la mayoría de proyectos (a día de hoy todos), acaban muriendo en el olvido por que se llegan a callejones sin salida o cuellos de botella.
A mi, personalmente, me ha hecho siempre mucha ilusión desarrollar un proyecto de esta índole. Paralelamente mi trabajo consiste básicamente en la gestión de proyectos informáticos desde la fase de acuerdo (en las que se decide a grandes rasgos el proyecto) hasta la de implantación y mantenimiento, por lo que podemos aprovechar mi experiencia. Puedo aportar igualmente conocimientos de electrónica y programación, que considero son los dos pilares para que esto funcione.
Deberíamos uir de especificaciones altas o funcionamientos excesivamente depurados, al igual que tendríamos que implementar el uso de componentes lo más simples posibles para que a la vez que avanzamos otros compañeros puedan ir conociendo este mundo del desarrollo hardware. Por ejemplo, nada de FPGA's ni Bridges, como mucho el uso de procesadores de 16 bits conocidos (p.e. serie Motorola 68000 en sus versiones actualizadas) y PIC de baja-media gama, aparte de algunos chipes para gestiones muy concretas (p.e. los DAC). El motivo para uir de hardware más potente es que a medida que avanzamos en la escala tecnológica hay menos compañeros que puedan colaborar en el proyecto, por lo que todo se ralentiza y acaba por estancarse.
En definitiva, nuestro objetivo sería desarrollar una consola similar (en la medida de lo posible) a la Neo-Geo: una base hardware con una gestión software ligera. La carga de juegos por SD sería lo recomendado ya que podríamos tratarlas como si fueran los antiguos cartuchos.
A ratos he ido diseñando la parte de vídeo, con dos memorias buffer de 500Kx16 (500.000 posiciones con 16 bits por posición) para una resolución máxima de 800x600 (aunque habría que reducirla a 620x480), una memoria de 2Mx16 para tiles, sprites y tablas de pantalla, un procesador de 16 bits, 3 DAC de alta velocidad y algunos chipes para gestionar los buses. Prácticamente está hecha, faltaría audio, procesador central, diseño de buses y acceso a pads de juegos.
Bueno, no os quiero soltar más rollos, que ya es un buen ladrillo. A ver que os parece la idea y nos ponemos a ello
Bueno, pues ahí vamos. Comenzamos definiendo grupos de trabajo para que quien quiera colaborar pueda aportar su granito de arena. De todas formas si alguien piensa que puede haber más grupos que lo diga ahora...o calle para siempre
=================================================
Desarrollo Hardware
Grupo encargado de crear la arquitectura de la máquina, con la premisa del bajo coste y facilidad de implementación. Lo ideal es gente con conocimientos de electrónica y/o aficionados a la misma. El techo tecnológica lo podemos poner en procesadores y PIC de 16 bits, como el ya mencionado MC68000 o los PIC24F. Igualmente buscaremos estándares en salidas de vídeo y creación de periféricos.
bertobp
Saturnino
teesala
Desarrollo BIOS y funciones imbuidas
En trabajo directo con el grupo de desarrollo hardware creará todo el sistema de arranque y checking de la consola, a la vez que desarrollará funciones avanzadas (por ejemplo, rotación de sprites o acercamientos). La mejor opción sería desarrollar en C, ya que hay librerías muy completas para trabajar con estructuras de 16 bits y aportará un código más reducido y rápido.
ANTONIOND
Tomax_Payne
thanatos_xbox
Desarrollo IDE
Al igual que el anterior grupo, lo formará gente con conocimientos de programación. No obstante hasta avanzado el proyecto no podrá entrar en funcionamiento ya que no tendrán una base hardware/software sobre la que desarrollar. Pienso que este grupo lo irá conformando gente del grupo anterior según se avance y haya menos que desarrollar en cuanto a BIOS y funciones imbuidas.
Desarrollo de modelado
Gente con creatividad y conocimientos sobre el arte de crear moldes y dar el aspecto externo a todo lo que desarrollemos.
SilvestreX
Saryon
BUENDANI
Charlie_wii
Marketing
No, no es para venderla este grupo dará a conocer el proyecto, expandirá la idea, captará gente para la causa ...Sobre todo debemos tener cuidado y ser respetuosos y nunca spammear. Está bien que la comunidad sepa de este proyecto y otra cosa es que nos vean más que Verano Azul
En un ejercicio divertido puede crear cartelones con Paint, slogans,...casi cualquier cosa.
danibarna
doblete
kulunguelejfn
Saryon
jordigahan
alan wake GKL
=================================================
Algo a tener en cuenta es como haremos para que todos escribamos en el hilo y no nos hagamos un lío de grupos. Sugiero que nos creemos alguna imagen de grupo y la acompañemos con nuestros posts, así a golpe de vista sabremos a que grupo pertenece cada uno.
Si lo veis adecuado podemos conformar los grupos desde hoy al jueves 12 de Mayo (inclusive).
Por último, quien quiera contribuir tiene que ser consciente acerca de que este proyecto no es inmediato. Hacerlo todo nos llevará un tiempo y en una previsión optimista podemos obtener los primeros resultados hacia finales de otoño. Lo bueno es que según avancemos todo se precipitará con mayor rapidez.
** Iré usando este primer post para actualizar el estado del proyecto, para lo que pondré en spoiler todo lo anteriormente escrito.
socram8888 escribió:Lo ideal:
Freescale 8-bit para la CPU (porque son Von-Neummann y son capaces de ejecutar código desde la propia RAM interna)
PIC para la VDP (porque son rápidos y baratos)
Es un proyecto que tengo yo también en mente
Freestate escribió:Yo precisamente estaba dandole vueltas pero por el tema del diseño,es decir lo que yo tenia en mente es crear un pc con placa mini-itx consolizado con un diseño de carcasa pequeño que tuviera el look and feel de las consolas clasicas,neogeo megadrive etc.He estado mirando como hacer una carcasa a nivel industrial y por lo visto hay empresas que realizan impresiones en abs (http://es.wikipedia.org/wiki/Acrilonitr ... o_estireno) con impresoras 3d.Si no es asi como se podria hacer una carcasa de material plastico a precio asequible?
Jdioxjp escribió:Quizas lo mas complejo de este proyecto es la base de electronica,prosesador, memoria, etc... tendria que ser facil programar para el sistema muy facil. Y lo que es el desarrollo estetico es mas facil aunque complejo ya que es algo muy sujeto al gusto de cada uno, tambien seria interesante por ejemplo el tema de mandos por ejemplo por usb, eso daria la opcion de usar casi cualquier mando existente.
Jdioxjp escribió:Quizas lo mas complejo de este proyecto es la base de electronica,prosesador, memoria, etc... tendria que ser facil programar para el sistema muy facil. Y lo que es el desarrollo estetico es mas facil aunque complejo ya que es algo muy sujeto al gusto de cada uno, tambien seria interesante por ejemplo el tema de mandos por ejemplo por usb, eso daria la opcion de usar casi cualquier mando existente.
socram8888 escribió:Mandos, mejor con latches e intentar tener asi compatibilidad con los mandos de NES y SNES
Si usásemos un multiplexor, luego si quisiesemos ampliar el mando, tendriamos que usar complejos sistemas como los mandos de 6 botones de la MD, que requiere un preciso timing
En cambio, con un latch PISO (Parallel Input- Serial Output), en caso de querer ampliarlo, sería tan simple como añadir varios latches juntos uno detrás de otro
Yo puedo encargarme de lo que sea en PC, como alguna IDE o un emulador
Un pequeño offtopic: tengo otro proyecto personal bastante ambicioso, diseñar un RISC desde cero con chips (puertas logicas, latches, etc...) con ALU, cinco registros (A, B, X, Y, Z), cada uno con una funcion distinta. Eso sí, con una mínima: que sea lo más simple posible
socram8888 escribió:¿Potencia de NeoGeo? ¿Pretendes usar ARM a más de 75MHz?
KFR escribió:Por si os sirve de ayuda, hace un tiempo cree un post igual y llegamos a seleccionar como seria casi al completo un sistema de 8bits, y nos tiramos la de dios para elegir los componentes xD -> Link
Baek escribió:Espero que no os moleste mi opinión, pero creo que lo estáis enfocando al revés, creo que antes de pensar en un hardware hay que sopesar las posibilidades de viabilidad reales y, sobretodo, el objetivo final.
Lo primero, hay que pensar en quien se va a encargar de crear la bios de la consola y de qué forma se va a hacer, al enfocarlo hacia un hardware "sencillo" no hay que preocuparse de los drivers por que ya están más que escritos pero hay que juntarlo todo y luego decirle a dicha bios que tiene que interpretar "X" órdenes para poder reproducir el juego, lo que nos lleva al segundo problema: el SDK de la consola, ¿va a ser una consola que requerirá programación específica (y espero que nadie pretenda que se programe en ensamblador) o se va a intentar buscar una base ya existente?. Si es la primera opción, habría que buscar a bastante gente que estuviese dispuesta a programar, y si no se meten grupos interesados, difícilmente se vería algo muy superior a un POC. Si es la segunda opción va a estar el proyecto limitado a la base usada, lo cual no tiene por qué ser malo, pero sí puede pecar de ser una merca "copia" de otra cosa.
Creo que antes de nada hay que tener claro todo esto, luego ya se mirará el hardware.
socram8888 escribió:Lo ideal:
Freescale 8-bit para la CPU (porque son Von-Neummann y son capaces de ejecutar código desde la propia RAM interna)
PIC para la VDP (porque son rápidos y baratos)
Es un proyecto que tengo yo también en mente
FiXeD escribió:Baek escribió:Espero que no os moleste mi opinión, pero creo que lo estáis enfocando al revés, creo que antes de pensar en un hardware hay que sopesar las posibilidades de viabilidad reales y, sobretodo, el objetivo final.
Lo primero, hay que pensar en quien se va a encargar de crear la bios de la consola y de qué forma se va a hacer, al enfocarlo hacia un hardware "sencillo" no hay que preocuparse de los drivers por que ya están más que escritos pero hay que juntarlo todo y luego decirle a dicha bios que tiene que interpretar "X" órdenes para poder reproducir el juego, lo que nos lleva al segundo problema: el SDK de la consola, ¿va a ser una consola que requerirá programación específica (y espero que nadie pretenda que se programe en ensamblador) o se va a intentar buscar una base ya existente?. Si es la primera opción, habría que buscar a bastante gente que estuviese dispuesta a programar, y si no se meten grupos interesados, difícilmente se vería algo muy superior a un POC. Si es la segunda opción va a estar el proyecto limitado a la base usada, lo cual no tiene por qué ser malo, pero sí puede pecar de ser una merca "copia" de otra cosa.
Creo que antes de nada hay que tener claro todo esto, luego ya se mirará el hardware.
Interesante lo que indicas, pero creo que va más allá del propósito general de este, por ahora, pseudo proyecto. Por ejemplo, no hay drivers, todo es una arquitectura plana. Imaginemos por un momento como funciona la Atari 2600: todo el hardware montado en placa, una pequeña ROM de inicio (lo que señalas como BIOS, que puede ser tan simple como un volcado de pantalla y comprobar que los procesadores estén ready) y el cartucho (en nuestro caso una SD) que funciona a modo de ROM interna. No es preciso complicarse más la vida.
En cuanto al SDK, lo ideal sería crear un IDE gráfico, que compilase en C lo que el desarrolador del juego estableciera, ya que hoy en día hay bibliotecas en C para prácticamente cualquier procesador de 16 bits (al igual que para PIC).
Si nos ponemos en el plan de crear una consola que siga de la A a la Z todo el protocolo de inicialización y ejecución de software como una comercial actual (no olvidemos que la NES y MS, p.e., seguían los principios de la Atari en cuanto a lo escueto de su funcionamiento interno).
FiXeD escribió:Freestate escribió:Yo precisamente estaba dandole vueltas pero por el tema del diseño,es decir lo que yo tenia en mente es crear un pc con placa mini-itx consolizado con un diseño de carcasa pequeño que tuviera el look and feel de las consolas clasicas,neogeo megadrive etc.He estado mirando como hacer una carcasa a nivel industrial y por lo visto hay empresas que realizan impresiones en abs (http://es.wikipedia.org/wiki/Acrilonitr ... o_estireno) con impresoras 3d.Si no es asi como se podria hacer una carcasa de material plastico a precio asequible?
Compañero,
siempre con mis máximos respetos, estas son las ideas que dan al traste con proyectos como este. Me explico: tenemos que partir de base 0, nada prediseñado ni montado. Otros hilos al final se han convertido en un chorro de hilos hablando sobre si llegar a poner procesadores Intel como el Pentium III
No obstante, por si te sirve de referencia, la apariencia la puedes consgeuir haciendo un chasis de madera, lacándolo, dándole barniz y poniendo unos vinilos.
socram8888 escribió:Mi idea es gastar un PIC bastante rápido que sea capaz de generar la señal YUV directamente (es decir, la señal de vídeo PAL directamente) en lugar de necesitar un codificador RGB externo
O NTSC, pero yo pienso que al ser un proyecto español gastemos el estándar de aquí (que para una vez que la base sea PAL en lugar de NTSC...)
FiXeD escribió:socram8888 escribió:Mi idea es gastar un PIC bastante rápido que sea capaz de generar la señal YUV directamente (es decir, la señal de vídeo PAL directamente) en lugar de necesitar un codificador RGB externo
O NTSC, pero yo pienso que al ser un proyecto español gastemos el estándar de aquí (que para una vez que la base sea PAL en lugar de NTSC...)
Otro tema a tener en cuenta es la resolución: hoy en día es común que la gente tenga televisores de bastantes pulgadas, pudiendo fijar las 32" como base, por lo que habrá que elevarla lo máximo posible. supongo que con una resolución de 640x480.
Aparte, a botepronto, se me ocurren varios de los grupos que podemos crear:
- desarrolladores hardware
- desarrolladores software (check inicial y rutinas de apoyo básicas)
- diseño del IDE (o SDK)
- diseño artístico
- marketing
FiXeD escribió:socram8888 escribió:Mi idea es gastar un PIC bastante rápido que sea capaz de generar la señal YUV directamente (es decir, la señal de vídeo PAL directamente) en lugar de necesitar un codificador RGB externo
O NTSC, pero yo pienso que al ser un proyecto español gastemos el estándar de aquí (que para una vez que la base sea PAL en lugar de NTSC...)
Otro tema a tener en cuenta es la resolución: hoy en día es común que la gente tenga televisores de bastantes pulgadas, pudiendo fijar las 32" como base, por lo que habrá que elevarla lo máximo posible. supongo que con una resolución de 640x480.
Aparte, a botepronto, se me ocurren varios de los grupos que podemos crear:
- desarrolladores hardware
- desarrolladores software (check inicial y rutinas de apoyo básicas)
- diseño del IDE (o SDK)
- diseño artístico
- marketing
bertobp escribió:Yo me apunto al Hardware!!
FiXeD escribió:bertobp escribió:Yo me apunto al Hardware!!
He estado mirando la serie MC68000 de Freescale, rápida,flexible y asequible
oskarzer0 escribió:Curioso proyecto
¿Estais pensando en una Portátil con TV-Out o en una de sobremesa?
¡Ánimo!
doblete escribió:Porque no hacen la consola región libre, así funciona tanto en PAL como NTSC ?
De todos modos, animo con el proyecto.
FiXeD escribió:doblete escribió:Porque no hacen la consola región libre, así funciona tanto en PAL como NTSC ?
De todos modos, animo con el proyecto.
Por este motivo pensaba en hacerla con salida VGA, que es compatible con la mayoría de televisores actuales y, personalmente, en este sentido casi tengo desarrollada la parte de vídeo
FiXeD escribió:doblete escribió:Porque no hacen la consola región libre, así funciona tanto en PAL como NTSC ?
De todos modos, animo con el proyecto.
Por este motivo pensaba en hacerla con salida VGA, que es compatible con la mayoría de televisores actuales y, personalmente, en este sentido casi tengo desarrollada la parte de vídeo
socram8888 escribió:¿Pero externa? Si es así, pienso que esto no va a pasar más allá de eso: un proyecto. No creo que haya mucha gente dispuesta a montar un bus de datos con la enorme cantidad de cables que eso requiere (~40 en el caso del 68000)
Y una SD no funcinaría: necesitas RAM intermedia para poder cargar y ejecutar el programa