ASM 68000
Aussi je vais changer la gestion de la mémoire en esperant que sa gagnera en vitesse
tst.w %d0 jblt bloc2 jmp 0(%a0,%d0:w) bloc2: jmp 0(%a1,%d0:w)
La seule méthode propre est d'utiliser 2 blocs et un truc du style:
tst.w %d0
jblt bloc2
jmp 0(%a0,%d0:w)
bloc2: jmp 0(%a1,%d0:w)
geogeo
: Ton émus et parfaitement réalisable avec un bon fps, d'autant plus contrairement à l'emu de GameBoy tu n'as pas besoin de traduire les instructions, puisque la nintendo fonctionne avec un 68000 identique au TI68K.
680x
geogeo
:680x
Ah bon.![]()
L'architecture et les instructions sont identique?
Kevin Kofler
: C'est totalement différent.
C'est totalement
différent.
Kevin Kofler :
La seule méthode propre est d'utiliser 2 blocs et un truc du style:tst.w %d0 jblt bloc2 jmp 0(%a0,%d0:w) bloc2: jmp 0(%a1,%d0:w)
geogeo
: C'est comme si tu me disait que les Game Boy n'était pas équipé du même Z80 que les TI83...
godzil :
Hum je suis pas vraiment sur que ton code marche a tout les coups![]()
si je m'abuse tu utilise "bloc 2" que si d0.w = 0x0 (ou l'inverse : tu utilise bloc2 que si d0.w != 0x0)
et pi je peut pas malheureusement me permettre de rajouter des cycles en trop (le test + jmps)
franchement il faut que j'ai 65535 Ko consécutif sinon se n'est meme pas la peine
godzil
: la GameBoy/Coloc/Pocket utilise un Z80 (a priori standard)
aucune console Nintendo n'utilise de processeur motorola (sauf ptet si on regarde de loins le PPC de la GameCube est du a l'accord Apple/Motorola/IBM, mais bon faut pousser le bouchon un peu loins la)
Pour infos :
La NES utilise un 6502 customisé (certaines instruction manquantes on incompletes et gestion du son en hard dans le CPU) le 6502 est un CPU 8 Bit
La SNES utilise la version 16Bit du 6502 (qui porte un "nom" barbar genre 65316 ou un truc du genre)
la GameBoy/Coloc/Pocket utilise un Z80 (a priori standard) (8Bits donc)
la Nintendo 64 utilise un CPU de type Mips (arreter moi si je me trompe) et il s'agit d'un véritable CPU 64Bits
La GameCube utilise un PPC spécialement fabriqué pour nintendo (et il s'agit d'un CPU 32Bits ! sisi ! contrairement a se qu'on laisse entendre (génération "128 bits") les 128bits en question ne sont qu'un des registre d'un DSP trainant qq pars sur la carte mere , d'ailleur la PS2 et la Xbox sont ttes les deux des consoles 32bits aussi)
La GameBoy Advance utilise un CPU ARM (32 doncs)
Le 680x dont parlait kk est le non moins connu 6809 (il y en a eu d'autre dans cette série) qui est un proco 8Bit et dont le coeur a été largement reutilisé dans la série des microcontroleurs 68HC11
Kevin Kofler
:godzil :
Hum je suis pas vraiment sur que ton code marche a tout les coups![]()
si je m'abuse tu utilise "bloc 2" que si d0.w = 0x0 (ou l'inverse : tu utilise bloc2 que si d0.w != 0x0)
J'utilise le bloc 1 pour d0.w>=0 en signed, c'est-à-dire d0.w<32768 en unsigned, et le bloc 1 pour d0.w<0 en signed, c'est-à-dire d0.w>=32768 en unsigned.
et pi je peut pas malheureusement me permettre de rajouter des cycles en trop (le test + jmps)
Tu te fiches de ma gueule? Ça te fait un tst.w et un blt.s. En tout 12 cycles pour le bloc 1 et 14 cycles pour le bloc 2.
franchement il faut que j'ai 65535 Ko consécutif sinon se n'est meme pas la peine
Bref, tu préfères faire planter nos machines plutôt que de sacrifier 14 cycles? Je n'utiliserai donc certainement pas ton émulateur. (La même chose est valable pour TeZXas et TIGB qui utilisent le même hack, d'ailleurs. J'ai déjà eu assez de plantages avec TeZXas, ça me suffit...)