Участник:Dim568: различия между версиями

Материал из Old-Games.RU Wiki
Перейти к навигации Перейти к поиску
Строка 30: Строка 30:
 
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21
 
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21
 
|-
 
|-
| colspan="2" | H3 || colspan="2" | H4 ||
+
| colspan="2" | H3 || colspan="2" | H4 || colspan="2" | H5||colspan="2" | H6 ||colspan="2" | H7 ||colspan="2" | ?? ||colspan="2" | H9
 
|}
 
|}
  
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
uint16_t VAL1 = ((H3/4)+1)*16;
+
uint16_t VAL01 = ((H3/4)+1)*16;
VAL1 += 0; // Need check in time
+
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?
 +
uint16_t VAL02 = (H4*6)+VAL01;
 +
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра
 +
VAL03 += (H7/16)+1
 +
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше
 +
uint16_t VAL05 = ((H6&0x0F)<<12);
 +
uint16_t VAL06 = H5/16;
 +
VAL05 += VAL06;
 +
uint16_t VAL07 = VAL04 + VAL05;
 
</syntaxhighlight>
 
</syntaxhighlight>

Версия 18:08, 8 сентября 2020

Черновик

Silmarils IO Structure

Base Header

0 1 2 3 4 5
H0 H1 H2

H2 - используется как флаг для определения алгоритма обработки файла

H2 равен 1

uint16_t VAL1 = H0 - 6
uint16_t _H1 = H1&0xFEFF;
int8_t Control_1 = (int8_t)(_H1>>8);
if(Control_1 > 0){
  _H1 &= 0xFF;
}else{
}

H2 равен 0

Дочитываются дополнительные 16 байт заголовка

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
H3 H4 H5 H6 H7 ?? H9
uint16_t VAL01 = ((H3/4)+1)*16;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?
uint16_t VAL02 = (H4*6)+VAL01;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра
VAL03 += (H7/16)+1
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше
uint16_t VAL05 = ((H6&0x0F)<<12);
uint16_t VAL06 = H5/16;
VAL05 += VAL06;
uint16_t VAL07 = VAL04 + VAL05;