[Assembleur] Cherche infos sur recompilation dynamique

Cherche infos sur recompilation dynamique [Assembleur] - Programmation

Marsh Posté le 04-05-2001 à 15:31:52    

Salut à tous,
 
Dans le cadre d'un projet d'émulation, je cherche un cours ou une présentation des techniques de recompilation dynamique.
 
L'idée de base, c'est qu'une application développée avec une bibliothèque standard contient donc des portions de code compilé standards. Je pourrais donc "scanner" l'exécutable et émuler à haut niveau les fonctions standard.
 
Merci d'avance et a+
Mandrix

Reply

Marsh Posté le 04-05-2001 à 15:31:52   

Reply

Marsh Posté le 10-05-2001 à 11:23:50    

Please help !!!!!!!!!!!!!!!!!!!!!

Reply

Marsh Posté le 10-05-2001 à 11:28:18    

tu maitrises bien l'assembleur ??
parseke moi aussi je suis tenté par un petit projet comme ca (code réel 16 bits -> pmode 32 bits)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-05-2001 à 11:59:29    

J'ai des bases (fragiles) d'assembleur x86.
Je maîtrise l'assembleur 6502 (NES)
Le projet qui m'intéresse, c'est pour l'émulation de la saturn (Hitachi SH2).
 
Dans ton cas, il processus serait plutot:
- je prend une instruction 16 bit
- je convertit en 32 bits
- je passe à la suivante
Avec après qques optimisations relatives au fait que tu passe en 32 bits
 
Dans mon cas, il s'agit plutot de détecter des routines tjs compilées de la même manière (surtout graphiques), pour pouvoir les émuler à haut niveau en utilisant la carte 3D.

Reply

Marsh Posté le 10-05-2001 à 12:11:08    

Tu veux plutôt dire 65816 pour la SuperNes... :p  
En fait il faudrait que tu fasses un analyseur de code, qui tient compte des branchements (mais à ce stade, je suppose qu'ils sont tous relatifs). Bref, ton simulateur devrait juste avoir une phase ou il recrée un "pseudo code" à interpréter mais orienté pour la plateforme d'exécution.
Mais comment vas tu faire pour les fadas qui ont développé directement en asm sur la console sans utiliser de librairies (ou au pire des librairies "améliorées" ) ?

Reply

Marsh Posté le 10-05-2001 à 12:16:46    

Je parle bien du 6502 de la Nes 8bits
 
Merci pour ton idée de reconstruction de l'arborescence des appels. Je vais voir ce que je peux faire.
Sinon, pour les brutes immondes qui ont programmé directement en ASM, ben tant pis, y'aura pas d'optimisation. (Ou alors une optimisation particulière pour chaque jeux)
 
Merci pour tout, et continuez à filer vos idées, ca motive !
 
A+
 
mandrix

Reply

Marsh Posté le 10-05-2001 à 12:59:54    

"Dans mon cas, il s'agit plutot de détecter des routines tjs compilées de la même manière (surtout graphiques), pour pouvoir les émuler à haut niveau en utilisant la carte 3D."
 
il me semble que c'est tres exactement le fonctionnement d'UltraHLE ...
 
ses sources sont dispos ... j'ai fait une petite recherche et je suis tombé sur ce site : http://www.dextrose.com/
 
y'a plein de sources, entre autres des sources d'assembleurs ... certains semblent supporter le pseudo code ...
 
en esperant t'aider ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-05-2001 à 13:34:01    

Thanx, HelloWorld
 
En effet, c'est exactement ce que fait UltraHLE, mais c'est bcp + facile pour la N64, vu que les fonctions sont stockées à une adresse fixe dans la rom de la console.
Il suffit donc d'intercepter les appels vers ces adresses, et le tour est joué.
Dans mon cas, le code de ces fonctions de base est recompilé avec le jeu, et peut donc ce trouver à n'importe quelle adresse.
 
Merci encore pour ton aide, et a+
 
Mandrix

Reply

Marsh Posté le 10-05-2001 à 13:49:48    

:( Je croyais que la nes c'était un Z80A...
Un peu comme la gameboy (quoi que là, c'est un Z80A un peu bridé)
 
Faire l'analyse du code ne devrait pas être trop difficile je pense. Le seul souci, c'est si le linker qui a généré le code a créé des adresses absolues. La routine d'analyse devra dès lors tenir compte de ça et ne tester que les zones "sures", et confirmer ensuite par un calcul sur les adresses absolues.
 
Ca n'a pas déjà été fait, le simulateur dont tu parles ?  :na:

Reply

Marsh Posté le 10-05-2001 à 14:12:21    

La NES, c'est un Ricoh 6502 modèle 2A03 (manquent pas mal d'opcodes et intègre en plus la génération du son).
Par contre, la GameBoy est bien basée sur un Z80 modifié.
 
Si un simulateur de ce style à déjà été fait, j'aimerais bien y jeter un oeil.
C'est vrai que c'est pas super compliqué de recréer l'archi des appels possibles. Le plus dur, c'est d'isoler les portions de codes (et les variations possibles) pour les fonctions courantes.
N'étant pas une bête dans le domaine des compilateurs, j'apprécie l'aide que quiconque pourra m'apporter.
 
Sinon, j'invite tout programmeur qui s'y connait en recompilation à aller faire un tour sur http://satourne.consollection.com (mail satourne_emu@caramail.com)
Si j'explore ce domaine, c'est pour essayer de filer un coup de main à Fab, l'auteur de cet émulateur prometteur.
 
a tchao,
Mandrix

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed