Benvenuti nel MAME-Blog di Robiza

Archivio di "dicembre 2009"

Cherry Bonus 2001 (cb2001) e Cherry Master (ver 4, set 1) (cmv4)

Scritto il 22 dicembre 2009 da Robiza

Dopo mesi di real life finalmente un po’ di tempo per provare a decrittare cb2001;  verifcando i giochi Dyna da cui il nuovo set poteva derivare ho trovato una forte somiglianza con cmv4; si puo’ dire che il codice di cb2001 è quasi la perfetta traduzione di cmv4, unico particolare: l’utilizzo di una cpu differente, z80 per cmv4 e nec v25/35 criptata per cb2001. Questa forte relazione ovviamente da un grande aiuto nella decrittazione del codice di cb2001.

 prendendo alcune routine di esempio, si puo’ vedere la somiglianza e quindi la traduzione dell’opcode criptato nel corrispondente opcode decrittato (la traduzione dell’opcode è la parentesi in fondo):

2b2d ld a,$01                                                        e32a6 mov al,1h

2b2f or a                                                                  e32a8 and al,al

2b30 add a,(hl)                                                    e32aa add al,b ptr [ix]

2b31 daa                                                                 e32ac daa (13 -> 27)

2b32 ld (hl),a                                                        e32ad mov b ptr [ix],al

2b33 push bc                                                        e32af push cw (ac -> 51)

2b34 ld b,$03                                                      e32b0 mov cw,3h (9c -> b9)

2b36 dec hl                                                           e32b3 inc ix or dec ix?

2b37 ld a,(hl)                                                       e32b4 mov al,b ptr [ix] (e0 -> 8a)

2b38 adc a,$00                                                  e32b6 adc al,0h (1d -> 14)

2b3a daa                                                                e32b8 daa

2b3b ld (hl),a                                                       e32b9 mov b ptr [ix],al

2b3c djnz $2b36                                                e32bb dbnz e32b3h (c5 -> e2)

2b3e pop bc                                                         e32bd pop cw (8a -> 59)

2b3f ret                                                                  e32be ret