kur4o wrote:It is getting some nice shape for configuration. I guess the calculations are not yet implemented. Maybe you can add some options for byte sum, word sum and dword sum, and a separate settings for 1`s and 2`s compliment.
Can we rip segments` data addresses from bin. Usually the first 2 bytes of the start addresses are the checksum. That way a single config file can support all OS with the variable segment length. For some of the checksum you can hard build them than make them configurable, like ls1 checksum, e38 checksum, blackbox checksum and so on. I will get you some examples.
That inverted checksum is used on v6 pcms, It is really weird. Here is the full code
CHEKCSUMS_V6_FWD.rtf
from a open source program called tiny tuner. I hope it does make some sense to you.
Program can be totally universal or specific to GM.
If it try to be both, it will be complicated.
Now I am not sure what I should do:
- Continue developing universal patcher
* make it totally universal, or
* Make GM specific configurations (ls1 checksum, eeprom information etc)
- Abandon universal patcher and make PCMBinBuilder configurable:
* Config file defines:
+ where is segment addresses stored
+ where is segment info stored & how (bytes, hex/uint,text)
+ where is checksum stored & how (bytes, hex/uint,text[Display])
+ checksum method
+ Does eeprom_data need config?
+ other?
For config, I already tested this style: textbox where you can supply segment addressess (example: 8000-9000)
If you supply @514, program will read address from bin at address 514 (4 bytes for start, 4 for end address)
If you sypply #0:2:hex in checksum address, checksum is 0 bytes from segment start address, length 2 bytes, show as hex
(@ = read from bin at address, #= address is relative to segment address)
Comments, please.
If I understand V6 checksum correctly, it is word sum, read from 4 blocks, stored in 1 byte