Jump to content
Akira76

HuCARD homemade - Un petit script de conversion

Recommended Posts

Pour les gens comme moi qui ont des consoles japonaises, mais qui aimeraient bien jouer avec des roms US, voilà un bête script de conversion JP<>US :

#!/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())

# let's check for a header and drop it if necessary
		if float(len(data)) / 1024 != float(len(data)) // 1024:
			if (float(len(data)) - 512) / 1024 == float(len(data)) // 1024:
				print "Header found, dropping it"
				for i in range(512): del data[0]
			else: 
				print "Hmm, this size is incorrect for a PCE ROM"
				sys.exit()
				
# all right, nec regional protection 101:
# US Nec ROMs are bitswapped, meaning for each byte, we need to swap the bits
# i.e. : 0b11110000 -> 0b00001111
# so basicly bitwise : 01234567 -> 76543210
# let's do it :
		buffer = bytearray()
		
		for byte in data:
			newbyte = 0
			for bit in range(8): 
				newbyte += (((byte & (1 << bit)) >> bit) << (7 - bit))
			buffer.append(newbyte)

# writing output file
		output.write(buffer)

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

Ça droppe le header s'il est présent, ça swappe les bits de chaque octet, bref, ça permet de convertir une rom US en "rom JP" sans avoir à switcher sa console.

Testé et approuvé sur les HuCARDs d'Ichi!

  • Like 1

Share this post


Link to post
Share on other sites

Bon sang, je me posais la questions il n'y a pas longtemps car j'avias vu des SuperGraphx (donc US si je dis pas de conneries) pas trop chères et je me tâtais à en prendre une pour la dézonner (montage pour inverser les Ax matériellement si j'ai bien tout suivi)

 

Mais là, c'est encore plus simple, un super swapbin en somme.

 

Je vais me poser de moins en moins de questions du coup. Toutefois, perso ça attendra un peu à la fois la console et aussi une occaz pour les HuCard vierges (revente ou nouvelle prod).

 

En tous cas, encore du joli taf (l'inverse m'aurait surpris en même temps :wink: )

Share this post


Link to post
Share on other sites

Correct Ichi, et une SGX pas chère, j'en veux bien une  :mrgreen:

Mais bon, la manip fait une inversion complête, donc ça marche pour faire passer les roms US sur consoles JP et inversement.

Par contre, ne pas oublier de mettre la pin 29 du HuC6280 à la masse sur consoles JP, sinon certaines roms US plantent au region check.

Mais bon, je le fais généralement en même temps que le mod RGB ;-)

Share this post


Link to post
Share on other sites

Bon accrochez vous bien : mon beau-frère vient tout juste de m'annoncer qu'il avait une PCEngine qui prend la poussière depuis 15 ans chez ses parents...

 

J'essaye de le convaincre qu'elle aurait plein de copines chez moi :-p

 

Priez pour moi !

Share this post


Link to post
Share on other sites

En fait, je suis tombé sur ce truc: http://www.gamingenterprisesinc.com/Flash_HuCard/

 

Ce jeune homme proposait (noter le passé) une flash hucard. Pourquoi en parler ici? Tout simplement parcequ'il avait ajouté dans son soft pour programmer la hucard un outils pour convertir les rom (virer le header, "halfbyteswap", remove protection et mirroring...)

 

http://www.gamingenterprisesinc.com/Flash_HuCard/rom_tips.html

 

Du coup j'ai testé et ça m'a l'air pas mal. Il faudrait avoir la version SANS le prog :D

Share this post


Link to post
Share on other sites

×
×
  • Create New...