Jump to content
Sign in to follow this  
vingazole

Quel logiciel pour désassembler une ROM Megadrive ?

Recommended Posts

Bonjour à tous !

 

Je cherche un programme pour désassembler du code machine 68000 et obtenir le résultat dans un fichier texte.

Il faudrait quelque chose qui tourne sous windows 64 bits (j'ai essayé 68kd mais il ne veut que du 32 bits, en tout cas la version que j'ai téléchargée).

 

Sinon j'ai commencé à regarder avec le désassembleur de Regen, on dirait que le code ne commence pas en 0, savez-vous où est le point de démarrage dans une ROM megadrive ?

 

Merci d'avance ;)

Share this post


Link to post
Share on other sites

si tu veux je te désassemble la rom ;)

 

je connais irapc, ida pro et j'ai aussi trouvé ton soft (mais apparement on ne pas pas recompiler ce qu'il génère)

http://rainemu.swishparty.co.uk/html/download/dev.html

 

pour ida pro avec plugin megadrive/68000

http://elektropage.ru/load/hacksoft/asm_dizasm_i_prochaja_dur/ida_interactive_disassembler/4-1-0-2

(c'est un site russe, donc enclenche la trad auto ^^, le logiciel lui est en anglais)

Share this post


Link to post
Share on other sites

Bonjour,

Quelle rom cherche tu à Dé-assembler ?

 

Sinon les roms megadrive possède un Header qui va de $000-$0FF

 

il se compose des éléments suivant :

         
Header:
        .ascii  "SEGA MEGA DRIVE "                                      /* Console Name (16) */
        .ascii  "(C)SEGA 2012.MAR"                                      /* Copyright Information (16) */
        .ascii  "MY PROG "      /* Domestic Name (48) */
        .ascii  "MY PROG "      /* Overseas Name (48) */
        .ascii  "GM 00000000-00"                                        /* Serial Number (2, 14) */
        .word   0x0000                                                  /* Checksum (2) */
        .ascii  "JD "                                      /* I/O Support (16) */
        .long   0x00000000                                              /* ROM Start Address (4) */
        .long   0x20000                                                 /* ROM End Address (4) */
        .long   0x00FF0000                                              /* Start of Backup RAM (4) */
        .long    0x00FFFFFF                                              /* End of Backup RAM (4) */
        .ascii  " "                              /* Modem Support (12) */
        .ascii  " "              /* Memo (40) */
        .ascii  "JUE "                                      /* Country Support (16) */

Juste après tu trouveras donc le début de ton code.

Share this post


Link to post
Share on other sites

Merci pour l'explication sur le Header X-death :)

 

Du côté des désassembleurs, irapc ne tourne pas en 64 bits, m68kdis ne me donne rien de bon, par contre j'ai pu obtenir un désassemblage brut avec le segadasm de GManiac (un russe) trouvé sur SpritesMind.

 

Et avec ton lien russe Ichigo j'obtiens un beau désassemblage sous ida pro avec les adresses Megadrive (RESET, HBL, VBL, etc) et d'autres features bien sympa.

 

Ils sont bien ces russes ;)

 

 

J'ai aussi récupéré le manuel motorola pour approfondir mes connaissances du 68000, des docs sur la Megadrive (dont le fameux sega2f) pour connaître l'architecture de la bête: ça va j'ai de quoi travailler !

Share this post


Link to post
Share on other sites

c'est une modif du texte "originale",

 

normalement il y a des tiles de la font de chargés qui forment le logo "namcot" (que j'ai viré de la font)

et ensuite FOR SEGA MEGA DRIVE.

 

post-5150-0-33354500-1368028825_thumb.png

 

sinon c'est bien à la place de cet écran que j'aimerai charger des tiles, un tilemap pour afficher une image ;)

 

PS. Regarde ton gmail, j'ai fini de coder le script d'export de l'éditeur de niveaux, me manque juste ton avis technique & qq infos pour le placement (coordonnées) des objets etc.

Share this post


Link to post
Share on other sites

Autre petite question: qu'est-ce-qu'il y a de bien comme éditeur hexa ?

 

Je voudrais inhiber des appels de sous-routines (BSR,JSR) et voir le résultat produit pour localiser les portions de programme responsables de l'affichage de la page de début : si je modifie la ROM est-ce que je pourrais la lancer quand même avec un émulateur, ou bien risqué-je d'être gêné par un problème de checksum ?

Share this post


Link to post
Share on other sites

Non, pas encore, en fait c'est un peu fastidieux la méthode qui consiste à "shunter" les appels de sous-routines pour trouver celle qui gère l'affichage^^

 

J'ai tenté -en vain- de trouver un bon programme pour travailler avec des breakpoints. J'ai cherché du côté des dérivés de Gens (Tracer, Kmod, Regen) mais je n'ai pas trouvé comment reprendre l'éxecution du programme après l'arrêt à un breakpoint...

Share this post


Link to post
Share on other sites

Merci pour les infos vingazole, je ne saurais malheureusement pas t'aider pour le coup, sur snes9x Geiger je clique sur run après un breakpoint, et c'est reparti comme en 40!

 

Et pourquoi ne pas ajouter simplement une intro plutôt que de vouloir changer cet écran ? une fois affiché, on scanne les touches et si Start est pressé on lui dit de retourner à l'adresse du début du jeu.

 

Bon courage en tout cas!

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...