π
<-

Emuler Nspire sous linux : Nspire_emu

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Emuler Nspire sous linux : Nspire_emu

Unread postby tobiasBora » 26 Sep 2012, 22:37

Bonjour !

Je voulais savoir comment faire pour émuler une TI nspire sous linux. J'ai vu qu'il y avait le logiciel Tiemu, mais il ne semble à première vue pas supporter les nspire, et j'ai vu le programme communautaire nspire emu qui semble open source :
http://tiplanet.org/forum/viewtopic.php?t=8698&p=120035
Cependant, comme il n'y a pas de binaire linux, j'ai essayé de le compiler avec make, mais j'obtiens une belle erreur :
Code: Select all
$ make
gcc -W -Wall -Os -c apb.c -o apb.o
In file included from apb.c:5:0:
emu.h:157:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:158:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:159:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:160:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:337:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:338:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:339:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:340:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:341:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:342:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:390:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:391:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:392:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:393:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:394:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
emu.h:395:1: attention : ‘fastcall’ attribute ignored [-Wattributes]
apb.c: In function ‘unknown_cx_read’:
apb.c:254:25: attention : unused parameter ‘addr’ [-Wunused-parameter]
apb.c: In function ‘unknown_cx_write’:
apb.c:257:27: attention : unused parameter ‘addr’ [-Wunused-parameter]
apb.c:257:37: attention : unused parameter ‘value’ [-Wunused-parameter]
apb.c: In function ‘watchdog_event’:
apb.c:275:32: attention : unused parameter ‘index’ [-Wunused-parameter]
gcc -c asmcode.S -o asmcode.o
asmcode.S: Assembler messages:
asmcode.S:34: Error: invalid instruction suffix for `push'
asmcode.S:36: Error: invalid instruction suffix for `push'
asmcode.S:37: Error: invalid instruction suffix for `push'
asmcode.S:38: Error: invalid instruction suffix for `push'
asmcode.S:90: Error: invalid instruction suffix for `pop'
asmcode.S:91: Error: invalid instruction suffix for `pop'
asmcode.S:92: Error: invalid instruction suffix for `pop'
asmcode.S:93: Error: invalid instruction suffix for `pop'
asmcode.S:204: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:206: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:229: Error: invalid char '@' beginning operand 1 `@mmio_read_byte@4'
asmcode.S:232: Error: invalid char '@' beginning operand 1 `@read_byte@4'
asmcode.S:235: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:237: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:259: Error: invalid char '@' beginning operand 1 `@read_align_fail@4'
asmcode.S:263: Error: invalid char '@' beginning operand 1 `@mmio_read_half@4'
asmcode.S:266: Error: invalid char '@' beginning operand 1 `@read_half@4'
asmcode.S:269: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:271: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:291: Error: invalid char '@' beginning operand 1 `@read_align_fail@4'
asmcode.S:295: Error: invalid char '@' beginning operand 1 `@mmio_read_word@4'
asmcode.S:298: Error: invalid char '@' beginning operand 1 `@read_word@4'
asmcode.S:301: Error: invalid instruction suffix for `push'
asmcode.S:302: Error: invalid instruction suffix for `push'
asmcode.S:304: Error: invalid instruction suffix for `pop'
asmcode.S:305: Error: invalid instruction suffix for `pop'
asmcode.S:308: Error: invalid instruction suffix for `push'
asmcode.S:309: Error: invalid instruction suffix for `push'
asmcode.S:310: Error: invalid instruction suffix for `push'
asmcode.S:311: Error: invalid instruction suffix for `push'
asmcode.S:314: Error: invalid instruction suffix for `pop'
asmcode.S:318: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:320: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:343: Error: invalid char '@' beginning operand 1 `@mmio_write_byte@8'
asmcode.S:346: Error: invalid char '@' beginning operand 1 `@write_byte@8'
asmcode.S:349: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:351: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:373: Error: invalid char '@' beginning operand 1 `@write_align_fail@4'
asmcode.S:377: Error: invalid char '@' beginning operand 1 `@mmio_write_half@8'
asmcode.S:380: Error: invalid char '@' beginning operand 1 `@write_half@8'
asmcode.S:383: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:385: Error: junk at end of line, first unrecognized character is `@'
asmcode.S:405: Error: invalid char '@' beginning operand 1 `@write_align_fail@4'
asmcode.S:409: Error: invalid char '@' beginning operand 1 `@mmio_write_word@8'
asmcode.S:412: Error: invalid char '@' beginning operand 1 `@write_word@8'
asmcode.S:415: Error: invalid instruction suffix for `push'
asmcode.S:416: Error: invalid instruction suffix for `push'
asmcode.S:417: Error: invalid instruction suffix for `push'
asmcode.S:419: Error: invalid instruction suffix for `pop'
asmcode.S:420: Error: invalid instruction suffix for `pop'
asmcode.S:421: Error: invalid instruction suffix for `pop'
asmcode.S:424: Error: invalid instruction suffix for `push'
asmcode.S:425: Error: invalid instruction suffix for `push'
asmcode.S:426: Error: invalid instruction suffix for `push'
asmcode.S:427: Error: invalid instruction suffix for `push'
asmcode.S:428: Error: invalid instruction suffix for `push'
asmcode.S:431: Error: invalid instruction suffix for `pop'
asmcode.S:432: Error: invalid instruction suffix for `pop'
asmcode.S:446: Error: invalid instruction suffix for `pop'
asmcode.S:454: Error: invalid instruction suffix for `push'
asmcode.S:459: Error: invalid instruction suffix for `pop'
asmcode.S:460: Error: invalid instruction suffix for `pop'
asmcode.S:461: Error: invalid instruction suffix for `pop'
make: *** [asmcode.o] Erreur 1


Comment faire pour le compiler sous linux ? Existe-t'ils d'autres émulateurs nspire libres ?

Merci d'avance,

Tobias.
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby Adriweb » 26 Sep 2012, 22:41

Je ne suis pas sûr concernant sa compilation, mais il marche sous Wine sans problème, il me semble :)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby Excale » 26 Sep 2012, 22:42

Et pour répondre à l'autre question, il n'y a pas d'autre émulateur nspire :).
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby tobiasBora » 26 Sep 2012, 22:55

Merci pour vos réponses ultra rapides !

Adriweb wrote:Je ne suis pas sûr concernant sa compilation, mais il marche sous Wine sans problème, il me semble :)

On va dire que je ne considère pas wine comme une alternative fiable sur le long terme. Wine permet de dépanner, mais je désire vraiment l'utiliser le moins possible... Si il y avait une solution native, ce serait 1.10^3 fois mieux...

Par contre, j'ai trouvé ici :
http://hackspire.unsads.com/wiki/index.php/Emulators
que Xspire (qui semble se baser sur nspire_emu) permet un portage sous linux ! Comme je n'ai pas vu de site officiel, et comme le lien vers lequel pointe la page est un forum dans lequel je ne trouve pas la page de téléchargement, (bon, il faut dire que j'ai bien cherché 10 secondes...), j'ai trouvé ici :
archives_voir.php?id=1730
une version qui semble fonctionner. (bon je ne sais pas si c'est la plus récente)... et elle semble fonctionner aux premiers abords ! Pour le moment, je n'ai fait que le lancer (en version graphique et console, levak, goplat et xspire on fait un super travail, merci infiniment). Je n'ai pas encore pu le tester pleinement car je dois aller dormir, et qu'il semble necessaire de faire un certain nombre de manips pour que ça fonctionne. J'essayerai quand j'aurai un peu de temps (ou quand les maths me monteront à la tête).

Je pense donc que mon problème est résolu, sauf si vous ayez des liens vers le site officiel (à moins que le lien tiplanet soit son emplacement officiel).

Merci !
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby Excale » 26 Sep 2012, 23:00

La version que tu as téléchargée est une version bien obsolète.

Si ça marche pour ce que tu veux faire, tant mieux. Mais je crois bien qu'elle ne gère même pas les Nspire CX.
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby Lionel Debroux » 27 Sep 2012, 06:12

* TIEmu ne s'intéresse en effet qu'aux TI-68k, et nspire_emu est le seul émulateur de Nspire;
* nspire_emu fonctionne suffisamment bien pour que personne ne s'amuse à maintenir une version non Windows;
* Xspire est en effet extrêmement dépassé, au moins 5-6 releases majeures de retard, et n'est pas maintenu;
* la compilation de nspire_emu sous *nix se passe bien (c'est ce que j'utilise), avec un cross-compilateur: i586-mingw32-msvc-gcc ou i686-w64-mingw32-gcc.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby tobiasBora » 28 Sep 2012, 19:41

Merci pour vos réponses.

J'ai donc essayé, Lionel Debroux, comme tu me l'as conseillé d'installé i686-w64-mingw32-gcc. J'ai ensuite modifié le fichier Makefile ainsi :
Code: Select all
OBJ = apb.o asmcode.o cpu.o des.o debug.o emu.o flash.o gui.o interrupt.o keypad.o lcd.o link.o memory.o mmu.o os-win32.o resource.o schedule.o sha256.o translate.o usb.o usblink.o

FLAGS = -W -Wall

emu.exe : $(OBJ)
   i686-w64-mingw32-gcc $(FLAGS) $(OBJ) -o $@ -lgdi32 -lcomdlg32 -lwinmm

nspire_emu.exe : $(OBJ)
   i686-w64-mingw32-gcc $(FLAGS) $(OBJ) -o $@ -lgdi32 -lcomdlg32 -lwinmm -s -Wl,--nxcompat

cpu.o : cpu.c
   i686-w64-mingw32-gcc $(FLAGS) -O3 -c $< -o $@

resource.o : resource.rc id.h
   i686-w64-mingw32-windres $< -o $@

sha256.o : sha256.c
   i686-w64-mingw32-gcc $(FLAGS) -O3 -c $< -o $@

asmcode.o : asmcode.S
   i686-w64-mingw32-gcc -c $< -o $@

%.o : %.c
   i686-w64-mingw32-gcc $(FLAGS) -Os -c $< -o $@

Et pour enlever une erreur de compilation j'ai rajouté #include <windows.h> dans le fichier resource.rc.

Même si je n'ai pas de vrai erreur à la compilation, le fichier binaire semble corrompu car je ne peux pas le lancer :
Code: Select all
make
i686-w64-mingw32-windres resource.rc -o resource.o
i686-w64-mingw32-gcc -W -Wall -Os -c schedule.c -o schedule.o
i686-w64-mingw32-gcc -W -Wall -O3 -c sha256.c -o sha256.o
i686-w64-mingw32-gcc -W -Wall -Os -c translate.c -o translate.o
translate.c: In function ‘translate’:
translate.c:644:11: attention : ‘imm’ may be used uninitialized in this function [-Wuninitialized]
i686-w64-mingw32-gcc -W -Wall -Os -c usb.c -o usb.o
i686-w64-mingw32-gcc -W -Wall -Os -c usblink.c -o usblink.o
usblink.c: In function ‘dump_packet’:
usblink.c:41:31: attention : unused parameter ‘type’ [-Wunused-parameter]
usblink.c:41:43: attention : unused parameter ‘data’ [-Wunused-parameter]
usblink.c:41:53: attention : unused parameter ‘size’ [-Wunused-parameter]
usblink.c: In function ‘usblink_received_packet’:
usblink.c:172:3: attention : déréférencement du pointeur type-punned brisera les strictes d'aliases [-Wstrict-aliasing]
usblink.c:182:3: attention : déréférencement du pointeur type-punned brisera les strictes d'aliases [-Wstrict-aliasing]
i686-w64-mingw32-gcc -W -Wall apb.o asmcode.o cpu.o des.o debug.o emu.o flash.o gui.o interrupt.o keypad.o lcd.o link.o memory.o mmu.o os-win32.o resource.o schedule.o sha256.o translate.o usb.o usblink.o -o emu.exe -lgdi32 -lcomdlg32 -lwinmm


$ ls
apb.c      cpu.o    disasm.c  flash.c  interrupt.c  lcd.o      memory.c        os-win32.c   resource.rc~  translate.c  usb.o
apb.o      debug.c  emu.c     flash.o  interrupt.o  link.c     memory.o        os-win32.h   schedule.c    translate.o
asmcode.o  debug.o  emu.exe   gui.c    keypad.c     link.o     mmu.c           os-win32.o   schedule.o    usb.c
asmcode.S  des.c    emu.h     gui.o    keypad.o     Makefile   mmu.o           resource.o   sha256.c      usblink.c
cpu.c      des.o    emu.o     id.h     lcd.c        Makefile~  nspire_emu.exe  resource.rc  sha256.o      usblink.o


$ ./emu.exe
bash: ./emu.exe : fichier binaire impossible à lancer

Ais-je mal fait quelque chose ?
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby Lionel Debroux » 28 Sep 2012, 19:57

Essaie de le lancer explicitement par "wine emu.exe".
Mais ça ne donnera pas forcément de meilleurs résultats. Si tu as installé un package Wine, il a peut-être été enregistré automatiquement dans binfmt-support pour que le kernel invoque "wine" quand un header Win-PE est détecté.

Mais au fait, pourquoi ne pas utiliser la version pré-compilée ? :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby tobiasBora » 28 Sep 2012, 20:17

Ah mais tu dis que la compilation créé un fichier pour windows ??? Je désire, comme je l'ai déjà expliqué, ne pas utiliser wine... Il n'y a donc aucun moyen de le compiler pour linux ? Je pensais que i686-w64-mingw32-gcc lisait le code comme si c'était du code windows, mais qu'il allait le compiler pour linux (un peu comme un traducteur)...

Il n'y a vraiment aucun moyen pour le compiler pour Linux nativement ? Pourtant la version Xspire semble avoir nspire_emu compilée pour linux... Comment ont-t'ils fait ? Je pense que je préfère presque utiliser une vieille version native plutôt qu'une version récente pour windows.
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Emuler Nspire sous linux : Nspire_emu

Unread postby Lionel Debroux » 28 Sep 2012, 20:30

Ah mais tu dis que la compilation créé un fichier pour windows ???

Habituellement, par définition, un cross-compilateur génère des exécutables pour une autre plate-forme :)
Mais si tu ne connaissais pas le terme, tu ne pouvais pas le savoir.

Je désire, comme je l'ai déjà expliqué, ne pas utiliser wine...

Alors il n'y a pas de solution.

Il n'y a donc aucun moyen de le compiler pour linux ?
Il n'y a vraiment aucun moyen pour le compiler pour Linux nativement ?

Tel que le code est fait, non.

Pourtant la version Xspire semble avoir nspire_emu compilée pour linux... Comment ont-t'ils fait ?

Ils ont forké de très vieilles versions (qui étaient peut-être plus faciles à modifier à l'époque ?) de nspire_emu.

Je pense que je préfère presque utiliser une vieille version native plutôt qu'une version récente pour windows.

C'est une très mauvaise idée, car tu vas avoir quantité de manques dans l'émulation et dans l'émulateur. En particulier, il est fort improbable que les OS récents des Nspire fonctionnent...
Naturellement, la quasi-totalité des problèmes que tu vas avoir n'existent pas sur la dernière version, donc utiliser une version convenable est la première chose qui va t'être suggérée ;)


Comme je l'ai mentionné plus haut, nspire_emu fonctionne bien avec Wine, comme quantité de programmes Windows d'ailleurs. Ca réduit donc d'autant, et de manière permanente, la nécessité d'un portage vers d'autres plate-formes.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Next

Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: ClaudeBot [spider] and 17 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2670 utilisateurs:
>2600 invités
>63 membres
>7 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)