Pull to refresh

Comments 17

Эх, демосцена… Хочу вернуть те деньки, когда делали лабиринты в 256 байт и 3d игры в 96 кбайт.
Столько лет прошло, а проблемы все те же
Среди паскалеязычников также существует каста спортсменов-извращенцев, правда менее заметная и активная.
Кстати, не так давно ваша команда столкнулась с одним из представителей в конкурсе ВК.
UFO just landed and posted this here
Именно поэтому теперь телефоны двух ядерные с 1 Гб оперативной памяти, и софт стал по размерам как дистрибутив какой либо игры 2005 года. Разработка упростилась, а производительность программ нет, лишь за счет роста мощности железа. Теперь новая проблема, все это параллелить, усложнение разработки. В итоге придумаю какую либо высокую абстракцию, и будем паралелить свои код на 32 ядра прозрачно, пока не появятся тройная логика, и не придется придумывать новые алгоритмы, и тогда опять математики спасут положение дел вновь…
К сожалению, купить лишние пару гигабайт оперативки дешевле, чем платить программистам, которые бы писали оптимизированный софт. Меня это тоже печалит, но боюсь, что это данность жизни.
Вы отчасти правы, но это не относится к демосцене, которая является творческим видом спорта.
хм, mirgames.ru? Приятно видеть таких людей )
Помню, когда-то для уменьшения размера исполняемого файла в Delphi я использовал KOL.
UFO just landed and posted this here
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
Спасибо, интересно!
Жаль, что применимо только для демосцен, т.к. Delphi3 не умеет таких полезный вещей как перегруженные функции и параметры по-умолчанию.
интересно, а почему это никто не упомянул?
В свое время эта статья от MS-Rem'a «прогремела» среди delphi программистов.
Подскажите как для crinkler.exe задать путь к obj-файлу?
Поспешил. Скачал новую версию и все ок, иначе работало только если obj файл в той же папке.
Может кому пригодиться, кидаем в bin файлы:

  • dcc32.exe
  • link.exe
  • crinkler.exe
  • MSPDB60.DLL

compile_packed.bat

set OUT=out.exe
set LIBS=kernel32.lib user32.lib gdi32.lib opengl32.lib
set PACKER_OPTIONS=/ENTRY:initialization$qqrv /PRINT:IMPORTS /PRINT:LABELS /SUBSYSTEM:CONSOLE /COMPMODE:SLOW /UNSAFEIMPORT /HASHSIZE:256 /HASHTRIES:1000 /ORDERTRIES:10000 /RANGE:opengl32 /TRUNCATEFLOATS:8

set LIB=f:\Dev\Delphi\dmini\libs;libs
set BIN=f:\Dev\Delphi\dmini\bin

del *.dcu
del *.obj

%BIN%\dcc32 system.pas sysinit.pas -jP
%BIN%\link -edit sysinit.obj
%BIN%\crinkler %LIBS% sysinit.obj /OUT:%OUT% %PACKER_OPTIONS%

del *.dcu
del *.obj


compile.bat

set OUT=out.exe
set LIBS=kernel32.lib user32.lib gdi32.lib opengl32.lib
set LINKER_OPTIONS=/ENTRY:initialization$qqrv /MERGE:.rdata=.text /MERGE:_INIT_=.text /FILEALIGN:512 /SECTION:.text,ERWX /IGNORE:4078 /IGNORE:4108 /IGNORE:4089 /NODEFAULTLIB /SUBSYSTEM:CONSOLE

set LIB=f:\Dev\Delphi\dmini\libs;libs
set BIN=f:\Dev\Delphi\dmini\bin

del *.dcu
del *.obj

%BIN%\dcc32 system.pas sysinit.pas -jP
%BIN%\link %LIBS% sysinit.obj /OUT:%OUT% %LINKER_OPTIONS%

del *.dcu
del *.obj
Sign up to leave a comment.

Articles