Kosilka: finalize translation, add extra files

git-svn-id: svn://kolibrios.org@7344 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2018-09-10 14:56:57 +00:00
parent f8865e6262
commit e96bb81f00
8 changed files with 210 additions and 17 deletions

View File

@ -0,0 +1,68 @@
filename equ 'kosilka.exe'
virtual at 0
file filename:3Ch,4
load pehea dword from 0
file filename:pehea,0F8h+28h*3
load NumberOfSections word from 4+6
load SizeOfOptionalHeader word from 4+14h
if NumberOfSections<>3
error Expected three sections, .text, .bss and .reloc
end if
if SizeOfOptionalHeader<>0E0h
error Nonstandard PE header
end if
load RelocsRVA dword from 4+0A0h
load RelocsSize dword from 4+0A4h
load ImageBase dword from 4+34h
load TextRVA dword from 4+0F8h+0Ch
load TextSize dword from 4+0F8h+8
load TextOffs dword from 4+0F8h+14h
load BSSSize dword from 4+0F8h+28h+10h
load RelocRVA dword from 4+0F8h+28h*2+0Ch
load RelocOffs dword from 4+0F8h+28h*2+14h
if BSSSize
error Second section expected to be .bss
end if
if RelocRVA<>RelocsRVA
error Third section expected to be .reloc
end if
;file 'test.exe':pehea+0F8h,28h
;load physofs dword from 4+14h
;load mem dword from 4+8
;file 'test.exe':physofs+16,4
;load sz dword from $-4
end virtual
file filename:TextOffs,TextSize
while RelocsSize>8
virtual at 0
file filename:RelocOffs,8
load CurRelocPage dword from 0
load CurRelocChunkSize dword from 4
end virtual
RelocsSize=RelocsSize-CurRelocChunkSize
CurRelocChunkSize = CurRelocChunkSize-8
RelocOffs=RelocOffs+8
while CurRelocChunkSize
virtual at 0
file filename:RelocOffs,2
RelocOffs=RelocOffs+2
CurRelocChunkSize=CurRelocChunkSize-2
load s word from 0
end virtual
CurRelocType = s shr 12
RelocItem = CurRelocPage + (s and 0xFFF)
if CurRelocType=0
else if CurRelocType=3
load z dword from RelocItem-TextRVA
store dword z-(TextRVA+ImageBase) at RelocItem-TextRVA
else
error Unexpected relocation type
end if
end while
end while
store dword TextSize at 10h
store dword RelocRVA-TextRVA at 14h

View File

@ -0,0 +1,92 @@
Ž‡„€<EFBFBD>ˆ… „Ž<E2809E>Ž<C5BD>ˆœ<E280B9><20><EFBFBD>Ž<EFBFBD>Ž<>Ž<C5BD>…‰ ˆ Šˆ<C5A0>Ž
„‹Ÿ ˆƒ<CB86> "ŠŽ‘ˆ‹Š€"
__________________________________________________
ˆ£à  "Š®á¨«ª " ¯®¤¤¥à¦¨¢ ¥â ¤®¯®«­¨â¥«ì­ë¥
­ ¡®àë ã஢­¥© ¨ ᪨­ë. í⮬ ¤®ªã¬¥­â¥ ®¯¨á ­ 
áâàãªâãà  ä ©«®¢ ᪨­®¢ ¨ ã஢­¥©.
--------------------------------------------------
Ž‡„€<EFBFBD>ˆ… „Ž<E2809E>Ž<C5BD>ˆœ<E280B9>• “<>Ž<C5BD>…‰
--------------------------------------------------
<20> ç¨­ ï á ¢¥àᨨ 0.5, ¨£à  ¯®¤¤¥à¦¨¢ ¥â ¤®¯®«­¨â¥«ì­ë¥
­ ¡®àë ã஢­¥©.
” ©« á ¤®¯®«­¨â¥«ì­ë¬ ­ ¡®à®¬ ã஢­¥© ¤®«¦¥­ ­ §ë¢ âìáï
koslevel.pak ¨ ­ å®¤¨âìáï ¢ ®¤­®¬ ª â «®£¥ á ¨£à®©.
” ©« ¤®¯®«­¨â¥«ì­ëå ã஢­¥© ¤®«¦¥­ ­ §ë¢ âìáï
kosilka.klp ¨ ­ å®¤¨âìáï ¢ ®¤­®¬ ª â «®£¥ á
¨£à®©.
<20> §¬¥à ä ©«  ¤®«¦¥­ ¡ëâì ªà â¥­ 512 ¡ ©â ¬.
‘âàãªâãà  ä ©« :
1-© ¡ ©â - ª®«¨ç¥á⢮ ã஢­¥© (1-255)
< ¤ «¥¥ ­ å®¤ïâáï á ¬¨ ã஢­¨, ª ¦¤ë© ã஢¥­ì
§ ­¨¬ ¥â 400 ¡ ©â. Š ¦¤ë© ¡ ©â - ª«¥âª  ª àâë.
‚®§¬®¦­ë¥ §­ ç¥­¨ï ª ¦¤®£® ¡ ©â :
0 - ᪮襭­ ï âà ¢ 
1 - âà ¢ 
2 - ª®á¨«ª 
3 - ª ¬¥­ì
4 - ¤¥à¥¢® >
< ¤ «¥¥ § ¯¨á뢠¥âáï ­¥®¡å®¤¨¬®¥ ª®«¨ç¥á⢮
­ã«¥© ¤«ï ⮣®, ç⮡ë ä ©« ¡ë« ªà â¥­ 512
¡ ©â ¬ >
‚­¨¬ ­¨¥: ¤®«¦­  ¡ëâì ஢­® ®¤­  ª®á¨«ª  ­  ã஢­¥
¨ ­¥ ¬¥­¥¥ ®¤­®© ¥¤¨­¨æë âà ¢ë
--------------------------------------------------
Ž‡„€<EFBFBD>ˆŠˆ<C5A0>Ž
--------------------------------------------------
<20> ç¨­ ï á ¢¥àᨨ 1.11, "Š®á¨«ª " ¯®¤¤¥à¦¨¢ ¥â
᪨­ë ¢ ã­¨¢¥àá «ì­®¬ ä®à¬ â¥ USF+ (Universal Skin
Format +). Šˆ<C5A0> <E28099>• ”Ž<E2809D>Œ€Ž <20>Ž…… <20><20>Ž„„…<E2809E>ˆ-
‚€ž’‘Ÿ ˆ „Ž<E280B9> <20>œ <20><>…Ž<E280A6><C5BD>€‡Ž<E2809A> ”Ž<E2809D>Œ€ USF+.
” ©« ᪨­  ¤®«¦¥­ ­ §ë¢ âìáï kosilka.usf ¨ ­ å®-
¤¨âìáï ¢ ®¤­®¬ ª â «®£¥ á ¨£à®©.
…᫨ ¨£à  ®¡­ à㦨¢ ¥â ᪨­, â® ®­  ªâ¨¢¨àã¥âáï ¨ £à ä¨-
ç¥áª®¥ ®ä®à¬«¥­¨¥ ¨£àë ¬¥­ï¥âáï.
‘ª¨­ ¬®¦­® ®âª«îç¨âì. „«ï í⮣® ­ ¦¬¨â¥ ª« ¢¨èã <s> ¢ £« ¢­®¬
¬¥­î.
‘âàãªâãà  USF-ä ©«  ᪨­  ¤«ï "Š®á¨«ª¨":
<20> §¬¥à ä ©«  ¤®«¦¥­ ¡ëâì ªà â¥­ 512 ¡ ©â ¬.
<20>¥à¢ë© ¡ ©â - ª®«¨ç¥á⢮ "¢ à¨ ­â®¢" ᪨­  (á à §«¨ç-
­ë¬¨ ¬ áèâ ¡ ¬¨) ¢ ä ©«¥. ‡¤¥áì § ¤ ñ¬ 0x01.
‘«¥¤ãî騥 3 ¡ ©â  - ®¯¨á ­¨¥ "¢ à¨ ­â " áªà¨­ .
1) Š®«¨ç¥á⢮ ¨§®¡à ¦¥­¨© - 㪠§ë¢ ¥¬ 0x08
2) ˜¨à¨­  ¨§®¡à ¦¥­¨ï - 㪠§ë¢ ¥¬ 0x18
3) ‚ëá®â  ¨§®¡à ¦¥­¨ï - 㪠§ë¢ ¥¬ 0x18
„ «¥¥ ¨¤ñâ ­¥¯®á।á⢥­­® ᪨­.
Ž­, ª ª ¢ëè¥ ãª § «¨ ¬ë, ᮤ¥à¦¨â 8 ª à⨭®ª à §¬¥-
஬ 24å24 (ª ¦¤ ï ¯® 1728 ¡ ©â).
–¢¥â ª ¦¤®© â®çª¨ ®¯¨á뢠¥âáï 3-¬ï ¡ ©â ¬¨: R,G,B
(ªà á­ë©, §¥«ñ­ë©, ᨭ¨©).
Š à⨭ª¨ ¢ ä ©«¥ ¨¤ãâ ¢ á«¥¤ãî饬 ¯®à浪¥:
- Š®á¨«ª  ¥¤¥â ¢­¨§
- Š®á¨«ª  ¥¤¥â ¢¢¥àå
- Š®á¨«ª  ¥¤¥â ¢«¥¢®
- Š®á¨«ª  ¥¤¥â ¢¯à ¢®
- ‘ª®á
- ’à ¢ 
- Š ¬¥­ì
- „¥à¥¢®
„ «¥¥ ¢ ä ©« ¤®¯¨á뢠¥âáï ®¯à¥¤¥«ñ­­®¥ ª®«¨ç¥á⢮
­ã«¥© (0x00) ¤«ï ⮣®, ç⮡ë à §¬¥à ä ©«  ¡ë« ªà â¥­
512 ¡ ©â ¬.
<EFBFBD><EFBFBD>ˆŒ…<EFBFBD> ᪨­  ¨ ­ ¡®à  ã஢­¥© ­ å®¤ïâáï ¢ ª â «®£¥
contsamp.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -51,6 +51,22 @@ bool w_redraw=true;
const char level_label[] = "“஢¥­ì:"; const char level_label[] = "“஢¥­ì:";
const char attempts_left[] = "Žáâ «®áì ¯®¯ë⮪:"; const char attempts_left[] = "Žáâ «®áì ¯®¯ë⮪:";
const char grass_left[] = "Žáâ «®áì âà ¢ë:"; const char grass_left[] = "Žáâ «®áì âà ¢ë:";
const char level_select_1[] = "‚ë¡¥à¨â¥ ­ ¡®à ã஢­¥© (­ ¦¬¨â¥ <1> ¨«¨ <2>):";
const char level_select_2[] = "1. ‚áâ஥­­ë¥ ã஢­¨";
const char level_select_3[] = "2. ‚­¥è­¨© ­ ¡®à ã஢­¥©";
const char about1[] = "Š®««¥ªâ¨¢ ࠧࠡ®â稪®¢:";
const char about2[] = "€­¤à¥© Œ¨å ©«®¢¨ç aka Dron2004 - ¯à®£à ¬¬¨à®¢ ­¨¥, ¢áâ஥­­ ï £à ä¨ª  (¡¥§ ᪨­ )";
const char about3[] = "Mario79 - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥, ¢ ¦­ë¥ ¨¤¥¨";
const char about4[] = "Ataualpa - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥";
const char about5[] = "Leency - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥, § ¬¥ç â¥«ì­ë¥ ᪨­ë, ¢ ¦­ë¥ ¨¤¥¨";
const char about6[] = "Mike - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥";
const char about7[] = "bw - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥, ¢ ¦­ë¥ ¨¤¥¨";
const char about8[] = "diamond - ¨¤¥ï ®â¬¥­ë 室 , â¥áâ¨à®¢ ­¨¥";
const char about9[] = "Žâ¤¥«ì­®¥ ᯠᨡ®:";
const char about10[] = "‚ᥬ, ªâ® ¨£à ¥â ¢ íâã ¨£àã :-) !";
const char about11[] = "­ ¦¬¨â¥ <BACKSPACE> ¤«ï ¢®§¢à â  ¢ ¬¥­î";
#else #else
const char windowTitle[] = "Kosilka for Kolibri"; const char windowTitle[] = "Kosilka for Kolibri";
const char version[] = " Ver. 1.16"; const char version[] = " Ver. 1.16";
@ -68,6 +84,22 @@ bool w_redraw=true;
const char level_label[] = "Level:"; const char level_label[] = "Level:";
const char attempts_left[] = "Attempts left:"; const char attempts_left[] = "Attempts left:";
const char grass_left[] = "Grass left:"; const char grass_left[] = "Grass left:";
const char level_select_1[] = "Shoose level pack (press <1> or <2>):";
const char level_select_2[] = "1. Built-in levels";
const char level_select_3[] = "2. External levels";
const char about1[] = "Our team:";
const char about2[] = "Andrei Mikhailovich aka Dron2004 - development, built-in graphics (excluding skin)";
const char about5[] = "Leency - help in development and bugfixing, English translation, testing, beautiful skins";
const char about3[] = "Mario79 - testing, help in development, ideas";
const char about4[] = "Ataualpa - testing, help in development";
const char about6[] = "Mike - testing, help in development";
const char about7[] = "bw - testing, help in development, ideas";
const char about8[] = "diamond - idea of turn back, testing";
const char about9[] = "Special thanks to:";
const char about10[] = "Everyone who plays this game :-) !";
const char about11[] = "press <BACKSPACE> to back to menu";
#endif #endif
int levelcount=7; int levelcount=7;
@ -402,23 +434,23 @@ void draw_window(void){
} }
} }
kos_WriteTextToWindow(40,40,0x80, 0xFFFFFF ,(char*)windowTitle,22); kos_WriteTextToWindow(40,40,0x80, 0xFFFFFF, (char*)windowTitle,22);
kos_WriteTextToWindow(40,60,0x80, 0xFFFFFF ,(char*)version,12); kos_WriteTextToWindow(40,60,0x80, 0xFFFFFF, (char*)version,12);
kos_WriteTextToWindow(40,75,0x80, 0xFFFFFF ,"________________________________________",40); kos_WriteTextToWindow(40,75,0x80, 0xFFFFFF, "________________________________________",40);
kos_WriteTextToWindow(40,120,0x80, 0xFFFFFF ,"Š®««¥ªâ¨¢ ࠧࠡ®â稪®¢:",18); kos_WriteTextToWindow(40,120,0x80, 0xFFFFFF, (char*)about1, 18);
kos_WriteTextToWindow(40,150,0x80, 0xEEFFEE ,"€­¤à¥© Œ¨å ©«®¢¨ç aka Dron2004 - ¯à®£à ¬¬¨à®¢ ­¨¥, ¢áâ஥­­ ï £à ä¨ª  (¡¥§ ᪨­ )",32); kos_WriteTextToWindow(40,150,0x80, 0xEEFFEE, (char*)about2, 32);
kos_WriteTextToWindow(40,170,0x80, 0xDDFFDD ,"Mario79 - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥, ¢ ¦­ë¥ ¨¤¥¨",35); kos_WriteTextToWindow(40,170,0x80, 0xDDFFDD, (char*)about3, 35);
kos_WriteTextToWindow(40,190,0x80, 0xCCFFCC ,"Ataualpa - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥",36); kos_WriteTextToWindow(40,190,0x80, 0xCCFFCC, (char*)about4, 36);
kos_WriteTextToWindow(40,210,0x80, 0xBBFFBB ,"Leency - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥, § ¬¥ç â¥«ì­ë¥ ᪨­ë, ¢ ¦­ë¥ ¨¤¥¨",62); kos_WriteTextToWindow(40,210,0x80, 0xBBFFBB, (char*)about5, 62);
kos_WriteTextToWindow(40,230,0x80, 0xAAFFAA ,"Mike - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥",34); kos_WriteTextToWindow(40,230,0x80, 0xAAFFAA, (char*)about6, 34);
kos_WriteTextToWindow(40,250,0x80, 0x99FF99 ,"bw - â¥áâ¨à®¢ ­¨¥, ¯®¬®éì ¢ ࠧࠡ®âª¥, ¢ ¦­ë¥ ¨¤¥¨",49); kos_WriteTextToWindow(40,250,0x80, 0x99FF99, (char*)about7, 49);
kos_WriteTextToWindow(40,270,0x80, 0x99FF99 ,"diamond - ¨¤¥ï ®â¬¥­ë 室 , â¥áâ¨à®¢ ­¨¥",49); kos_WriteTextToWindow(40,270,0x80, 0x99FF99, (char*)about8, 49);
kos_WriteTextToWindow(40,300,0x80, 0x88FF88 ,"Žâ¤¥«ì­®¥ ᯠᨡ®:",16); kos_WriteTextToWindow(40,300,0x80, 0x88FF88, (char*)about9, 16);
kos_WriteTextToWindow(40,330,0x80, 0x77FF77 ,"‚ᥬ, ªâ® ¨£à ¥â ¢ íâã ¨£àã :-) !",50); kos_WriteTextToWindow(40,330,0x80, 0x77FF77, (char*)about10, 50);
kos_WriteTextToWindow(40,430,0x80, 0x66FF66 ,"­ ¦¬¨â¥ <BACKSPACE> ¤«ï ¢®§¢à â  ¢ ¬¥­î",35); kos_WriteTextToWindow(40,430,0x80, 0x66FF66, (char*)about11, 35);
} }
@ -438,9 +470,9 @@ void draw_window(void){
} }
} }
kos_WriteTextToWindow(215, 200,0x80, 0xFFFFFF ,"‚ë¡¥à¨â¥ ­ ¡®à ã஢­¥© (­ ¦¬¨â¥ <1> ¨«¨ <2>):",0); kos_WriteTextToWindow(215, 200,0x80, 0xFFFFFF, (char*)level_select_1,0);
kos_WriteTextToWindow(215, 220,0x80, 0xFFFFFF ,"1. ‚áâ஥­­ë¥ ã஢­¨",0); kos_WriteTextToWindow(215, 220,0x80, 0xFFFFFF, (char*)level_select_2,0);
kos_WriteTextToWindow(215, 240,0x80, 0xFFFFFF ,"2. ‚­¥è­¨© ­ ¡®à ã஢­¥©",0); kos_WriteTextToWindow(215, 240,0x80, 0xFFFFFF, (char*)level_select_3,0);
} }