Reproducciones de SNES.

kabazorro escribió:@msejcs Gracias por responder, formule mal mi pregunta, se que los dos son lorom, pero en que tarjeta deberia ponerlos aon01, aon 02, aon 10, etc. Pregunto por que me han dicho anteriormente que no hay problema que los arme en cualquier tarjeta pero, me ha pasado que monto las memorias y luego no funcionan hasta que las cambio.


Tendrian que funcionar sin problemas, les pasas el bankswap???
Tienen header las roms???
sabes que son lorom, cuanta sram usa? Si es que la usa, cuanta memoria usa? Te vas a snes central y miras que placas usan esa sram y esa memoria que sean lorom y buscas que juegos usan esas placas
1RX escribió:Hola, hace tiempo que quería colocar una info acá.

Hace tiempo intenté transformar una PCB 1A3M en una 1J3M para usar juegos HIROM en una PCB LOROM, el motivo, pues es más facil encontrar a buen precio la placa 1A3M.

Intenté por medio de cables, pero aunque funcionó para juegos sin saves, no funcionó para juegos con saves.

Osea: para convertir las placas 1A0N en 1J0N SI FUNCIONA recableando.
Imagen

para placas con saves (Funciona pero no guarda saves):

ImagenImagen

Luego me puse en marcha para hacer una placa universal de pruebas que en si funcionó bastante bien:
]


Que bueno que seguistes y lograste conseguirlo, gracias por tus aportes bro [beer] [beer]
@lito69 Hola, no usan sram, pero ayer hice el nightmare busters y me quedo de pelos en una aon 10, el día de hoy por al noche probare el smurfs en aon 20 y ya les platicare si funciono, gracias por responder y saludos.
@1RX
Después de probar muchas veces en python 2.7.13 también probado en python 3.7 y el codigo, no consigo que funcione, lo he ajustado para que no de errores, cuando por fin parece que funciona, me pide el archivo .smc lo acepta y ya no hace nada mas, ni mensaje de error, ni avisos ni crea ningún archivo adicional ni modifica el original.
Podrías explicar como lo hiciste funcionar?
saludos
Hola, soy nuevo por este hilo, de hecho no tengo ni idea de hacer reproducciones pero me he estado informando un poco, a ver si me podéis ayudar:

Hace tiempo que tengo un cartucho de un Rockman X3 japonés, a este le cambie el CIC por uno PAL de un Killer Instinct para que funcionase en mi consola sin modificar. Bien, lo que quiero ahora es modificar ese cartucho Rockman X3 japo ponerle una EPROM con la ROM PAL y hacerme una repro con caja y manual para consumo propio (he estado mirando para comprarme directamente y los precios son bastante desorbitados [+risas] )

No voy a comprar un programador para un solo juego, pero tengo localizada una página para comprar las EPROM dándote la posibilidad de programártela ellos mandándoles la ROM. La cuestión es que no sé que modelo de chip hay que comprar, ni el diagrama para soldar los cables [buuuaaaa] , más que nada saber el modelo concreto. El cartucho tiene esta placa, SHVC-1DC0N-01, y el juego es de 16Mbit en un solo chip, no dividido (según he leído buscando en Google)

Imagen

He leído en el hilo unos cuantos que lo han hecho con un Rockman X2 o X3, espero que me podais dar un poco de luz, gracias.
Es patillaje estándar de Nintendo.

Una 29F032/29F016 con adaptador te valdría... La correspondencia es pin a pin.
Pues muchas gracias por contestar, a ver si en estos días la pido y de paso hago fotos del proceso para compartirlo por aquí ;)
jomjom escribió:Pues muchas gracias por contestar, a ver si en estos días la pido y de paso hago fotos del proceso para compartirlo por aquí ;)

viewtopic.php?p=1743629012
CoLvIN escribió:@1RX
Después de probar muchas veces en python 2.7.13 también probado en python 3.7 y el codigo, no consigo que funcione, lo he ajustado para que no de errores, cuando por fin parece que funciona, me pide el archivo .smc lo acepta y ya no hace nada mas, ni mensaje de error, ni avisos ni crea ningún archivo adicional ni modifica el original.
Podrías explicar como lo hiciste funcionar?
saludos


Hola, te escribo desde un pc que no es el que uso para mi lab de repros, por lo que no te puedo decir exactamente que versión del python uso, ni cual es exactamente el script que uso, pero esto deberìa ayudar:

Recordar guardar el archivo con extension pyw

Revisando el hilo, veo que alguien menciona que no funciona en la version 3, y que si funcionarìa en la version 2.7, luego alguien menciona la version 2.6, aunque esto ultimo no lo entiendo bien ya que lo menciona de esta menera:
"Petit retour: mon problème venait bien de python 3. Le script fonctionne nickel sous la v2.6."

rescato el siguiente comentario:

Para una rom 16mbit: A20 -> cart 40
Para una ROM de 32mbit: A21 -> cart40


Las siguientes son las versiones que están en el foro ultimate-console

Version inicial:

#!/usr/bin/python

import os, sys

if __name__ == "__main__":
   if len(sys.argv) < 3:
      print "Syntax should be %s <input file> <output file>" % os.path.basename(sys.argv[0])
      sys.exit()
   else:
# process basic checks
      try:
         input = open(sys.argv[1], "rb")
      except:
         print "Input file does not exist"
         sys.exit()
      try:
         output = open(sys.argv[2], "wb")
      except:
         print "Can't write output file"
         input.close()
         sys.exit()
         
# checks were ok, let's proceed with the real work
# reading input file to a byte array
      data = bytearray(input.read())

# init a 4MB empty bytearray (needed to swap, regardless of the actual rom size)
      buffer = bytearray()
      for i in range(2**22): buffer.append(0)

# let's do the swap   
      count = 0   
      for i in range(len(data)):
         addr = (i & 0x7fff) + ((i & 0x008000) << 6) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) + ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
         if addr != i: count += 1
         buffer[addr] = data[i]
      print "Swapped %s (%s) addresses" % (count, hex(count))

# writing output file
      output.write(buffer)

# close file handles
      input.close()
      output.close()


Se indica que debería ser utilizada de la siguiente manera:

I:\Python2.7>python.exe swap.py Claymates.smc:\Python2.7>python.exe swap.py Claymates.smc
Swapped 1015808 (0xf8000) addressesSwapped 1015808 (0xf8000) addresses


Version ajustada:
comentario de usuario que postea el codigo:
"Esto calcula el tamaño del rom de origen en potencias de dos y después descomprime A15 según el tamaño de la ROM, por lo que para 32Mb A15 -> A21, para 16Mb A15 -> A20, etc."
#!/usr/bin/python

import os, sysimport os, sys

if __name__ == "__main__":if __name__ == "__main__":
   if len(sys.argv) < 3:if len(sys.argv) < 3:
      print "Syntax should be %s <input file> <output file>" % os.path.basename(sys.argv[0])print "Syntax should be %s <input file> <output file>" % os.path.basename(sys.argv[0])
      sys.exit().exit()
   else:else:
# process basic checks# process basic checks
      try:try:
         input = open(sys.argv[1], "rb")= open(sys.argv[1], "rb")
      except:except:
         print "Input file does not exist"print "Input file does not exist"
         sys.exit().exit()
      try:try:
         output = open(sys.argv[2], "wb")= open(sys.argv[2], "wb")
      except:except:
         print "Can't write output file"print "Can't write output file"
         input.close().close()
         sys.exit().exit()
         
# checks were ok, let's proceed with the real work# checks were ok, let's proceed with the real work
# reading input file to a byte array# reading input file to a byte array
      data = bytearray(input.read())= bytearray(input.read())

# calculating rom size in 2 exponants# calculating rom size in 2 exponants
      expsize = 0= 0
      bytesize = len(data)= len(data)
      while bytesize > 1:while bytesize > 1:
         expsize += 1+= 1
         bytesize = bytesize // 2= bytesize // 2
      
# init a proper size empty bytearray# init a proper size empty bytearray
      buffer = bytearray()= bytearray()
      for i in range(2**expsize): buffer.append(0)for i in range(2**expsize): buffer.append(0)

# let's do the swap   # let's do the swap   
      count = 0   = 0   
      for i in range(len(data)):for i in range(len(data)):
         addr = (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) +   ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)= (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) +   ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
         if addr != i: count += 1if addr != i: count += 1
         buffer[addr] = data[i][addr] = data[i]
      print "Swapped %s (%s) addresses" % (count, hex(count))print "Swapped %s (%s) addresses" % (count, hex(count))

# writing output file# writing output file
      output.write(buffer).write(buffer)

# close file handles# close file handles
      input.close().close()
      output.close().close()


Version que usa dialogos para buscar el archivo, facil de usar.

import os, sys, tkFileDialog,Tkinter os, sys, tkFileDialog,Tkinter

root = Tkinter.Tk()= Tkinter.Tk()
root.withdraw().withdraw()

formats = [ ('Roms Super Nintendo SMC','.smc'),('Roms Super Nintendo SFC','.sfc'),('Fichier Bin','.bin'),('Roms Super Nintendo','.smc .sfc .bin') ]= [ ('Roms Super Nintendo SMC','.smc'),('Roms Super Nintendo SFC','.sfc'),('Fichier Bin','.bin'),('Roms Super Nintendo','.smc .sfc .bin') ]

input = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=formats,title='Choisissez le fichier à swapper')= tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=formats,title='Choisissez le fichier à swapper')
if not input:if not input:
        print "Impossible d'ouvrir le fichier!"print "Impossible d'ouvrir le fichier!"
        sys.exit().exit()

output = tkFileDialog.asksaveasfile(parent=root,mode='wb',filetypes=formats,title='Choisissez le fichier de sortie')= tkFileDialog.asksaveasfile(parent=root,mode='wb',filetypes=formats,title='Choisissez le fichier de sortie')
if not output:if not output:
        print "Impossible de créer le fichier de sortie!"print "Impossible de créer le fichier de sortie!"
        sys.exit().exit()
       

# reading input file to a byte array# reading input file to a byte array
data = bytearray(input.read())= bytearray(input.read())

# calculating rom size in 2 exponants# calculating rom size in 2 exponants
expsize = 0= 0
bytesize = len(data)= len(data)
while bytesize > 1:while bytesize > 1:
        expsize += 1+= 1
        bytesize = bytesize // 2= bytesize // 2

# init a proper size empty bytearray# init a proper size empty bytearray
buffer = bytearray()= bytearray()
for i in range(2**expsize): buffer.append(0)for i in range(2**expsize): buffer.append(0)

# let's do the swap   # let's do the swap   
count = 0   = 0   
for i in range(len(data)):for i in range(len(data)):
        addr = (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) +   ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)= (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) +   ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
        if addr != i: count += 1if addr != i: count += 1
        buffer[addr] = data[i][addr] = data[i]
print "Swapped %s (%s) addresses" % (count, hex(count))print "Swapped %s (%s) addresses" % (count, hex(count))

# writing output file# writing output file
output.write(buffer).write(buffer)

# close file handles# close file handles
input.close().close()
output.close().close()

Bueno, pues va tocando desempolvar el soldador...

Imagen


Aunque sinceramente me gustaba más el antiguo:

Imagen






PD: por cierto, lleva protección de región

Imagen
Se sabe ya qué diferencias tienen las dos roms, o tenemos que esperar unas horas más todavia?
Troopa Jr escribió:Se sabe ya qué diferencias tienen las dos roms, o tenemos que esperar unas horas más todavia?



El parche para pasar de la rom beta a la final ocupa casi 900kb, así que han tocado bastantes cosas de la rom por no decir todo. Aunque a decir verdad sólo veo diferencias gráficas, a priori jugablemente es idéntica a la beta.

Lo bueno es que sigue ocupando 8mbit y no 16mbit como (al menos yo) esperaba y la repro con el Stunt Race funciona perfectamente.

Lo malo es que esto no es la rom final ni de coña ya que siguen faltando cosas como el multijugador... diría que le han hecho un buen lavado de cara para la ocasión y punto. Eso o que con la beta aspiraban a demasiado.


https://www.youtube.com/watch?v=Tz8FixIKnq4
josete2k escribió:
Troopa Jr escribió:Se sabe ya qué diferencias tienen las dos roms, o tenemos que esperar unas horas más todavia?



El parche para pasar de la rom beta a la final ocupa casi 900kb, así que han tocado bastantes cosas de la rom por no decir todo. Aunque a decir verdad sólo veo diferencias gráficas, a priori jugablemente es idéntica a la beta.

Lo bueno es que sigue ocupando 8mbit y no 16mbit como (al menos yo) esperaba y la repro con el Stunt Race funciona perfectamente.

Lo malo es que esto no es la rom final ni de coña ya que siguen faltando cosas como el multijugador... diría que le han hecho un buen lavado de cara para la ocasión y punto. Eso o que con la beta aspiraban a demasiado.


https://www.youtube.com/watch?v=Tz8FixIKnq4


Yo creo que si que es la version final, pero que aspiraban a demasiado o algo por el estilo, pero hey, no esta mal han sacado un juego despues de muchos años cuando se daba por perdido, ahora a ver si se animan a sacar los juegos de la Satellaview.
Joer, por lo que veo las roms no son ntsc o al menos esta no lo es.
lito69 escribió:Joer, por lo que veo las roms no son ntsc o al menos esta no lo es.



Sí, la rom es ntsc... La que lleva la snes mini y está dumpeada.

La de este hilo es una modificada a pal.
josete2k escribió:
lito69 escribió:Joer, por lo que veo las roms no son ntsc o al menos esta no lo es.



Sí, la rom es ntsc... La que lleva la snes mini y está dumpeada.

La de este hilo es una modificada a pal.

Ok ok. Vamos, que la has pasado tú a pal, tengo la ntsc yo, menos mal.
Gracias igualmente por avisar
Saludos a todos.Hace algun tiempo ya comente lo que voy a preguntar ahora,pero nadie me supo dar una respuesta clara.como ha pasado algun tiempo,vuelvo a plantearla a ver si ya se puede saber algo.
Tengo varias repros de las que me quiero deshacer,pero el problema es que solo funcionan en mi consola.
El tipo que las hacia las probaba en su snes,confirmaba delante de mi que funcionaban,yo me las llevaba a casa y no me funcionaban en mi consola.Le comente que tenia super cic en la consola y entonces lo vio claro.modifico algo en las repros que me vendio(no se si soldaba o desoldaba,no lo tengo claro).me las lleve a casa sin probarlas,y todo estaba correcto,funcionaban bien.mi sorpresa fue cuando despues de comprar un everdrive quise regalar un par de esas repros y vender otro par,pero no funcionaban en otras snes.solo en la mia.bueno,como supongo que la clave esta en el super cic,creo que en otras snes con super cic tambien funcionarian
Que modificacion deberia hacer a esos cartuchos para que funcionen en todas las snes?
gracias anticipadas.
@tanaka69
pon una foto de la placa abierta, posiblemente te haya modificado el cic
igual puedes instalar un cic universal en el cartucho
Troopa Jr escribió:@tanaka69
pon una foto de la placa abierta, posiblemente te haya modificado el cic
igual puedes instalar un cic universal en el cartucho

pero foto de la placa del juego o de la consola?
si es del cartucho en cuanto me dejen un destornillador hago la foto.
por cierto tengo una repro comprada en aliexpress del rendering ranger r2 y esa si que funciona,pero me da unos destellos blancos en pantalla,como saltos de imagen,no se si me explico.supongo que tambien sera culpa del super cic de snes.y si pulso reset en la consola,en lugar de cambiar de 50hz a 60hz,se reinicia como si no tuviese super cic,todo muy raro en esa repro.
gracias
Revisando mi lab, actualizo info del script de python para hacer swap del pinout de un rom HI a un pinout LO

La version de python que uso es la 2.7.11

Este es el escript que yo uso actualmente y he probado que funciona con una rom de 4 MB y saves de 64Kb utilizando una board 1A3M:

import os, sys, tkFileDialog,Tkinter

root = Tkinter.Tk()
root.withdraw()

formats = [ ('Roms Super Nintendo SMC','.smc'),('Roms Super Nintendo SFC','.sfc'),('Fichier Bin','.bin'),('Roms Super Nintendo','.smc .sfc .bin') ]

print "Swap HIrom to Lo rom, please select file"
print "This can take a while, please wait untill this windows closes itself."


input = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=formats,title='Select HIrom file to swap to LOrom')
if not input:
        print "Error: cannot open file"
        sys.exit()

output = tkFileDialog.asksaveasfile(parent=root,mode='wb',filetypes=formats,title='Create output file')
if not output:
        print "Error: cannot create output file"
        sys.exit()
       

# reading input file to a byte array
data = bytearray(input.read())

# calculating rom size in 2 exponants
expsize = 0
bytesize = len(data)
while bytesize > 1:
        expsize += 1
        bytesize = bytesize // 2

# init a proper size empty bytearray
buffer = bytearray()
for i in range(2**expsize): buffer.append(0)

# let's do the swap   
count = 0   
for i in range(len(data)):
        addr = (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) +   ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
        if addr != i: count += 1
        buffer[addr] = data[i]
print "Swapped %s (%s) addresses" % (count, hex(count))

# writing output file
output.write(buffer)

# close file handles
input.close()
output.close()


@tanaka69 Podría ser que el que te vendía las repros, para no liarse en dar explicaciones o explicaciones que el considerase que no tenia que darte, retirase el Cic/SuperCic del cartucho y al tener tu SuperCic en la consola, creo que funciona sin problemas, o eso se me hizo leer en este Hilo bastante atrás, que una consola con superCic lee cartuchos sin Cic.
Esa podría ser la explicación de porque a ti si y a tus colegas no.

Otra cosa en frío sin ver fotos no se me ocurre

Saludos
CoLvIN escribió:@tanaka69 Podría ser que el que te vendía las repros, para no liarse en dar explicaciones o explicaciones que el considerase que no tenia que darte, retirase el Cic/SuperCic del cartucho y al tener tu SuperCic en la consola, creo que funciona sin problemas, o eso se me hizo leer en este Hilo bastante atrás, que una consola con superCic lee cartuchos sin Cic.
Esa podría ser la explicación de porque a ti si y a tus colegas no.

Otra cosa en frío sin ver fotos no se me ocurre

Saludos

pues si eso es asi,tiene mucho sentido.gracias .a ver si consigo algo para abrir el catucho y hago fotos
lito69 escribió:
jomjom escribió:Pues muchas gracias por contestar, a ver si en estos días la pido y de paso hago fotos del proceso para compartirlo por aquí ;)

viewtopic.php?p=1743629012


Muchas gracias por las fotos, no las había visto, en principio parece que es igual [tadoramo], entonces tengo que dejar sin soldar lo que se ve en la foto no?
Hola a todos. Despues de hacer repros sencillas siguiendo el tutorial con las 27c801 ahora he intentado con memorias 29F016B y me está dando problemas una repro de chrono trigger en español.

Estoy utilizando dos 29F016B en un Chrono Japones BJ3M-20. He bajado la rom con el CRC correcto, la parcheo, la pruebo en el emulador y todo correcto. Divido el archivo de 4096kB en dos partes con la opción split 2048 KB del SNES ROM UTILITY (no hago bankswap ya que es una 29F016B) y me da dos archivos .sfc.

Lo grabo en el TL866 con el adaptador TSOP40A, como tengo unas de 48 patillas levanto las 8 patas NC de arriba y abajo. Monto las dos flash en adaptadores tipo III.1 con la posición correcta y vigilando no hacer puentes. El resultado la mayoría de las veces es pantalla en negro, una sola vez he conseguido que aparezca el péndulo y se ha colgado al instante.

He comprobado continuidades y, de lo que he podido seguir, daba bien. Dejo fotos por si me podéis decir si me equivoco en algo...

https://imgur.com/tVdfUiN
https://imgur.com/CScG3mL

Esta placa tiene el MAD preparado para ver 16mb de cada memoria, que es lo que estoy haciendo. No se que puede estar mal.

He leído el tema de realizar los dos puentes en la placa tipo III, yo no lo he hecho porque, según he entendido, solo se usa para grabar si no tienes el adaptador TSOP40A de 8 bits. Igualmente, probé con los puentes y tampoco.

Muchas gracias.

EDIT: Ya lo he solucionado. He ido a por papel de lija y he limado los conectores, ya funciona :)

EDIT 2: Ahora me da cuelgues aleatorios, la música sigue pero se bloquea en ventanas de texto de diferentes momentos. Supongo que tendré que repasar las conexiones. ¿A alguien la ha pasado algo así?
Richesco1 escribió:
EDIT 2: Ahora me da cuelgues aleatorios, la música sigue pero se bloquea en ventanas de texto de diferentes momentos. Supongo que tendré que repasar las conexiones. ¿A alguien la ha pasado algo así?


Casi siempre es eso, aunque tambien pueden ser los pines de la memoria montada sobre el aaptador.... Primero repasa las de la pcb y si no, mira si hay una soldadura mal hecha en la memoria montada en el adaptador
Richesco1 escribió:Hola a todos. Despues de hacer repros sencillas siguiendo el tutorial con las 27c801 ahora he intentado con memorias 29F016B y me está dando problemas una repro de chrono trigger en español.

Estoy utilizando dos 29F016B en un Chrono Japones BJ3M-20. He bajado la rom con el CRC correcto, la parcheo, la pruebo en el emulador y todo correcto. Divido el archivo de 4096kB en dos partes con la opción split 2048 KB del SNES ROM UTILITY (no hago bankswap ya que es una 29F016B) y me da dos archivos .sfc.

Lo grabo en el TL866 con el adaptador TSOP40A, como tengo unas de 48 patillas levanto las 8 patas NC de arriba y abajo. Monto las dos flash en adaptadores tipo III.1 con la posición correcta y vigilando no hacer puentes. El resultado la mayoría de las veces es pantalla en negro, una sola vez he conseguido que aparezca el péndulo y se ha colgado al instante.

He comprobado continuidades y, de lo que he podido seguir, daba bien. Dejo fotos por si me podéis decir si me equivoco en algo...

https://imgur.com/tVdfUiN
https://imgur.com/CScG3mL

Esta placa tiene el MAD preparado para ver 16mb de cada memoria, que es lo que estoy haciendo. No se que puede estar mal.

He leído el tema de realizar los dos puentes en la placa tipo III, yo no lo he hecho porque, según he entendido, solo se usa para grabar si no tienes el adaptador TSOP40A de 8 bits. Igualmente, probé con los puentes y tampoco.

Muchas gracias.

EDIT: Ya lo he solucionado. He ido a por papel de lija y he limado los conectores, ya funciona :)

EDIT 2: Ahora me da cuelgues aleatorios, la música sigue pero se bloquea en ventanas de texto de diferentes momentos. Supongo que tendré que repasar las conexiones. ¿A alguien la ha pasado algo así?


Me duele hasta a mi, usa una goma de borrar mejor, la lija puede joder alguna pista por suave que le des y volverte loco.

Esos síntomas que das son claros, un pin o dos no hacen contacto, ya sea de la memoria a la tsop, de la tsop a los pines o de los pads del cartucho a la consola
Hola a todos!!!
Gracias a este hilo he podido hacer repros simples ciertamente. Ya he pedido material para dar el siguiente paso.
Mientras quiero aclarar una duda, espero me puedan ayudar.
Quiero hacer una repro de Metal Warriors utilizando la PCB la SHVC-1A0N-30 (la misma que utiliza el juego), entiendo que debo usar 02 EPROMS 27C801.
Esta PCB tiene 36 agujeros luego de retirar la MASK ROM, las dos EPROM ocuparan 32 agujeros. Sobra A20, A21, +5V y A22, que entiendo tambien se utilizan cuando la ROM es de mas de 8 Mbits (16Mbits para mi caso).
La pregunta es ¿Donde se conectarían tales?
Es obvio que si cambio la PCB a una SHVC-2A0N-20 el tema es mas simple; pero la pregunta es, se puede con la 1A0N-30?

Edito: No existe SHVC-2A0N-20, pero si SHVC-2A0N-01/10/11. [beer]

Saludos
scali escribió:Hola a todos!!!
Gracias a este hilo he podido hacer repros simples ciertamente. Ya he pedido material para dar el siguiente paso.
Mientras quiero aclarar una duda, espero me puedan ayudar.
Quiero hacer una repro de Metal Warriors utilizando la PCB la SHVC-1A0N-30 (la misma que utiliza el juego), entiendo que debo usar 02 EPROMS 27C801.
Esta PCB tiene 36 agujeros luego de retirar la MASK ROM, las dos EPROM ocuparan 32 agujeros. Sobra A20, A21, +5V y A22, que entiendo tambien se utilizan cuando la ROM es de mas de 8 Mbits (16Mbits para mi caso).
La pregunta es ¿Donde se conectarían tales?
Es obvio que si cambio la PCB a una SHVC-2A0N-20 el tema es mas simple; pero la pregunta es, se puede con la 1A0N-30?

Edito: No existe SHVC-2A0N-20, pero si SHVC-2A0N-01/10/11. [beer]

Saludos


No te compliques, en tu caso si usas alguna placa 2A0N es suficiente.
Saludos
Gracias por la respuesta a @lito69 y @1RX. Repasaré todo con el multimetro en cuanto tenga tiempo.

lito69 escribió:Me duele hasta a mi, usa una goma de borrar mejor, la lija puede joder alguna pista por suave que le des y volverte loco.


Con el papel de lija solo le doy muy suave a los conectores metálicos que conectan con la consola, no a las pistas de la pcb [+risas]
Tienes razón!!!
Dejare esas PCB para las repros de 8Mbit

Edito:
Lo encontré en una página
hola!, Alguien ya ha probado la recien salida traduccion del juego Tengai Makyou Zero, ya confirmado que puede correr en hardware original.
juanmiglesias escribió:hola!, Alguien ya ha probado la recien salida traduccion del juego Tengai Makyou Zero, ya confirmado que puede correr en hardware original.

Eso que es? De que va?
Magno comentó que las PCB 1A3M no eran iguales en sus revisiones (01 pistas rutadas a 4 megas, la 02 y la 10 hasta 16 megas y la 20/30 hasta 32 megas), alguien me da una pista de como llegó a esa conclusión???
juanmiglesias escribió:hola!, Alguien ya ha probado la recien salida traduccion del juego Tengai Makyou Zero, ya confirmado que puede correr en hardware original.


Ya se confirmó antes de que saliera la traducción que funcionaba.
scali escribió:Magno comentó que las PCB 1A3M no eran iguales en sus revisiones (01 pistas rutadas a 4 megas, la 02 y la 10 hasta 16 megas y la 20/30 hasta 32 megas), alguien me da una pista de como llegó a esa conclusión???

La conclusión es que te fijes en el enrutado de las pistas correspondientes a A20 y A21.
No te lo digo del tirón para que llegues a conclusión tu mismo, si te lo explico de primeras, te pasara lo que a mi y al final no te enteraras de nada.
Saludos
Ahora sí acabé de leer todas las páginas, ya entiendo porque no se responden algunas preguntas (se han respondido todas xD) incluyendo las que yo hice en algún momento, acabé de anotar toda la iformacion posible, sigo esperando por el material, en los paises de Latinoamérica los pedidos por eBay demoran bastante!!
Saludos a todos y le iré comentando mis avances!! [buenazo]
@FFantasy6 pero no ha salido informacion de exactamente como particionar las roms o si?
juanmiglesias escribió:@FFantasy6 pero no ha salido informacion de exactamente como particionar las roms o si?


No has aplicado el parche?
Pero nos han dado muchas pistas, hasta el nombre del programa que utilizan (WINHEX)
scali escribió:Pero nos han dado muchas pistas, hasta el nombre del programa que utilizan (WINHEX)


Siempre que leas interpretes y si no funciona preguntes, te ayudara cualquiera, si de lo contrario como ocurre muchas veces sin leer, sin interesarse como hace mucha gente (no lo digo por nadie en concreto) entonces la ayuda recibida sera escasa o nula.
Así que tu tranquilo y si ves que algo no acabas de pillarlo, siempre puedes preguntar.
xD eso si si contesta Josete2k lo mismo necesitas un traductor o interpretador xDD o a Iker Jimenez xDD o era Pato??? :-?

Saludos ;)
@FFantasy6 si utilice la versión para higan que participan en tres partes, 8mbit del program, 32 de data (para el spc) y 8 de extended.
Leí la info técnica del spc7110 y su PCB y cre que ya encontré el método para hacer la reproduccion.
Lo que me confundía un poco era el hecho de la rom extended que imagino es la data extra que se genera para poder agregar los sprites necesarios, hoy o mañana hago mi primera prueba.
Llevo un tiempo pensandolo y creo que me voy a poner ya con el tema del hilo. Me interesa empezar con las reproducciones de Snes y me gustaría que me recomendarais algun programador en especial que vendan y que sea adecuado. He visto Willems por Wallapop desde 25€ hasta los 150€, y no se si fiarme o tirar de amazon o ebay.

Por el tema de electronica, soldaduras y tal no me preocupa ya que estuve unos cuantos años metido en eso, aunque si que grabé y borré memorias en su día.

Un saludo y gracias.
1RX escribió:Revisando mi lab, actualizo info del script de python para hacer swap del pinout de un rom HI a un pinout LO

La version de python que uso es la 2.7.11

Este es el escript que yo uso actualmente y he probado que funciona con una rom de 4 MB y saves de 64Kb utilizando una board 1A3M:

import os, sys, tkFileDialog,Tkinter

root = Tkinter.Tk()
root.withdraw()

formats = [ ('Roms Super Nintendo SMC','.smc'),('Roms Super Nintendo SFC','.sfc'),('Fichier Bin','.bin'),('Roms Super Nintendo','.smc .sfc .bin') ]

print "Swap HIrom to Lo rom, please select file"
print "This can take a while, please wait untill this windows closes itself."


input = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=formats,title='Select HIrom file to swap to LOrom')
if not input:
        print "Error: cannot open file"
        sys.exit()

output = tkFileDialog.asksaveasfile(parent=root,mode='wb',filetypes=formats,title='Create output file')
if not output:
        print "Error: cannot create output file"
        sys.exit()
       

# reading input file to a byte array
data = bytearray(input.read())

# calculating rom size in 2 exponants
expsize = 0
bytesize = len(data)
while bytesize > 1:
        expsize += 1
        bytesize = bytesize // 2

# init a proper size empty bytearray
buffer = bytearray()
for i in range(2**expsize): buffer.append(0)

# let's do the swap   
count = 0   
for i in range(len(data)):
        addr = (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1) + ((i & 0x080000) >> 1) +   ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
        if addr != i: count += 1
        buffer[addr] = data[i]
print "Swapped %s (%s) addresses" % (count, hex(count))

# writing output file
output.write(buffer)

# close file handles
input.close()
output.close()





me autocito para dejar unas fotos de un DK Country 3 que he hecho con una 1A1M a modo de prueba.

Imagen Imagen Imagen

Imagen Imagen Imagen

Imagen Imagen Imagen

EDITO: Los enlaces están rotos debido a un cambio en el hosting de las imagenes, pero las puse nuevamente en la pag 880 donde puse el post inicial del tema del swapbin HI to LO
VySe escribió:Llevo un tiempo pensandolo y creo que me voy a poner ya con el tema del hilo. Me interesa empezar con las reproducciones de Snes y me gustaría que me recomendarais algun programador en especial que vendan y que sea adecuado. He visto Willems por Wallapop desde 25€ hasta los 150€, y no se si fiarme o tirar de amazon o ebay.

Por el tema de electronica, soldaduras y tal no me preocupa ya que estuve unos cuantos años metido en eso, aunque si que grabé y borré memorias en su día.

Un saludo y gracias.


Te recomendaría leerte un poco el hilo, no solo la primera pagina.
En el transcurso de este hilo se ha preguntado muchas veces sobre programador recomendado.
Aun así te voy a dar mi opinión.
Los willem son quizás un poco mas profesionales, por la compatibilidad que llegan a tener con las memorias.
Los MiniPro son por usb baratos y con mucha compatibilidad, solo que alguna memoria mas concreta no te la va a coger, pero sin complicaciones el MiniPro es el mas adecuado para comenzar o incluso para no cambiarlo.

Ahora bien si te quieres gastar 150€ en un programador porque te coges el total de las posibles memorias para snes, es un poco a decisión tuya, pero pocos juegos usan memorias "especiales" y lo pongo entre comillas, como para que te valga la pena el desembolso para 4 memoria concretas, siendo el resto de juegos otro tipo de memorias.
Las memorias esas mas concretas siempre las puedes pedir programadas ya y que solo sea soldar.

Así que por comodidad cógete un Minipro que son usb y muy simples de usar.
Saludos
CoLvIN escribió:
VySe escribió:Llevo un tiempo pensandolo y creo que me voy a poner ya con el tema del hilo. Me interesa empezar con las reproducciones de Snes y me gustaría que me recomendarais algun programador en especial que vendan y que sea adecuado. He visto Willems por Wallapop desde 25€ hasta los 150€, y no se si fiarme o tirar de amazon o ebay.

Por el tema de electronica, soldaduras y tal no me preocupa ya que estuve unos cuantos años metido en eso, aunque si que grabé y borré memorias en su día.

Un saludo y gracias.


Te recomendaría leerte un poco el hilo, no solo la primera pagina.
En el transcurso de este hilo se ha preguntado muchas veces sobre programador recomendado.
Aun así te voy a dar mi opinión.
Los willem son quizás un poco mas profesionales, por la compatibilidad que llegan a tener con las memorias.
Los MiniPro son por usb baratos y con mucha compatibilidad, solo que alguna memoria mas concreta no te la va a coger, pero sin complicaciones el MiniPro es el mas adecuado para comenzar o incluso para no cambiarlo.

Ahora bien si te quieres gastar 150€ en un programador porque te coges el total de las posibles memorias para snes, es un poco a decisión tuya, pero pocos juegos usan memorias "especiales" y lo pongo entre comillas, como para que te valga la pena el desembolso para 4 memoria concretas, siendo el resto de juegos otro tipo de memorias.
Las memorias esas mas concretas siempre las puedes pedir programadas ya y que solo sea soldar.

Así que por comodidad cógete un Minipro que son usb y muy simples de usar.
Saludos


Gracias, pensaré el tema y me leeré más a fondo este pedazo de hilo. A ver como termina la historia. ;)
Despues de malgastar muchas memorias 29F016B no conseguí que un Chrono Trigger que funcionará sin cuelgues (comentado un par de páginas atras).

Al final he conseguido que funcione con 4 27C801 apiladas. Para aportar mi granito de arena dejo fotos y algun comentario:

https://imgur.com/a/vUXDW
https://imgur.com/a/NW83S

La placa es una 2J3m20. Los cables negros son las OE que van a las patas 4-5-6-7 del HC139 y uno con la conexión a 5V. Los azules de la parte frontal son la conexión a A20 y A21 (esta placa es de 32 pines y hay que buscar estos puntos) y el de atrás es el ground. Los rojos son la corrección que siempre hay que hacer en las 27C801 y la conexión al mad del HC139.


He tenido que rebajar un poco la rebaba interior el cartucho para que pudiera cerrar [+risas]

Gracias a todos por vuestros aportes. Ha requerido leer mucho para entender todo y me doy cuenta que he aprendido mucho y que me queda mucho por aprender.
Richesco1 escribió:Despues de malgastar muchas memorias 29F016B no conseguí que un Chrono Trigger que funcionará sin cuelgues (comentado un par de páginas atras).

Al final he conseguido que funcione con 4 27C801 apiladas. Para aportar mi granito de arena dejo fotos y algun comentario:

https://imgur.com/a/vUXDW
https://imgur.com/a/NW83S

La placa es una 2J3m20. Los cables negros son las OE que van a las patas 4-5-6-7 del HC139 y uno con la conexión a 5V. Los azules de la parte frontal son la conexión a A20 y A21 (esta placa es de 32 pines y hay que buscar estos puntos) y el de atrás es el ground. Los rojos son la corrección que siempre hay que hacer en las 27C801 y la conexión al mad del HC139.


He tenido que rebajar un poco la rebaba interior el cartucho para que pudiera cerrar [+risas]

Gracias a todos por vuestros aportes. Ha requerido leer mucho para entender todo y me doy cuenta que he aprendido mucho y que me queda mucho por aprender.


Que raro que no te funcionase las 29F imagino tienes grabador, siempre puedes aprovechar las 29F para algún otro juego, seguro alguno mas tienes en la cabeza, coméntanos si decides aprovechar esas 29F en algún otro juego para saber si con otra rom te funciona o te da el mismo problema.

Ahora hablando de tu chrono de 4 27C, vaya trabajillo que tas dado, así hice mi Chrono la primera vez y al final substituí las 4 por una 29F033, como acabaras haciendo tu es como hacer tunning al cartucho xDD reducción de peso, porque ahora ese chrono pesa mas que un mando de Xbox 1.
Felicidades por tu chrono ;)
9358 respuestas