Transpiler team hoï

8 sujets de 1 à 8 (sur un total de 8)

  • mikedafunk

      #393266

      vous vous souvenez de la démo team hoi planet groove ?
      https://www.pouet.net/groups.php?which=1019

      Si j’ai bien compris le codeur de team hoï aurait créé un transpiler, un outil permettant de convertir le code asm68k en langage c, super pratique pour les portages des jeux / démos Amiga sur les plateformes Macintosh, Linux ou Windows

      Un premier jeu a été porté
      https://eab.abime.net/showthread.php?t=122863

      Ce transpiler devrait être disponible bientôt

      Aladin

        #393268

        Mais est-ce qu’il peut aussi faire l’inverse: du code C x86 vers du code Amiga Asm 68k …

        mikedafunk

          #393690

          Cela m’étonnerait que cela fonctionne dans l’autre sens, mais croisons les doigts !
          A noter qu’il existe un outil similaire pour le code z80
          https://korben.info/gb-recompiled-game-boy-decompilation.html

          Y a même un fou qui a fait tourner un noyau linux sur un 68000 sans MMU
          https://korben.info/linux-sega-megadrive.html

          piark

            #393692

            je ne vois pas bien comment on pourrait convertir le code d’un jeu, avec un couplage fort avec les chipsets de la machine et son système en ROM dédié, vers une autre plateforme, même avec du C.

            Autant les appels de fonctions système on peut toujours faire des adaptateurs, mais les mille façons d’activer les registres de l’Amiga ça me semble audacieux de se dire qu’on trouverait une façon générique de deviner ce que le codeur a voulu faire dans son jeu.

            J’ai déjà vu une sorte de transpileur de Fortran vers du C, mais la tronche du code ressemblait pas vraiment a du C, on voyait que c’était un langage procédural utilisant des variables et tableaux a plat couché en C de la même façon.

            Par contre, un transpileur genre Basic vers Assembleur, la ok on peut car il est assez simple de remplacer les fonctions par des équivalents assembleurs.

            Mais Assembleur vers basic, bonne chance pour deviner ce qu’a voulu faire le codeur dans sa boucle avec des incrémentations et des comparaisons de pointeurs dans la bouche, vous n’obtiendrez pas un beau for next, mais une sorte de do while avec des break partout…..

            Et ce n’est qu’un exemple très simple, imaginez un code qui utiliserait le copper pour déclencher le blitter et le cpu pour rafrachir la copperlist au bon moment, avec évidement les sprites et les couleurs gérés de la même façon, traduire ça en C en langage système PC ça me semble hautement improbable.

            Mais si ça existe je serais heureux de le voir et d’admirer le travail car a mon sens ça sera un très gros travail.

            piark

              #393693

              Y a même un fou qui a fait tourner un noyau linux sur un 68000 sans MMU :

              Fou est le mot exact je valide !

              J’arrive même pas a croire que ça fonctionne, mais a priori y’a un mode spécial de compilation du kernel sans la MMU, on retrouve la Linux Torvald touch a mon avis, lui qui a connu les ordinateurs 8 bits.

              Ce kernel me surprendra toujours, par la variété de processeurs supportés et de plateformes, c’est quand même un travail incroyable, et se dire qu’ils sont un paquet a travailler ensemble dessus, et être synchro sans rien péter, j’ai pas les mots, si j’en croise un je serais comme un ado fan d’un chanteur a sa rencontre, exité comme une puce intenable comme un gamin insupportable 🙂

              stephbb75

                #393695

                Salut,

                Y a même un fou qui a fait tourner un noyau linux sur un 68000 sans MMU :

                Il n’y a la MMU qu’a partir du 68030 de toute façon.
                Quand j’étais en BTS on avais 2 machine Unix, une avec un 68000 et l’autre avec un 68020 (la casse à l’époque, en tout K pour le lycée ! !) et cela fonctionnais très bien.

                Alors oui on peut avoir le le MMU avant un 68030 avec un MC68451 ou 68851, mais on avais pas cela.

                La Commodore A2620 est l’une des rares cartes à utiliser un 68451 sur Amiga.

                https://youtube.com/@stephbb75

                mikedafunk

                  #393699

                  je ne vois pas bien comment on pourrait convertir le code d’un jeu, avec un couplage fort avec les chipsets de la machine et son système en ROM dédié, vers une autre plateforme, même avec du C.

                  The transpiler does not emulate Agnus/Denise/Paula. You assembly still does move/tst to $dff… and CIA addresss; those reads/writes hit stubs in m68k_runtime (customRegs, ciaRegs, chip RAM mapping) and/ or your host layer (see amiga_sdl_host.md).

                  https://bitbucket.org/rhinoid/convert68000toc/src/main/docs/transpiler_overview.md

                  piark

                    #393779

                    ok donc rien a voir avec du C classique, c’est très orienté assembleur au final, rendu plus lisible avec une syntaxe C.

                  8 sujets de 1 à 8 (sur un total de 8)

                  • Vous devez être connecté pour répondre à ce sujet.

                  Forums AmigaOS, MorphOS et AROS Développement Transpiler team hoï

                  Amiga Impact