;    
; video comm off by default
@ ADDR 1 0  x301002 x037E0  x302002 x037E0 ; 004B47E0

;     
; workaround of auto-off comm subtitles
; @ ADDR 0 1  x301002 x037D8  x302002 x037D8 ; 004B47D8

; 00456421 89 0D 58 64 4B 00    mov         dword ptr ds:[4B6458h],ecx
; 00456427 8B 4C 24 64          mov         ecx,dword ptr [esp+64h]
; 0045642B 3B C3                cmp         eax,ebx
; 0045642D 89 0D D8 47 4B 00    mov         dword ptr ds:[4B47D8h],ecx
; --------                     
; 0045642D EB 04                jmp         00456433
; 0045642F D8 47 4B 00          dd          4B47D8h
; --------
; 00456433 75 06                jne         0045643B
; 00456435 89 35 D8 47 4B 00    mov         dword ptr ds:[4B47D8h],esi
; 0045643B 8B 44 24 68          mov         eax,dword ptr [esp+68h]

{ REPL 2
  $ x89 x0d  ; mov
  $ xEB x04  ; jmp
  @ CORE  x301000 x5542D  x302000 x5542D  ; 0045642D
} REPL

;    " " (alt flt mode)  Longbow     
; workaround of auto-"alt flt mode" for Longbow and near planet surface
; v3.01 - 004BD214 / 004BD210
; v3.02 - 004BD234 / 004BD230

; 0044C563 39 15 5C 52 4C 00    cmp         dword ptr ds:[4C525Ch],edx
; 0044C569 75 2A                jne         0044C595
; -------- replace with
; 0044C569 75 2F                jne         0044C59A
; --------

; 0044C585 3B CE                cmp         ecx,esi
; 0044C587 74 0C                je          0044C595
; -------- replace with
; 0044C587 74 11                je          0044C59A
; --------
; 0044C589 89 15 30 D2 4B 00    mov         dword ptr ds:[4BD230h],edx
; 0044C58F 5F                   pop         edi
; 0044C590 5E                   pop         esi
; 0044C591 83 C4 0C             add         esp,0Ch
; 0044C594 C3                   ret
; 0044C595 A3 30 D2 4B 00       mov         [004BD230],eax
; 0044C59A 5F                   pop         edi
; 0044C59B 5E                   pop         esi
; 0044C59C 83 C4 0C             add         esp,0Ch
; 0044C59F C3                   ret

{ REPL 2
  $ x75 x2A  ; jne 0044C595
  $ x75 x2F  ; jne 0044C59A
  @ CORE  x301000 x4B569  x302000 x4B569  ; 0044C569
} REPL
{ REPL 2
  $ x74 x0C  ; je 0044C595
  $ x74 x11  ; je 0044C59A
  @ CORE  x301000 x4B587  x302000 x4B587  ; 0044C587
} REPL

;; various TODOs not made yet

;    , , , /    

; :  004BBC40..004BBC4C  4BBCC0..4BBCCC ( ),  40F5E2

;    (B3) -    - :
; 0040F290 83 C9 FF             or          ecx,0FFFFFFFFh
; 0040F293 33 C0                xor         eax,eax
; 0040F295 C6 05 00 BB 4B 00 FF mov         byte ptr ds:[4BBB00h],0FFh
; 0040F29C 89 0D 04 BB 4B 00    mov         dword ptr ds:[4BBB04h],ecx
; 0040F2A2 A3 C0 BC 4B 00       mov         [004BBCC0],eax
; 0040F2A7 A3 40 BC 4B 00       mov         [004BBC40],eax
; 0040F2AC A3 44 BC 4B 00       mov         [004BBC44],eax
; 0040F2B1 A3 48 BC 4B 00       mov         [004BBC48],eax
; 0040F2B6 A3 4C BC 4B 00       mov         [004BBC4C],eax
; 0040F2BB 89 0D B8 BC 4B 00    mov         dword ptr ds:[4BBCB8h],ecx
; 0040F2C1 A3 B4 BC 4B 00       mov         [004BBCB4],eax
; 0040F2C6 A3 B0 BC 4B 00       mov         [004BBCB0],eax
; 0040F2CB A3 78 BC 4B 00       mov         [004BBC78],eax
; 0040F2D0 C7 05 A8 BC 4B 00 32 mov         dword ptr ds:[4BBCA8h],32h
; 0040F2DA C3                   ret
; 0040F2DB 90                   nop

; ; v3.02:
; { REPL 2
; ; mov [004BBC40],eax  ->  jmp 0040F2BB
;   $ xA3 x40
;   $ xEB x12
;   @ CORE  x302000 x0E2A7
; } REPL
; ; v3.01:
; { REPL 2
; ; mov [004BBC20],eax  ->  jmp 0040F2BB
;   $ xA3 x20
;   $ xEB x12
;   @ CORE  x301000 x0E2A7
; } REPL

;   ( ):
; 0040F350 83 EC 14             sub         esp,14h
; 0040F353 A1 C0 BC 4B 00       mov         eax,[004BBCC0]
; 0040F358 53                   push        ebx
; 0040F359 55                   push        ebp
; 0040F35A 56                   push        esi
; 0040F35B 57                   push        edi
; 0040F35C 33 ED                xor         ebp,ebp
; 0040F35E BF 01 00 00 00       mov         edi,1
; 0040F363 3B C5                cmp         eax,ebp
; 0040F365 89 7C 24 10          mov         dword ptr [esp+10h],edi
; 0040F369 75 37                jne         0040F3A2
; 0040F36B 8B 01                mov         eax,dword ptr [ecx]
; 0040F36D 8B 40 64             mov         eax,dword ptr [eax+64h]
; 0040F370 83 C0 14             add         eax,14h
; 0040F373 A3 C0 BC 4B 00       mov         [004BBCC0],eax
; 0040F378 8B 11                mov         edx,dword ptr [ecx]
; 0040F37A 8B 52 68             mov         edx,dword ptr [edx+68h]
; 0040F37D 83 C2 68             add         edx,68h
; 0040F380 89 15 C4 BC 4B 00    mov         dword ptr ds:[4BBCC4h],edx
; 0040F386 8B 11                mov         edx,dword ptr [ecx]
; 0040F388 8B 52 6C             mov         edx,dword ptr [edx+6Ch]
; 0040F38B 83 C2 14             add         edx,14h
; 0040F38E 89 15 C8 BC 4B 00    mov         dword ptr ds:[4BBCC8h],edx
; 0040F394 8B 11                mov         edx,dword ptr [ecx]
; 0040F396 8B 52 70             mov         edx,dword ptr [edx+70h]
; 0040F399 83 C2 14             add         edx,14h
; 0040F39C 89 15 CC BC 4B 00    mov         dword ptr ds:[4BBCCCh],edx
; 0040F3A2 8B 15 A8 41 4C 00    mov         edx,dword ptr ds:[4C41A8h]
; 0040F3A8 8D 72 FF             lea         esi,[edx-1]
; 0040F3AB 83 FE 1A             cmp         esi,1Ah
; 0040F3AE 0F 87 65 03 00 00    ja          0040F719
; 0040F3B4 8A 15 AC 41 4C 00    mov         dl,byte ptr ds:[4C41ACh]
; 0040F3BA 33 DB                xor         ebx,ebx
; 0040F3BC 8A 9E 38 F7 40 00    mov         bl,byte ptr [esi+40F738h]
; 0040F3C2 FF 24 9D 24 F7 40 00 jmp         dword ptr [ebx*4+40F724h]
; 0040F3C9 C7 05 04 BB 4B 00 FF mov         dword ptr ds:[4BBB04h],0FFFFFFFFh
; 0040F3D3 C6 05 00 BB 4B 00 FF mov         byte ptr ds:[4BBB00h],0FFh
; 0040F3DA 8B 01                mov         eax,dword ptr [ecx]
; 0040F3DC 8B 40 20             mov         eax,dword ptr [eax+20h]
; 0040F3DF 89 A8 9F 00 00 00    mov         dword ptr [eax+9Fh],ebp
; 0040F3E5 05 96 00 00 00       add         eax,96h
; 0040F3EA 39 28                cmp         dword ptr [eax],ebp
; 0040F3EC 0F 85 27 03 00 00    jne         0040F719
; 0040F3F2 8B 11                mov         edx,dword ptr [ecx]
; 0040F3F4 89 6A 44             mov         dword ptr [edx+44h],ebp
; 0040F3F7 8B 01                mov         eax,dword ptr [ecx]
; 0040F3F9 8B 50 48             mov         edx,dword ptr [eax+48h]
; 0040F3FC 8B 40 20             mov         eax,dword ptr [eax+20h]
; 0040F3FF 8B 12                mov         edx,dword ptr [edx]
; 0040F401 8D 14 92             lea         edx,[edx+edx*4]
; 0040F404 8D 14 92             lea         edx,[edx+edx*4]
; 0040F407 89 7C 10 09          mov         dword ptr [eax+edx+9],edi
; 0040F40B 8B 09                mov         ecx,dword ptr [ecx]
; 0040F40D 8B 51 48             mov         edx,dword ptr [ecx+48h]
; 0040F410 8A 02                mov         al,byte ptr [edx]
; 0040F412 A2 00 BB 4B 00       mov         [004BBB00],al
; 0040F417 5F                   pop         edi
; 0040F418 5E                   pop         esi
; 0040F419 5D                   pop         ebp
; 0040F41A 5B                   pop         ebx
; 0040F41B 83 C4 14             add         esp,14h
; 0040F41E C3                   ret

; :   0179303C (    - 017691D0)  0427453
