{"id":188594,"date":"2013-08-01T12:48:06","date_gmt":"2013-08-01T08:48:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=188594"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=188594","title":{"rendered":"<span class=\"post_title\">\u041a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0444\u0438\u043a\u0441 \u0448\u0438\u0440\u043e\u043a\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f FlatOut<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/aef\/c48\/e6a\/aefc48e6a83f50e6ded7999fb9cf2dfc.jpg\" align=\"left\"\/><br \/>  \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0444\u0438\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0438\u0433\u0440, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u044b\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u0445. \u041f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Flatout\">FlatOut<\/a>, \u0432\u043e\u0442 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0437\u0430\u043e\u0434\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c.<br \/>  <br clear=\"all\"\/>  <a name=\"habracut\"><\/a><\/p>\n<h2>\u0427\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f<\/h2>\n<p>  \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0438\u043a\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u044b \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0433\u0440\u044b, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b: <a href=\"https:\/\/www.hex-rays.com\/products\/ida\/support\/download.shtml\" title=\"IDA\">IDA<\/a>, <a href=\"http:\/\/www.cheatengine.org\/\" title=\"Cheat Engine\">Cheat Engine<\/a>, <a href=\"http:\/\/www.microsoft.com\/visualstudio\/rus\" title=\"Visual Studio\">Visual Studio<\/a>, <a href=\"https:\/\/dl.dropboxusercontent.com\/u\/13992625\/gta\/stuff\/Universal_asi_loader.zip\">\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 ASI Loader<\/a>(\u043e\u0431 \u044d\u0442\u043e\u043c \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435), \u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0439 \u0438\u0433\u0440\u044b \u0432 \u043e\u043a\u043d\u0435 \u2014 <a href=\"http:\/\/forum.xentax.com\/viewtopic.php?f=33&amp;t=10242\" title=\"D3DWindower\">D3DWindower<\/a>.<\/p>\n<h2>\u0420\u0430\u0437\u0431\u043e\u0440 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/h2>\n<p>  \u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u0441 \u0447\u0435\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043c \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u2014 \u00abflatout.exe\u00bb \u0438 \u043e\u0434\u043d\u0430 \u043f\u0430\u043f\u043a\u0430 \u2014 \u00abdata\u00bb. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0433\u0440\u0430\u0445 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 DLL, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0432 Max Payne \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044f \u0434\u0435\u043b\u0430\u043b \u0438\u043d\u0436\u0435\u043a\u0442 \u0432 e2mfc.dll, \u0430 \u043d\u0435 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b. Flatout.exe \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0435\u043d \u0434\u043e v1.1, \u043d\u043e <a href=\"http:\/\/www.buka.ru\/cgi-bin\/show.pl?option=Show_patch&amp;id=143\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0442\u0447<\/a> \u043e\u0442 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u0430 \u2014 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0411\u0423\u041a\u0410\u00bb, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0440\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 EXE:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/888\/e14\/f2c\/888e14f2c06bd9bae73d295b04d7fce8.jpg\"\/><\/p>\n<p>  \u042f \u0432\u044b\u0431\u0440\u0430\u043b flatout,3.exe(2\u00a0822\u00a0144 \u0431\u0430\u0439\u0442) \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a IDA \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0432\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0434.<\/p>\n<h2>\u041e\u043f\u044b\u0442\u044b<\/h2>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432 flatout,3.exe \u0432 IDA, \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u044e \u0438\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. \u0421\u0443\u0434\u044f \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0440\u044b\u0445 \u0438\u0433\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 3D \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u0438 \u0438\u0437 \u044d\u0442\u0438\u0445: <strong>640.0, 480.0, 1.3333, 0.0015625 = 1.0\/640.0, 0.00208333333 = 1.0\/480.0<\/strong> \u0438 \u0442.\u043f. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0432\u0431\u0438\u0432\u0430\u044e \u0432 \u043f\u043e\u0438\u0441\u043a <strong>0.0015625<\/strong>, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b <strong>640.0<\/strong> \u0438 <strong>480.0<\/strong> \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0434\u0430\u043b\u0435\u043a\u0443. IDA \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <strong>0x667CE4<\/strong>: <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/dd3\/aff\/bff\/dd3affbfffdb335f9b73c9f5df979473.jpg\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438\u0433\u0440\u0443 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 FlatOut \u0432 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0438 1280\u0445720:<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/storage2\/d3a\/7ca\/29f\/d3a7ca29f575c41d532062a7b443e40d.jpg\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/de5\/6f6\/be8\/de56f6be81c7cdeab7e2bf4efb09542f.jpg\"\/><\/a>&nbsp;&nbsp;<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e Cheat Engine, \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0441\u044c \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443. \u041a\u043d\u043e\u043f\u043a\u043e\u0439 \u00abAdd address manually\u00bb \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0430\u0434\u0440\u0435\u0441 <strong>0x667CE4<\/strong>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/ee7\/558\/e65\/ee7558e656273e5ed8687babb3db5ddf.jpg\"\/><\/p>\n<p>  \u041c\u0435\u043d\u044f\u044e \u0435\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 0.0010, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0439\u0434\u0435\u0442. \u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0434\u0435\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u043e:<\/p>\n<p>  <a href=\"http:\/\/img707.imageshack.us\/img707\/5194\/vfxb.jpg\"><img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/c27\/5bc\/19a\/c275bc19a50c7a563d2ecc43e1a0424b.jpg\"\/><\/a>&nbsp;&nbsp;<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438, \u043a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0441\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435 3D \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e <a href=\"http:\/\/ru.wikipedia.org\/wiki\/\u0421\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435_\u0441\u0442\u043e\u0440\u043e\u043d_\u044d\u043a\u0440\u0430\u043d\u0430\">aspect ratio<\/a>, <strong>4:3<\/strong> \u0438\u043b\u0438 <strong>1.3333<\/strong> \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u0447\u0438\u0441\u043b\u0430 <strong>480<\/strong> \u043d\u0430 <strong>360<\/strong>. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u0440\u0430\u043d\u0435\u0435 \u0432 Max Payne, \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u0438 \u0437\u0434\u0435\u0441\u044c. \u0412 Cheat Engine \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u044e \u00abFirst Scan\u00bb:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/2e5\/d0b\/158\/2e5d0b158d1c0182ca6c2585e20ff0eb.jpg\"\/><br \/>  &nbsp;<br \/>  \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u0435\u043b\u0451\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c. \u0417\u0435\u043b\u0451\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 flatout.exe, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/721\/fbb\/4f2\/721fbb4f2788d8539a5595362c3ccea7.jpg\"\/><br \/>  &nbsp;<br \/>  \u041c\u0435\u043d\u044f\u044e \u0432\u0441\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 <strong>360<\/strong>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/9a4\/9fa\/043\/9a49fa0430422950c959c553844a621f.jpg\"\/><br \/>  &nbsp;<br \/>  \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c \u0432\u044b\u044f\u0441\u043d\u044f\u044e, \u0447\u0442\u043e \u0432\u044b\u043b\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u2014 <strong>FlatOut.exe+1069C3(0x5069C3)<\/strong> \u0438 <strong>FlatOut.exe+107CCB(0x507CCB)<\/strong>. \u041f\u0435\u0440\u0435\u0445\u043e\u0436\u0443 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <strong>0x5069C3<\/strong> \u0432 IDA, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 \u0432\u044b\u043b\u0435\u0442\u0430\u0435\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/8e8\/daa\/d67\/8e8daad670ef2ea04cbea7f5114ef09d.jpg\"\/><br \/>  &nbsp;<br \/>  <b>480<\/b> \u0437\u0434\u0435\u0441\u044c \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0430 \u043d\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442, \u043d\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0438\u0436\u0435, \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x5069D0, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/ff0\/589\/da7\/ff0589da780f14184567fe91c2c50e5a.jpg\"\/><br \/>  &nbsp;<br \/>  \u041f\u0440\u043e\u0431\u0443\u044e \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b 4.0 \u0438 3.0 \u043d\u0430 16.0 \u0438 9.0 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/983\/ceb\/30d\/983ceb30d17f1fe42480c19edce0ec72.jpg\"\/><br \/>  &nbsp;<br \/>  C \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044e \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0442\u043e \u0441\u0430\u043c\u043e\u0435 aspect ratio, \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0438 1280\u0445720 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 \u043e\u0431\u0440\u0435\u043b\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438(\u043a\u0430\u043a \u0431\u044b\u043b\u043e\/\u043a\u0430\u043a \u0441\u0442\u0430\u043b\u043e):<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/storage2\/241\/495\/317\/24149531705d92b3301c9d7e7161f3db.jpg\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/768\/aea\/bef\/768aeabef0dc7e9ef8ae5b8f420e63d6.jpg\"\/><\/a><br \/>  &nbsp;&nbsp;<br \/>  <a href=\"http:\/\/habrastorage.org\/storage2\/932\/7c9\/f22\/9327c9f228237e6da77a174b94279443.jpg\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/dac\/161\/7fe\/dac1617feb6b003309d3ab395d0a7f43.jpg\"\/><\/a>&nbsp;&nbsp;<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445.<\/p>\n<h2>C++<\/h2>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u044e Visual Studio, \u0441\u043e\u0437\u0434\u0430\u044e \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 Win32, \u0442\u0438\u043f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 DLL. \u0412 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0446\u0438\u0438:  <\/p>\n<ul>\n<li>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2014 Release<\/li>\n<li>\u041d\u0430\u0431\u043e\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u2014 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u0443\u044e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443<\/li>\n<li>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u2014 \u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f (\/MT)<\/li>\n<li>\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u2014 Level1 (\/W1)<\/li>\n<li>\u041a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u2014 .asi<\/li>\n<li>\u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u2014 E:\\Games\\FlatOut\\FlatOut<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 CPatch.<\/p>\n<p>  Dllmain:  <\/p>\n<pre><code class=\"cpp\">#include &quot;stdafx.h&quot; #include &quot;CPatch.h&quot;  HANDLE HndThread;  int* g_Width = (int *)0x6B0D88; int* g_Height = (int *)0x6B0D8C;   int g_CameraAspectRatio_x = 0x5069DA; int g_CameraAspectRatio_y = 0x5069E0; int g_hud_stretch_x = 0x667CE4;  #define screen_width (float)*g_Width #define screen_heigth (float)*g_Height #define hud_stretch_x (float)*g_hud_stretch_x  float hud_stretch_new = 0.0;  int Thread() { \twhile (!screen_width) \t{ \t\tSleep(0); \t}   \thud_stretch_new = 1.0\/(480.0*(screen_width\/screen_heigth));  \tCPatch::SetFloat(g_CameraAspectRatio_x, screen_width); \tCPatch::SetFloat(g_CameraAspectRatio_y, screen_heigth); \tCPatch::SetFloat(g_hud_stretch_x, hud_stretch_new); \t\t \treturn 0; }   BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) {     if(reason==DLL_PROCESS_ATTACH)     { \t\tHndThread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)&Thread,NULL,0,NULL);     }     return TRUE; } <\/code><\/pre>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u044f ASI-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0430\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0433\u0440\u043e\u0439, \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <a href=\"https:\/\/dl.dropboxusercontent.com\/u\/13992625\/gta\/stuff\/Universal_asi_loader.zip\">\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 ASI Loader<\/a>, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0432 dsound.dll \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0438\u0433\u0440\u043e\u0439. ASI \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f DLL, \u0430 dsound.dll \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 ASI \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043b\u044e\u0431\u043e\u0439 \u0438\u0433\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 DirectSound. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437 \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0438 scripts.<\/p>\n<h2>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/h2>\n<p>  \u042d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u043d\u0430 \u0435\u0449\u0435 \u043d\u0435 \u0440\u0430\u0437 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0441\u044f. \u0415\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e. \u0422\u0430\u043a\u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0440\u0443\u0433\u0438\u0445 EXE, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 steam-\u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/storage2\/075\/69d\/c81\/07569dc81befd29a95e0aa90cbfb90ff.jpg\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/882\/8fd\/eb7\/8828fdeb788af1145f60fdcb587d6ca6.jpg\"\/><\/a><br \/>  &nbsp;<br \/>  <a href=\"http:\/\/habrastorage.org\/storage2\/10f\/b0c\/731\/10fb0c73152898c0f64bcf04b8e6e4f6.jpg\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/661\/465\/5a1\/6614655a19ddb316fd62a8307d40c5e8.jpg\"\/><\/a><br \/>  &nbsp;<br \/>  <a href=\"http:\/\/habrastorage.org\/storage2\/90b\/830\/f77\/90b830f77326f0763e489975ed39362e.jpg\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/f77\/c43\/f2f\/f77c43f2f437e1d3f01c648350f28c0b.jpg\"\/><\/a><br \/>  &nbsp;<br \/>  \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u043c\u043e\u0436\u043d\u043e \u0441 <a href=\"https:\/\/github.com\/ThirteenAG\/FlatOut_widescreen_fix\/releases\" title=\"github\">github<\/a>.<br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430 \u2014 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0438\u0433\u0440\u043e\u0439. \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/188594\/\"> http:\/\/habrahabr.ru\/post\/188594\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/aef\/c48\/e6a\/aefc48e6a83f50e6ded7999fb9cf2dfc.jpg\" align=\"left\"\/><br \/>  \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0444\u0438\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0438\u0433\u0440, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u044b\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u0445. \u041f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Flatout\">FlatOut<\/a>, \u0432\u043e\u0442 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0437\u0430\u043e\u0434\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c.<br \/>  <br clear=\"all\"\/>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-188594","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/188594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=188594"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/188594\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=188594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=188594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=188594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}