website logo
Auteur
avatar
thellier

Forum » » OS4 toutes plateformes confondues » » WINUAE-PPC


Posté : 13-06-2016 14:16 icone du post

OK je viens de consacrer une heure au sujet de la ram: même en faisant la cheksum ça marche pas...

Je cherche dans un des fichiers rom de la cyberstorm une valeur en 127 et 128 MO : on trouve cette valeur qu'à un seul endroit j'y ajoute 3*128 Mo soit environ 512 MO

J'ajuste la taille de la carte à 512 en éditant la config .uae

Peut être que je fais une erreur qque part ... mais difficile à voir ... source joint si qqun à une idée

lire le fichier cyberstorm.rom dans un buffer

faire HackROM(buffer,taillebuffer,127,128);

sauver le buffer dans un nouveau fichier .rom

Alain

/*====================================================== ====================*/
void HackROM(void *pt,LONG nb,ULONG min,ULONG max)

ULONG *pt32=pt;
ULONG n;
ULONG x0;
ULONG checksum;
 
NLOOP(nb/4)
 {
 x0=pt32[0];
 if( x0< (max*1024*1024) )
 if((min*1024*1024) < x0)
  {
  printf("[%ld] Valeur %ld dans l'intervalle [%ld à %ld MO] manque %ld bytes \n",n*4,x0,min,max,(max*1024*1024) - x0);
  pt32[0]=x0+(3*128*1024*1024); /* around 128 + 3*128 = around 512 */
  }
 pt32=pt32+1;
 }

/*
>>>Le checksum commence à $20.
>>>Et il se calcule de $24 avec une longueur de $13FF8
>>on y additionne chaque octets ? ou chaque ULONG ?
>Chaque .l !
*/

 checksum=0;
 pt32=pt;
 pt32=pt32+((0x20)/4) ;
 nb=((0x13FF8)/4);

 NLOOP(nb)
  checksum=chec ksum+pt32[n+1];
 pt32[0]=checksum;

}
/*======================= ===================================================*/


Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2167&forum=6