09-abr-2008, 02:09 | #41 |
Marciano
|
No destripes nada Fistro, que estoy encontrando más información y creo que se puede hacer por soft.
A proposito, que emulador de Megadrive me recomendais Saludos |
09-abr-2008, 02:18 | #42 |
Administrador
|
Kega fusion es más fiel que gens32 a la megadrive (reproduce, por ejemplo, algunos bugs en el thunderforce iv que gens no), consume más recursons, pero en un ordenador medio esto no supone ningún problema.
|
09-abr-2008, 02:21 | #43 |
Marciano
|
Es por probar a programar algo y ver los resultados.
Gracias Macarro. |
09-abr-2008, 03:32 | #44 |
Editor Marciano
|
Una explicación interesante, de porqué no es lo que yo decía
http://www.tototek.com/phpBB2/viewtopic.php?t=1840 Y un compilador para Megadrive... en BASIC ! http://devster.monkeeh.com/sega/basiegaxorz/ Roms caseras con fuentes para el compilador anterior... http://mipagina.cantv.net/tomman/romz/index.htm está curioso, pero salvo cosas super básicas me dan errores de checksum, y el emu no me rula lo que compilo. Vamos que no me deja rular un puto bucle... cosas tipo "print" si me lo hace, y cambiar colorines, y poco más. DevKit en C http://devster.proboards22.com/index...ead=1155137427 Editado por geezup en 09-abr-2008 a las 04:56. |
09-abr-2008, 09:49 | #45 | |
Marciano
|
Quote:
Este proyecto es una de esas típicas cosas que me encantaría hacer, pero que se me van acumulando en una montaña y al final ahí se quedan, como el DUCK, que al final se quedó a medias . Editado por doragasu en 09-abr-2008 a las 09:53. |
|
09-abr-2008, 10:05 | #46 | |
Marciano
|
Quote:
1.- El cartucho arranca en modo "bypass", la consola lee directamente de la memoria Flash, con lo que si hay un juego flasheado, comenzará de inmediato. 2.- El usuario pulsa el Reset. El PIC lo detecta, mantiene el Reset, desconecta el bus de la Megadrive, y programa el "loader" en la Flash. Luego levanta el reset. La consola ejecuta el "loader". 3.- El usuario selecciona una ROM. El "loader" guarda la ROM seleccionada en una posición concreta de la Flash, que no esté usada por el loader (por ejemplo en el último sector de la Flash. También se guarda un "boot-flag" concreto. El usuario vuelve a pulsar reset. 4.- El loader lee el "boot-flag" y sabe que debe proceder al flasheo de la ROM seleccionada, con el nombre guardado en el último sector de la Flash. Procede a flashear la ROM y levanta el Reset. Este método tiene un problema, y es que el "loader" debe poder acceder a la tarjeta SD para ver su contenido. Tal vez se pueda mapear algún registro del PIC en las direcciones de la SRAM y acceder a la SD a través del PIC y ese registro. Seguramente se puede hacer de un modo más "limpio", sin usar ningún PIC, simplemente con la Flash, una PLD (o tal vez haga falta irse a una FPGA pequeñita) y ejecutando el código que lee de la SD y flashea la consola únicamente desde la propia consola. Habría una zona que sería el loader que estaría siempre fija en la Flash, y el resto se encargaría de escribirlo el loader. La PLD se encargaría de la decodificación de direcciones y de facilitar al loader la lectura de la tarjeta SD, simulando el protocolo SPI. Si se hace así, es NECESARIO meter al menos una PLD, porque hay que hacer una decodificación bastante más complicada que en el otro caso. Aún así, a mí, pensándolo así rápido, me parece la mejor opción. |
|
09-abr-2008, 11:14 | #47 |
Invitado
|
Joder que nivel hay por aquí, suena a "ya mismo tenemos cartucho flash!!"
|
09-abr-2008, 11:29 | #48 | |
Marciano
|
A ver si consigo explicar claramente mi idea del procedimiento.
1. Al arracar la consola el PIC lee la información de roms que hay en el SD, graba en la flash el loader junto a la información de las roms. 2. Conecta los buses y le dice a la consola que hay un cartucho conectado. Según el pinout de esta web el pin B32 parece ser un indicador para que la consola sepa si hay cartucho conectado o no. 3. La consola ejecuta el loader, se selecciona el juego mediante un menú programado en el loader. 4. Ahora viene el inconveniente, ¿cómo le decimos al PIC la rom que tiene que leer de la SD para grabarla en la Flash? Quote:
Creo que la solución podría estar, si se puede, en que el loader escriba en el bus de direcciones el número de rom a cargar (rom1=$000001, rom2=$000002, etc). A continuación realiza un reset del cartucho, si se puede acceder al pin concreto, y se queda en un bucle, el PIC al detectar el reset lee el bus de direcciones y comienza la lectura/escritura de la rom. 5. Una vez escrita la Flash, el PIC realiza un reset mediante el cambio de estado del pin B32 (aquí viene explicado) y la consola comienza a ejecutar el juego. 6. Si se realiza un nuevo reset, al detectarlo el PIC cargará en la Flash nuevamente el loader, y vuelta al punto 1. De esta forma no es necesario que el loader lea la SD atraves del PIC, ya que el PIC cargará la información junto al loader y se quedará a la espera del reset para saber que rom tiene que cargar. Saludos Saludos |
|
09-abr-2008, 12:08 | #49 |
Invitado
|
Si señor Manofwar, eso parece mas facil, con un PIC. Se supone que el loader está en la eprom interna del PIC, no? Se supone que el loader ocupa poco, no? Eres un crack con los PIC, esa Pinball!!!
|
09-abr-2008, 12:29 | #50 |
Marciano
|
El loader mejor en la misma tarjeta SD, así no hay que reprogramar el PIC si existe una nueva versión del loader, con grabarla en la tarjeta bastará.
Saludos |