Movie Resolution Fix
Type: Runtime Patches
Purpose: Fixes the resolution of the movie files to not be scaled down to 320 x 160.
When the game loads movie files, it has the size of the movie scaled to 320x160. Because of this, the movies are boxed and offset from the screen top with black borders on the top and bottom. This causes the videos to look smushed and oddly scaled. This can be found here:
- .text:0042F9BC lea ecx, [esi+18h]
- .text:0042F9BF mov dword ptr [esi-8], 3
- .text:0042F9C6 push ecx
- .text:0042F9C7 mov byte ptr [esi-1], 1Ch
- .text:0042F9CB mov [esi], bx
- .text:0042F9CE mov word ptr [esi+2], 28h ;<== Y Coord Offset
- .text:0042F9D4 mov word ptr [esi+4], 140h ;<== Width
- .text:0042F9DA mov word ptr [esi+6], 0A0h ;<== Height
- .text:0042F9E0 call sub_423420
- .text:0042F9E5 mov [esi+1Eh], bl
- .text:0042F9E8 mov [esi+1Dh], bl
- .text:0042F9EB mov [esi+1Ch], bl
- .text:0042F9EE mov [esi+22h], bx
- .text:0042F9F2 mov [esi+20h], bx
- .text:0042F9F6 mov word ptr [esi+24h], 140h
- .text:0042F9FC mov word ptr [esi+26h], 0F0h
- .text:0042FA02 mov byte ptr [edi], 14h
Here we can apply runtime patches when the game first loads to override the movie size that is played. In order to fix the movies to play the full size of the resolution you have selected, we need to remove the "Y Coord Offset" value, and adjust the "Height" value as well.
For the "Y Coord Offset", we want to make that value 0x0000.
For the "Height", we want to make that value 0x00F0.
This will cause the screen scaling to match the resolution you are currently playing the game with and the videos will look much better.