Commodore manía
Commodore 64 => Desarrollo => Mensaje iniciado por: danytoon en Agosto 14, 2015, 16:16:56
-
Hola!
Me encantaría poder recurrir a alguien para que me pasara juegos de D64 a .CRT... prometo no dar la coña mucho xD ... Es que de verdad, desde que tengo 12 años, el tema del Código Máquina me ha parecido super complicado...
He preguntado en Lemon64 y me han dado instrucciones básicas...
http://www.lemon64.com/forum/viewtopic.php?t=57524
Alguien tiene ganas de experimentar? Sería siempre con juegos multi-carga, claro...
Gracias por adelantado!!!
-
Y oye, como he dicho en el otro foro... un grupo de releases en .CRT sería muy útil para la comunidad commodoriana en general...
Yo por ejemplo NECESITO los multicarga en español que existen actualmente sacados y transferidos de la mano del amigo Bieno...
-
En su día, hace ya unos años, hice esto con el Knight'n'Grail y me salió bien a la primera ( vaya sorpresa me llevé ). Lo colgué en CSDB y me lo fulminaron al rato ya que, y tenían razón, lo hice desde un crack de ONSLAUGHT ( vaya ironía ) y sin pedir permiso ni nada. Está en el pack ese de juegos para EF que hay en el otro tema: http://retroinvaders.com/commodoremania/foro/index.php/topic,1380.0.html
Lo que no recuerdo es el programa que usé. A ver si lo encuentro.
-
La utilidad se llama disk2easyflash. Lo añado pero no me funciona. No se si la falta algún fichero o es que el güindous este no me lo permite ejecutar. Se puede encontrar en Forum64: http://www.forum64.de/wbb3/board65-neue-hardware/board284-massenspeicher/board292-easyflash/33293-disk-to-easyflash/
-
Y oye, como he dicho en el otro foro... un grupo de releases en .CRT sería muy útil para la comunidad commodoriana en general...
Yo por ejemplo NECESITO los multicarga en español que existen actualmente sacados y transferidos de la mano del amigo Bieno...
Me acabas de dar una idea para agregar al CSDbes, no sólo poner el enlace sino también si es PRG, TAP, D64, CRT. Y ya hilando más fino, si es multicarga.
-
La utilidad se llama disk2easyflash. Lo añado pero no me funciona. No se si la falta algún fichero o es que el güindous este no me lo permite ejecutar. Se puede encontrar en Forum64: http://www.forum64.de/wbb3/board65-neue-hardware/board284-massenspeicher/board292-easyflash/33293-disk-to-easyflash/
Yaya, si ese lo tengo ya localizao... pero la gente dice que las cosas salen regular... A ver, habrá que probarlo...
EN CUANTO ENCUENTRE UNA PUÑETERA TELE DE TUBO EN MADRID!!!
-
Aunque voy a hacer ya unos "probares" en el emu, a ver si pita la flauta...
-
ostia,por ahora el DIE HARD funciona!!! No me lo puedo creer! :O
-
VAle ya no funciona xDDD Solo ha cargao la intro...
La verdad es que sólo he probao la opción -c ... seguiré experimentando
-
Nada, intentos inútiles... carga un poco y yasta, luego pide disco xD
Bieno, tú hiciste algo especial además del disk2 -c?
PD - Siento haber usado el foro como un chat :P Parezco nuevo
-
Bueno, es tu hilo ;D.
Toca desensamblador y buscar la rutina de carga.
Aunque no se como leé un fichero desde cartucho, me imagino que leerá el bloque que necesita, pero ¿como le dices donde?. Si hay 20 cargas de niveles, son 20 bloques diferentes de memoria a acceder.
Demasiadas incognitas para mi.
-
No te preocupes, traslado tus preguntas a Lemon
-
Quizás sólo se cambia el número de dispositivo, en vez de #8 sería #n :?
-
Eso seria lo fácil .
A no ser que usen esa area que Bieno me comento para meter los bloques \ niveles a cargar del juego y se acceda con el 1 TAPE...
Vaaale. Usan algo llamado EasyAPI. Permite escribir y leer un bin.
Lo malo es que mi ingles esta al nivel de Ana envasedecristal y la traducción online es horrible.
Aqui te dejo el enlace a los manuales del programador para ver si sacamos agua clara.
Odio los tablets, no hay dos que manejen igual las descargas.
https://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=search&rurl=translate.google.es&sl=en&u=http://skoe.de/easyflash/doku.php%3Fid%3Ddeveldocs&usg=ALkJrhjYk_qDmZs1pxYP4ZL1GGhxjjwUzg (https://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=search&rurl=translate.google.es&sl=en&u=http://skoe.de/easyflash/doku.php%3Fid%3Ddeveldocs&usg=ALkJrhjYk_qDmZs1pxYP4ZL1GGhxjjwUzg)
-
Eres capaz de localizar los párrafos que te pueden hacer falta, y hacerle un copy/paste?
-
Haré algo mejor que eso, volvere a usar UN LIBRO!!! En concreto, UN DICCIONARIO!!! Si, estoy así de loco. ;D
Intentaré recuperar lo olvidado de inglés a ver si podemos entre todos apañar el tema.
-
Uhm... no es mucho tampoco... Me pongo? Me pongo xD
Dale tú caña, pero yo también le meteré caña a todo el texto (sacaré el uniforme de traductor, que lo guardé en el armario cuando me jarté de la industria editorial española)
A ver si en unos días te lo tengo traducido, y de paso, oye, me entero yo también...
Lo que no sé mucho es de léxico real de como se traducen los comandos y acciones de código máquina...
-
Me he bajado la imagen D64 de Die Hard Nord east crackers.
De momento una vez se descomprime el programa , sale la demo y vuelve a descomprimir para pasar a leer algun fichero en el disco, utiliza las rutinas del kernel $F3D5, la cual accede al bus IEC.
¿Como accede el EF a los ficheros?. Como cinta o disco?.
A ti te carga la demo de entrada y después, en la segunda descompresión te pide disco ¿no?.
En la captura que adjunto, ahí aparece el momento justo donde salta a leer disco para cargar la pantalla inicial del juego en si.
-
Exactamente... se queda el "led" parpadeando en el emulador justo después del Bruce Willis feo ese...
No tendríamos que buscar mejor el disco original, para que no nos peguen? O simplemente estamos experimentando?
-
Voy a intentar preguntar en Lemon, ok?
-
Estoy inventando el vino con gaseosa ;D
De momento no deberia importar mucho qué disco usemos, cuando pillemos el truco, se hace con lo que corresponda. Bueno, SI pillamos el truco ;)
Después del Bruce Willis feo, vuelve a usar las rutinas del kernel. Adoro el monitor del VICE.
El programa que convierte d64 a crt deberia de funcionar...
Mañana me compro una libreta DIN-A4 y vuelvo a empezar. Hay mucho que apuntar.
Tu pregunta, que así se llega a Roma.
-
Aquí está el hilo abierto... les he dicho que nos vayan diciendo que nos podemos encontrar...
http://www.lemon64.com/forum/viewtopic.php?t=57542
-
Yo no sé si es que estoy usando mal el programa o qué...
pero vaya, de cinco juegos que probé, ni uno...
-
Ya he traducido la primera mitad del primer PDF... mañana me pongo otro ratito y lo termino ;)
-
Qué barbaro!!!
Estas hecho una máquina. Grácias por traducirlo. ;)
Contra más información tengamos en nuestro poder, mejor.
Por si te interesa trastear, una vez cargues el VICE, mira en FICHERO/Monitor Alt+M.
Aparecerá la ventana del monitor:
(http://retroinvaders.com/commodoremania/foro/index.php?action=dlattach;topic=1382.0;attach=1762;image)
Lo realmente interesante es los registros de estado , debajo de PC (contador de programa) aparece la direccion que se esta ejecutando.
Con el desensamblador a tiempo real, usando los iconos de saltar, puedes hacer ir avanzando el programa paso a paso o en bloques. He usado saltar hasta el return para avanzar hasta encontrar cuando usaba las rutinas de carga kernel.
El juego debes cargarlo y ejecutarlo antes de abrir toda ese ventanal informativo.
-
Buenas,
Yo también he estado experimentando con otros D64, por ahora sin éxito. He probado también el Die Hard y no carga tras la intro. Si usa un fastloader o la operación OPEN del kernal, entonces normal que no funcione.
Respecto a Easyflash, se supone que no accede a cinta ni disco, no? El contenido del cartucho se mapea a RAM en $8000 o $A000. ¿O no es esa vuestra pregunta?
Mañana me voy a leer el código de disk2easyflash, tengo curiosidad por ver cómo lo han hecho..
-
Buenas,
Yo también he estado experimentando con otros D64, por ahora sin éxito. He probado también el Die Hard y no carga tras la intro. Si usa un fastloader o la operación OPEN del kernal, entonces normal que no funcione.
Respecto a Easyflash, se supone que no accede a cinta ni disco, no? El contenido del cartucho se mapea a RAM en $8000 o $A000. ¿O no es esa vuestra pregunta?
Mañana me voy a leer el código de disk2easyflash, tengo curiosidad por ver cómo lo han hecho..
Ahí está el tema, se supone que al acceder al fichero con el nivel que requiera el juego en ese momento no creo que anden mapeando la memoria del cartucho.
Bieno comento que los juegos son capaces de escribir los records en el CRT y leyendo los manuales del programador parece ser que usa algo llamado EASYAPI , no he comprendido demasiado (por el inglés) pero parece ser que esta API es la que permite leer y escribir. Supongo que se puede acceder a ella pero ni idea de como. A lo mejor es con una dirección diferente como el 7 en lugar del 8 (disco) o 1 (tape).
Lo mejor seria arrancar un CRT multicarga y monitorizar su ejecución paso a paso para averiguar como accede.
-
El EasyAPI es un conjunto de funciones que te permiten leer y escribir de la memoria flash del cartucho. Son como un "driver" para que el código del C64 pueda acceder a esa zona. La mayoría de cartuchos no lo necesitan y funcionan a la vieja usanza: se mapea un banco a memoria que contiene el "loader" del cartucho, el cual copia el resto de datos bajo demanda (cambiando de banco cuando haga falta).
Sin embargo si quieres escribir hiscores y tal a "disco", en el caso de un cartucho easyflash tienes que escribir a la memoria flash y eso lo tienes que hacer con EasyAPI. Los cartuchos con formato EasyFlash tienen el EasyAPI copiado en el primer banco de memoria que se mapea en $E000 al arrancar el cartucho (reset).
-
Me imagino que convertir un juego implica dos problemas:
- Si el juego usa esa zona de memoria del Easyflash, modificarlo para que no interfiera
- Todas las lecturas a disco modificarlas para que hagan uso del segmento de memoria
- Si hay escrituras, otro tanto....
No parece tarea fácil... :S
-
Si se parte de un D64 multicarga, normalmente tendrá rutinas de carga de disco propias más o menos sofisticadas. Si el cracker ha puesto un hiscore saver, habrá añadido rutinas de escritura.
Para convertir el juego habría que:
- Reorganizar los datos del disco en N bancos de la ROM del cartucho. Esto puede ser más o menos fácil en función de la estructura de ficheros que use el programa. Hay algunos que tienen un montón de pequeños ficheritos y otros que tienen un único fichero gordo al que acceden constantemente.
- Sustituir las llamadas a la rutina de carga de disco por rutinas que accedan al banco del CRT donde se guarde la info equivalente. (Ejemplo, acceder al banco 3 y copiar N bytes a partir del offset M)
-
Explica lo que me has dicho por Lemon aquí Zub :) que allí parece que pasan un poco del tema...
-
Hola de nuevo. Dichosas vacaciones...
Creo que el primer paso seria descompactar el juego para ver si así, el programa convertidor de formatos es capaz de modificar las rutinas necesarias.
¿Podeís enviarme un privado (quién sea) con un juego D64 original y la imagen CRT en la que el programa conversor haya funcionado?.
A ver si podemos sacar el como trabaja realmente.
-
Me he picado con este tema. Estoy usando el CRT de Salamander de Forum64.de, que lo han generado a partir de la versión IDE64 de Salamander que hay en CSDB. Dicha versión ya tenía el trabajo sucio hecho, porque habian quitado el fastloader y lo habían sustituído por llamadas al LOAD del Kernal (mismo requisito de IDE64 y Disk2Easyflash).
La aplicación lo que hace es:
- Crea un "launcher" de Easyflash que se ejecuta al arrancar (con el logo, etc)
- Copia un "KAPI" que carga el juego. Se copia en la posición $8000
- Parsea el D64 y extrae el nombre, tamaño y posición de carga de cada archivo PRG que haya en el disco. Ejemplo: Salamander.prg, Level1.prg, Level2.prg, etc.
- Copia dichos ficheros en los sucesivos bancos de Easyflash. Se actualiza la tabla anterior, de modo que cada fichero está en la posición X del banco Y, secuencialmente.
El KAPI copia en $DF00 (255 bytes libres de RAM que tiene el cartucho Easyflash) una rutina de carga que para cada fichero lee la tabla anterior y accede a los bancos de Easyflash manipulando $DE00 y $DE02.
Se sustituye el vector puntero $330-$331 para que apunte a $DF00 en lugar de la rutina por defecto KERNAL LOAD ($F4A5) que tenía el juego. De ese modo, las llamadas a LOAD se atienden en la rutina nueva.
Si el juego usa un sistema de carga diferente, no funciona. Ejemplo: si tiene un fastloader, o accede a los tracks del disco y lee byte a byte, etc.
-
Qué crack !!! ;)
Mas rápido imposible.
-
¿Hay alguna manera rápida de pasar un PRG a CRT?, se trata de un PRG sin lecturas a disco ni nada.
Encontré esto: C64 PRG to CRT converter, un conversor hecho en Python. http://www.frank-buss.de/c64/prg2crt/index.html
Pero no lo pude hacer funcionar, como no tengo idea de Python no sé si es que no me va el lenguaje en si o me falta algo o dio un error... ni idea...
También probé el que puso Bieno pero no va en Windows 10 ni tampoco usando las opciones de compatibilidad.
-
sí, yo tengo un software muy sencillo, eso sí, funciona bajo DOS o el CMD de windows... si quieres mándame el PRG por mail y te lo hago en un pis pas (mañana, ahora me voy a la cama xD)
-
Apenas tenga el prg te lo envío!
-
Alguno puede ir poniendo si le está dando resultado y le funciona? Me he leído el tema por encima pero soy bastante lento y tendré que dedicarle un poco de tiempo por lo que si no funciona indicad qué es mejor no usar y así me ahorro problemas. Muchas gracias!
-
yo con el disk2easyflash.exe he conseguido algunos resultados... y en este hilo
http://www.forum64.de/index.php?thread/47989-disk2easyflash-fertige-images/&s=1b29808bbd3bc807f3c5ebd5d5948d1e9190f536
suelen ser amables con las peticiones... a mí me pasaron el Die Hard a .CRT, y eso que era de los complicaos
-
Ah!! ese disk2easyflash.exe es para DOS?? yo lo estaba ejecutando desde Windows!
-
funciona bajo el cmd ... así lo ejecuto yo vaya
-
Cuando tenga un rato lo intento, así no te molesto.
-
Algo pude hacer...
- disk2easyflash.exe: sabiendo que es vía CMD estuve probando y conseguí una conversión, pero es de D64 a CRT (prefiero desde el PRG limpito aunque dependiendo el caso sería lo mismo) y lo peor es que le mete una cabecera e historias de EasyFlash.
- prg2crt.py: instalé Python (bien, no como antes que hice una chapuza) y pude hacer funcionar este pequeño script. Parece que va bien, no mete nada raro y es de PRG a CRT directo.
Ya agrego estas herramientas en el hilo de desarrollo cruzado.
-
¿Cómo se pasa de TAP a T64?, o sea, ¿se puede??
Lo pregunto porque el formato TAP es mucho mas grande y lento, en cambio el T64 ocupa mucho menos y carga rapido.
He mirado un poco por ahí pero no entiendo ni encuentro exactamente.
-
Puedes usar WAV-PRG el que se usa normalmente para convertir TAP, T64 y PRG a formato de audio WAV.
http://wav-prg.sourceforge.net/ (http://wav-prg.sourceforge.net/)
-
Muchas gracias, lo he probado y mas o menos entendido :P
Digo mas o menos porque pude crear PRG desde TAP pero no puedo crear T64, o sea, lo crea pero es un archivo de 1 o 2 kb. ¿cuál puede ser el problema?
Por ejemplo el TAP0 http://ind.commodoremania.com/1038
Pero lo he probado con otros y lo mismo.
-
Creo que no es tan sencillo, depende del cargador que utilice, y si es multicarga olvidate.
En el WAV-PRG aparece una pestaña que pone "LOADER" ahi creo que deberias poner el cargador que utilice: Novaload, Turbo Tape..... si está el que usa el juego debería funcionar, cuando pueda cargo el TAP para verlo y lo pruebo.
-
Haa! Seguro que es eso, tiene cargador, luego lo intento de nuevo!
-
No tuve mucha suerte :P
El Target Renegado no sé qué loader tiene. Probé un Ghostn Goblins que tiene Novaload pero tampoco funcionó.
De todos modos ya seguiré probando con otros.