Bien joué
Ça permettra peut-être d'ouvrir des pistes d'exploration pour voir comment tout ce petit foutoir marche. Du coup y'a un debuggeur qui fonctionne pour la 82A ou pas ? Ça serait pratique pour naviguer rapidement dans la mémoire.
Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Plus T
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon
Unis par la flèche sacrée de cupidon
-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 1110
- Images: 4
- Inscription: 08 Déc 2014, 17:38
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Ensimag
- GitHub: MathisLav
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
Les débuggeurs de WabbitEmu et jsTIfied, oui.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
Dommage que l'auteur ne m'ait jamais répondu au sujet d'un bug qui m'empêchait d'utiliser wabbitemu. Je vais réessayer voir si ça marche, ça peut être intéressant. La mémoire de la 82a ça marche pareil que pour celle des 83+/84+, c'est-à-dire paging et "pointage" avec des adresses 16bits c'est ça ?
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon
Unis par la flèche sacrée de cupidon
-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 1110
- Images: 4
- Inscription: 08 Déc 2014, 17:38
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Ensimag
- GitHub: MathisLav
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
L'OS 82A est un OS 84+ modifié/bridé. Donc oui, ça marche pareil.
Non je n'avais pas écrit à l'auteur pour ce bug spécifiquement.
Je lui avais juste dit en 2015 qu'il y avait un nouveau modèle à supporter, la TI-82A, avec le fichier adéquat en pièce jointe et un résumé des changements.
Et je constate à posteriori que l'étmulateur n'a justement plus évolué depuis mai 2015, malgré toutes les nouveautés niveau TI-z80.
Peut-être n'a-t-il plus le temps ou l'envie...
Mais c'est d'autant plus dommage que les modifications à apporter pour gérer les TI-82A et TI-84+T sont sûrement ridicules en comparaison de ce qu'il faudrait pour gérer une TI-84+C ou TI-84+CE couleur.
Non je n'avais pas écrit à l'auteur pour ce bug spécifiquement.
Je lui avais juste dit en 2015 qu'il y avait un nouveau modèle à supporter, la TI-82A, avec le fichier adéquat en pièce jointe et un résumé des changements.
Et je constate à posteriori que l'étmulateur n'a justement plus évolué depuis mai 2015, malgré toutes les nouveautés niveau TI-z80.
Peut-être n'a-t-il plus le temps ou l'envie...
Mais c'est d'autant plus dommage que les modifications à apporter pour gérer les TI-82A et TI-84+T sont sûrement ridicules en comparaison de ce qu'il faudrait pour gérer une TI-84+C ou TI-84+CE couleur.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
jsTIfied liste apparemment correctement les applications des ROMs 82A et 84+T, mais ne permet pas de les transférer/extraire.
On obtient des fichiers avec le header des applications, mais vide de code.
Même pas la peine que je tente sous WabbitEmu.
La seule façon de récupérer les applications préinstallées des TI-82A et TI-84+T est donc avec l'utilitaire rom2xxk dont il a été question plus haut.
On obtient des fichiers avec le header des applications, mais vide de code.
Même pas la peine que je tente sous WabbitEmu.
La seule façon de récupérer les applications préinstallées des TI-82A et TI-84+T est donc avec l'utilitaire rom2xxk dont il a été question plus haut.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
D'ailleurs, maintenant que l'on a enfin une ROM TI-84+T, regardons les applications préinstallées :
Et voici les fichiers extraits :
Sur TI-82 Advanced, les applications étaient toutes identiques à celles téléchargeables pour la TI-84+ sauf une, l'application Français qui de plus n'était pas signée.
Ici à la différence , toutes les applications sont bien signées, et celles de langues semblent bien identiques à celles pour la TI-84+.
- Code: Tout sélectionner
$ ./rom2xxk.exe ./ti84plust_5.1.0.0029_boot1.00.rom
+---------+
| rom2xxk |
+---------+
TI-z80 ROM apps extractor
Reading ROM ./ti84plust_5.1.0.0029_boot1.00.rom ...
- size ... 2048Kio (0x80 pages)
Looking for apps in pages 0x69-0x0c
Page 0x69 : Deutsch▒ 1.1 (1 pages)
Page 0x68 : Espa▒ol▒ 1.1 (1 pages)
Page 0x67 : Fran▒ais 1.1 (1 pages)
Page 0x66 : Nederlan 1.1 (1 pages)
Page 0x65 : Portug▒▒ 1.1 (1 pages)
Page 0x64 : Svenska▒ 1.1 (1 pages)
Page 0x63 : Inequalz 1.3 (2 pages)
Page 0x62 :
Page 0x61 : Conics▒▒ 1.1 (2 pages)
Page 0x60 :
Page 0x5f : PlySmlt2 1.1 (2 pages)
Page 0x5e :
Page 0x5d : CabriJr 1.1 (4 pages)
Page 0x5c :
Page 0x5b :
Page 0x5a :
Page 0x59 : CelSheet 1.1 (3 pages)
Page 0x58 :
Page 0x57 :
Page 0x56 : EasyData 1.1 (4 pages)
Page 0x55 :
Page 0x54 :
Page 0x53 :
Page 0x52 : Periodic 1.1 (1 pages)
Page 0x51 : Prob Sim 1.1 (2 pages)
Page 0x50 :
Page 0x4f : SciTools 1.1 (2 pages)
Page 0x4e :
Page 0x4d : Transfrm 1.3 (1 pages)
Page 0x4c : no more apps
Et voici les fichiers extraits :
- Code: Tout sélectionner
$ ls -l *.8xk
ls: impossible de comparer les noms de fichier « Svenska\200 1.1.8xk » et « Transfrm 1.3.8xk »: Invalid or incomplete multibyte or wide character
-rw----r-- 1 Xavier Xavier 149460 20 nov. 14:40 CabriJr 1.1.8xk
-rw----r-- 1 Xavier Xavier 108402 20 nov. 14:40 CelSheet 1.1.8xk
-rw----r-- 1 Xavier Xavier 49711 20 nov. 14:40 Conics?? 1.1.8xk
-rw----r-- 1 Xavier Xavier 34987 20 nov. 14:40 Deutsch? 1.1.8xk
-rw----r-- 1 Xavier Xavier 156236 20 nov. 14:40 EasyData 1.1.8xk
-rw----r-- 1 Xavier Xavier 37220 20 nov. 14:40 Espa?ol? 1.1.8xk
-rw----r-- 1 Xavier Xavier 37451 20 nov. 14:40 Fran?ais 1.1.8xk
-rw----r-- 1 Xavier Xavier 50404 20 nov. 14:40 Inequalz 1.3.8xk
-rw----r-- 1 Xavier Xavier 35064 20 nov. 14:40 Nederlan 1.1.8xk
-rw----r-- 1 Xavier Xavier 39145 20 nov. 14:40 Periodic 1.1.8xk
-rw----r-- 1 Xavier Xavier 57796 20 nov. 14:40 PlySmlt2 1.1.8xk
-rw----r-- 1 Xavier Xavier 37143 20 nov. 14:40 Portug?? 1.1.8xk
-rw----r-- 1 Xavier Xavier 77970 20 nov. 14:40 Prob Sim 1.1.8xk
-rw----r-- 1 Xavier Xavier 55024 20 nov. 14:40 SciTools 1.1.8xk
-rw----r-- 1 Xavier Xavier 37913 20 nov. 14:40 Svenska? 1.1.8xk
-rw----r-- 1 Xavier Xavier 31368 20 nov. 14:40 Transfrm 1.3.8xk
Sur TI-82 Advanced, les applications étaient toutes identiques à celles téléchargeables pour la TI-84+ sauf une, l'application Français qui de plus n'était pas signée.
Ici à la différence , toutes les applications sont bien signées, et celles de langues semblent bien identiques à celles pour la TI-84+.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
J'oubliais TilEm2 qui lui à la différence n'a aucun problème à émuler les ROMs TI-82 Advanced avec leur Boot Code d'origine :
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
Absolument génialissime Je suis presque surpris que la 82A ait mis plus de temps que la 83PCE à être émulée
Mon profil TI-Planet | Devenez premium ! |
Modérateur de TI-Planet.org depuis décembre 2015, et membre de la communauté depuis Mai 2015. | Cliquez ci-dessus pour faire un don à TI-Planet.org via PayPal et devenir Donateur ou Premium (à partir de 3€) ! Vous aurez accès à des générations illimitées et prioritaires avec Mviewer GX Creator, ainsi qu'au forum secret ! En plus, vous pourrez être orange sur le chat |
-
GalacticPirateModo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 1156
- Images: 2
- Inscription: 23 Mai 2015, 10:36
- Localisation: Hauts-de-Seine, France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: L3 Informatique
- GitHub: GalacticPirate-Prog
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
A être 'dumpée' je dirais, plutôt qu'émulée.
(même si techniquement ce n'est pas un dump ici, mais une méthode alternative pour obtenir quasiment la même chose)
L'absence de support de l'assembleur est la principale cause de ce retard.
(même si techniquement ce n'est pas un dump ici, mais une méthode alternative pour obtenir quasiment la même chose)
L'absence de support de l'assembleur est la principale cause de ce retard.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Pack outils ROM/OS/Apps compatibles 82 Advanced et 84 Pl
Petites modifs à l'outil xxu2rom, qui devraient éviter le passage obligé par un éditeur hexa.
Si la ROM de destination existe déjà, l'outil injecte maintenant l'OS dedans sans écraser le reste des pages.
Donc si il y avait un Boot Code dedans, il reste présent et le fichier modifié est alors directement émulable !
Donc il vous faudra :
Si la ROM de destination existe déjà, l'outil injecte maintenant l'OS dedans sans écraser le reste des pages.
Donc si il y avait un Boot Code dedans, il reste présent et le fichier modifié est alors directement émulable !
Donc il vous faudra :
- une ROM de TI-84 Plus pour émuler une TI-82 Advanced
- une ROM de TI-84 Plus Silver Edition pour émuler une TI-84 Plus T
- Code: Tout sélectionner
// romto8xu.cpp : définit le point d'entrée pour l'application console.
//
// 512K : TI-73 0C-15 0A 10 160Kio 163840
// 512K : TI-83 Plus 0C-15 0A 10 160Kio 163840
// 1024K : TI-84 Plus 0C-29 1E 30 480Kio 491520
// 1024K : TI-82 Advanced 0C-29 1E 30 480Kio
// 2048K : TI-83 Plus Silver Edition 0C-69 5E 94 1504Kio 1540Ko
// 2048K : TI-84 Plus Silver Edition 0C-69 5E 94 1504Kio 1540Ko
// 2048K : TI-84 Plus T 0C-69 5E 94 1504Kio
// 4096K : TI-84 Plus C Silver Edition 0C-E3 D8 216 3456Kio 3539Ko
#include "stdio.h"
#define DATE_SIZE 8
#define NZONES 5
#define NMODELS 6
#define NUPDS 5
#define IHX_PAGELINE_SIZE 7
#define IHX_INTERLINE_SIZE 5
#define IHX_DATALINE_HEADSIZE 4
#define IHX_DATA_SIZE 32
#define IHX_DATALINE_SIZE (IHX_DATALINE_HEADSIZE+IHX_DATA_SIZE+1)
uint8_t imodel_id[NMODELS] ={2, 4, 0xA, 0xB, 0x1B, 0xF};
char* imodel_name[NMODELS] ={"TI-73", "TI-83 Plus", "TI-84 Plus", "TI-82 Advanced", "TI-84 Plus T", "TI-84 Plus C Silver Edition"};
uint8_t imodel_upd[NMODELS] ={0, 0, 1, 2, 3, 4};
uint8_t imodel_hwrev[NMODELS] ={0, 1, 3, 3, 3, 5};
uint8_t imodel_type[NMODELS] ={0x74, 0x73, 0x73, 0x73, 0x73, 0x73};
uint8_t imodel_irom_minpgsize[NMODELS]={0, 0, 0, 1, 2, 3};
uint8_t imodel_irom_maxpgsize[NMODELS]={2, 2, 2, 1, 2, 3};
uint8_t imodel_irom_defpgsize[NMODELS]={0, 0, 1, 1, 2, 3};
#define NROMS 4
#define PAGE_SIZE 0x4000
#define MAXPAGES 0x100 // 4MB
#define VALID_OFFSET 0x56
uint32_t irom_pgsize[NROMS]={MAXPAGES/8, MAXPAGES/4, MAXPAGES/2, MAXPAGES};
char* izone_name[NZONES]={"OS part #1", "Applications", "Signature #2 (2048-bits)", "OS part #2", "Signature #1 (512-bits)"};
// OS1 endapp sig2 OS2 sig1
uint32_t irom_izone_pgoffset[NROMS][NZONES]={
{0, 0x16, -1, 0x18, 0x1A}, // 512K
{0, 0x2A, 0x30, 0x34, 0x3A}, // 1024K
{0, 0x6A, 0x70, 0x74, 0x7A}, // 2048K
{0, 0xE4, 0xE4, 0xE8, 0xFA} // 4096K
};
uint32_t irom_izone_pgsize[NROMS][NZONES]={
{8, 0x0A, 0, 0x06, 0}, // 512K
{8, 0x1E, 4, 0x0A, 0}, // 1024K
{8, 0x5E, 4, 0x0A, 0}, // 2048K
{8, 0xD7, 4, 0x0D, 0} // 4096K
};
uint32_t iupd_izone_pgoffset[NUPDS][NZONES]={
{0, -1, -1, 0x18, -1}, // TI-73 / TI-83 Plus
{0, -1, 0x10, 0x14, -1}, // TI-84 Plus
{0, 0x2A, 0x30, 0x34, -1}, // TI-82 Advanced
{0, 0x6A, 0x70, 0x74, -1}, // TI-84 Plus T
{0, -1, 0xE4, 0xE8, -1} // TI-84 Plus C Silver Edition
};
uint32_t iupd_izone_pgsize[NUPDS][NZONES]={
{8, 0, 0, 0x06, 0}, // TI-73 / TI-83 Plus
{8, 0, 4, 0x0A, 0}, // TI-84 Plus
{8, 0x0E, 4, 0x0A, 0}, // TI-82 Advanced
{8, 0x1E, 4, 0x0A, 0}, // TI-84 Plus T
{8, 0, 4, 0x0D, 0} // TI-84 Plus C Silver Edition
};
char rombuffer[MAXPAGES*PAGE_SIZE];
#define BUFFER_SIZE (2*(IHX_DATALINE_SIZE+1)+1)
int main(int argc, char* argv[])
{ char* hexa="0123456789ABCDEF";
int mode=0, tromsize=0;
int c,h=0,page=0, i, j, k;
FILE* rom;
FILE* upd;
uint8_t t;
uint8_t irom=0;
uint8_t imodel=0;
uint8_t idmodel=0;
uint8_t iupd;
uint32_t izone,ipage;
printf("+---------+\n");
printf("! xxu2rom !\n");
printf("+---------+\n");
printf(" X. Andreani\n\n");
char* rompath=0;
char* updpath=0;
for(i=1;i<argc;i++) {
if(!strcmp(argv[i],"-size "))
i++;
if(i<argc)
tromsize=strtol(argv[i],NULL,10)*1024;
if(!updpath)
updpath=argv[i];
else if(!rompath)
rompath=argv[i];
}
if( !rompath || !updpath)
{ printf("ERROR: missing or bad arguments\n");
printf("Usage: %s source.??u dest.rom [-size]\n", argv[0]);
printf("-size : target ROM size in KB (valid values : 512, 1024, 2048, 4096)\n");
return 0;
}
upd=fopen(updpath,"rb");
if(!upd)
{ printf("UPD file open error\n");
return 0;
}
memset(rombuffer,0xFF,MAXPAGES*PAGE_SIZE);
rom=fopen(rompath,"rb");
if(rom) {
uint32_t size;
fseek(rom,0,SEEK_END);
size=ftell(rom);
if(!tromsize)
tromsize=size;
fseek(rom,0,SEEK_SET);
fread(rombuffer,1,size,rom);
fclose(rom);
}
while(irom_pgsize[irom]*PAGE_SIZE<tromsize && irom<NROMS-1)
irom++;
rom=fopen(rompath,"r+");
if(!rom)
{ rom=fopen(rompath,"w+");
if(!rom) {
printf("ROM file open error\n");
fclose(upd);
return 0;
}
}
fseek(upd,0x4E,SEEK_SET);
uint8_t updhead[IHX_DATALINE_SIZE];
uint8_t updhead2[IHX_DATALINE_SIZE];
memset(updhead2,0xFF,IHX_DATALINE_SIZE);
char buffer[2*IHX_DATALINE_SIZE+3];
int8_t curpage=-1;
uint16_t delta=0;
while(!feof(upd)) {
fscanf(upd,":");
fgets(buffer,BUFFER_SIZE,upd);
uint8_t n;
sscanf(buffer,"%02hhX",&n);
for(i=0;i<n+IHX_DATALINE_HEADSIZE;i++)
sscanf(buffer+2*i,"%02hhX",&(updhead[i]));
n=updhead[0];
uint16_t pgoffs=((updhead[1]&((1<<6)-1))<<8)|updhead[2];
pgoffs+=delta;
if(n==2 && !pgoffs) {
curpage=updhead[IHX_DATALINE_HEADSIZE+1];
printf("update page %02x",curpage);
for(i=NZONES-1;i>0;i--)
if(curpage>=iupd_izone_pgoffset[imodel_upd[imodel]][i])
break;
curpage=curpage+irom_izone_pgoffset[irom][i]-iupd_izone_pgoffset[imodel_upd[imodel]][i];
printf(" -> ROM page %02x\n",curpage);
}
else if(curpage<0 && n) {
uint32_t datasize = IHX_DATALINE_SIZE-IHX_DATALINE_HEADSIZE;
uint8_t* ptr8000=getFieldDataPtr(updhead+IHX_DATALINE_HEADSIZE,0x8000,1,datasize);
uint8_t* ptr=getFieldDataPtr(ptr8000,0x8010,1,datasize);
idmodel=*ptr;
imodel=0;
while(imodel<NMODELS && imodel_id[imodel]!=idmodel)
imodel++;
if(imodel>=NMODELS) {
printf("ERROR: unknown target model\n");
break;
}
printf("Target model :\n"),
printf("- ID ... \t0x%02X\n",idmodel);
printf("- name ... \t%s\n",imodel_name[imodel]);
if(!tromsize)
irom=imodel_irom_defpgsize[imodel];
printf("- ROM ... \t%dKB\n",irom_pgsize[irom]*PAGE_SIZE/1024);
memcpy(updhead2,updhead,IHX_DATALINE_SIZE);
}
else if(curpage>=0 && n) {
// printf("write page %x offset %x = %x\n",curpage,pgoffs,curpage*PAGE_SIZE+pgoffs);
memcpy(rombuffer+curpage*PAGE_SIZE+pgoffs,updhead+IHX_DATALINE_HEADSIZE,n);
}
else if(curpage>0 && !n && !delta) { // RSA 512-bits signature special case
curpage=irom_izone_pgoffset[irom][NZONES-1];
printf("update page sig1 -> ROM page %x\n",curpage);
memcpy(rombuffer+curpage*PAGE_SIZE,updhead2+IHX_DATALINE_HEADSIZE,updhead2[0]);
delta=0x100-2;
}
}
if(imodel<NMODELS) {
rombuffer[VALID_OFFSET]=0x5A;
rombuffer[irom_izone_pgoffset[irom][NZONES-1]*PAGE_SIZE+0x100-2]=0xFF;
rombuffer[irom_izone_pgoffset[irom][NZONES-1]*PAGE_SIZE+0x100-1]=0xFF;
int r=fwrite(rombuffer,1,irom_pgsize[irom]*PAGE_SIZE,rom);
}
fclose(upd);
return 0;
}
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
46 messages
• Page 4 sur 5 • 1, 2, 3, 4, 5
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 40 invités