Kirjoittaja PetriK » 17 Joulu 2007, 13:47
RR oli tehnyt softatyökalun joka automaattisesti lukee kaikki kartat .bin tiedostosta ja tekee siitä enguinity määrittelytiedoston. Toimii busa, zx6 ja sv tiedostoissa. Luulisin että toimii myös z1000 tiedostossa.
Siihen kun rakentaa lisäominaisuuden tai jopa uuden softanpätkän jolla voidaan lukea myös IDAPron .idc tiedostosta karttojen nimet niin alkaa tulemaan karttojen määrittelystä paljon helpompaa.
Mulla ei ole mitään softankehitysympäristöä joka osaisi PC:n tiedostojärjestelmää.
Kiinnostaisiko Timo3:a tehdä tällainen softa joka lukee yhdestä tiedostosta stringin joka on aina muotoa "Map 0x00028010" ja etsii toisesta tiedostosta rivin MakeName (0X28010, "RPM_correction_Unk1_defs"); ja muuttaa tuohon ekaan tiedostoon sen "Map 0x00028010":n tilalle tuon "RPM_correction_Unk1_defs".
Tässä käytännön esimerkki:
.xml Tiedosto
<table type="2D" name= "289BE" category="Unk" storagetype="uint8" endian="big" sizex="17" sizey="17" storageaddress= "0x289BE" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x2897A" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x2899C" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28A20" category="Unk" storagetype="uint8" endian="big" sizex="40" sizey="40" storageaddress= "0x28A20" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28980" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x289D0" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28B96" category="Unk" storagetype="uint8" endian="big" sizex="29" sizey="29" storageaddress= "0x28B96" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28B22" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x28B5C" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28BD4" category="Unk" storagetype="uint8" endian="big" sizex="33" sizey="33" storageaddress= "0x28BD4" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28B50" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x28B92" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
.idc Tiedosto:
MakeName (0X28000, "Ambient_less_Manifold_correction_dword_28000");
MakeDword (x=0X28004);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28008);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (0X2800C);
MakeDword (0X28010);
MakeName (0X28010, "RPM_correction_Unk1_defs");
MakeDword (x=0X28014);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28018);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (0X2801C);
MakeDword (0X28020);
MakeName (0X28020, "Gear1_defs");
MakeDword (x=0X28024);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28028);
MakeName (0X28010, "RPM_correction_Unk1_defs");
Tiedostoissa on paljon muutakin tauhkaa, mutta tämä on ainut etsi ja korvaa mitä tätyisi tehdä. Noita muutettavia taulun nimiä on yli sata.
Edited By PetriK on 1197892379
[color=#000000]RR oli tehnyt softatyökalun joka automaattisesti lukee kaikki kartat .bin tiedostosta ja tekee siitä enguinity määrittelytiedoston. Toimii busa, zx6 ja sv tiedostoissa. Luulisin että toimii myös z1000 tiedostossa.
Siihen kun rakentaa lisäominaisuuden tai jopa uuden softanpätkän jolla voidaan lukea myös IDAPron .idc tiedostosta karttojen nimet niin alkaa tulemaan karttojen määrittelystä paljon helpompaa.
Mulla ei ole mitään softankehitysympäristöä joka osaisi PC:n tiedostojärjestelmää.
Kiinnostaisiko Timo3:a tehdä tällainen softa joka lukee yhdestä tiedostosta stringin joka on aina muotoa "Map 0x00028010" ja etsii toisesta tiedostosta rivin MakeName (0X28010, "RPM_correction_Unk1_defs"); ja muuttaa tuohon ekaan tiedostoon sen "Map 0x00028010":n tilalle tuon "RPM_correction_Unk1_defs".
Tässä käytännön esimerkki:
.xml Tiedosto
<table type="2D" name= "289BE" category="Unk" storagetype="uint8" endian="big" sizex="17" sizey="17" storageaddress= "0x289BE" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x2897A" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x2899C" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28A20" category="Unk" storagetype="uint8" endian="big" sizex="40" sizey="40" storageaddress= "0x28A20" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28980" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x289D0" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28B96" category="Unk" storagetype="uint8" endian="big" sizex="29" sizey="29" storageaddress= "0x28B96" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28B22" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x28B5C" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28BD4" category="Unk" storagetype="uint8" endian="big" sizex="33" sizey="33" storageaddress= "0x28BD4" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28B50" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x28B92" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
.idc Tiedosto:
MakeName (0X28000, "Ambient_less_Manifold_correction_dword_28000");
MakeDword (x=0X28004);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28008);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (0X2800C);
MakeDword (0X28010);
MakeName (0X28010, "RPM_correction_Unk1_defs");
MakeDword (x=0X28014);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28018);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (0X2801C);
MakeDword (0X28020);
MakeName (0X28020, "Gear1_defs");
MakeDword (x=0X28024);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28028);
MakeName (0X28010, "RPM_correction_Unk1_defs");
Tiedostoissa on paljon muutakin tauhkaa, mutta tämä on ainut etsi ja korvaa mitä tätyisi tehdä. Noita muutettavia taulun nimiä on yli sata.[/color]
Edited By PetriK on 1197892379