EasyGecko

Started by paradoq, August 07, 2008, 08:56:06 PM

Previous topic - Next topic

paradoq

I've started a python program that would make it easier for generating codes. It doesn't work yet and since I no very little about hex I though I'd publish it now and see if anyone is interested in picking up where I left off.

import os

colors={}
characters={'Mario':'00','DK':'01','Link':'02','Samus':'03','Zero Suit Samus':'04','Yoshi':'05','Kirby':'06',
            'Fox':'07','Pikachu':'08','Luigi':'09','Captain Falcon':'0A','Ness':'0B','Bowser':'0C',
            'Peach':'0D','Zelda':'0E','Sheik':'0F','Ice Climbers':'10','Popo':'11','Nana':'12'}
gamecube={'left':1,'right':2,'up':4,'down':8,'Z':10,'R':20,'L':40,'A':100,'B':200,'X':400,'Y':800,'Start':1000}
controllers={'gamecube':'284DE4'}
getbuttons={'gamecube':gamecube}

players={'p1':'20','p2':'7C','p3':'D8','p4':'34'}

def getOut(config):
    if config['ochar']!='':
        s=s+"10000098 000000%s\n"
    s=s+"E0000000 80008000\n"
    return s
def proccess(config):
    s=''
    if config['controller']!='':
        if config['buttons']!='':
            s=s+getOut(config)
            s=s+"%s%s %s\n"%(config['controller'],config['buttons'])
        else:
            for button in buttons:
                s=s+"%s%s %s\n"%(config['controller'],button)
                s=s+getOut(config)
    else:
        if config['player']!='':
            s=s+"4A000000 90180F%s\n"
        if config['buttons']!='':
            for controller in controllers:
                s=s+"%s %s\n"%(controller,config['buttons'])
                s=s+getOut(config)
        else:
            for key,controller in controllers.iteritems():
                for button in getbuttons[key]:
                    s=s+"%s %s\n"
                    s=s+getOut(config)
    return s
def proc(s):
    print
    if s=='':
        return ''
    code=s.split(':')
    i=code[0].strip()
    o=code[1].strip()
    config={'ochar':'','ichar':'','controller':'','player':'','button':''}
   
    ### INPUT
    a=i.split(',')
    for i in a:
        i=i.strip()
        if i in characters:
            config.update({'ifchar':characters[i]})
        elif i in controllers:
            config.update({'controller':controllers[i]})
        elif i in players:
            config.update({'player':players[i]})
        elif i in buttons[cont]:
            config.update({'button':buttons[i]})
        else:
            return

   ### OUTPUT
    a=o.split()
    for o in a:
        if o in characters:
            config.update({'ochar':characters[o]})
        else:
            return

    return proccess(config)
def geteachplayer(config):
    for player in players:
        s=s+"4A000000 90180F%s\n"%player
        getcontents(config)
def start():
    os.system('clear')
    print "EasyGecko: english to hex"
    print
    while 1:
        s=raw_input("> ")
        if s=="q":
            print
            print "quiting..."
            break
        print proc(s)
       
if __name__ == '__main__':
    start()

An example of usage would be:
Mario : Bowser(change every Mario to Bowser)