Как стать автором
Обновить

Комментарии 17

Эх, демосцена… Хочу вернуть те деньки, когда делали лабиринты в 256 байт и 3d игры в 96 кбайт.
Столько лет прошло, а проблемы все те же
Разве Ъ демосценеры пишут на Delphi?
Среди паскалеязычников также существует каста спортсменов-извращенцев, правда менее заметная и активная.
Кстати, не так давно ваша команда столкнулась с одним из представителей в конкурсе ВК.
НЛО прилетело и опубликовало эту надпись здесь
Именно поэтому теперь телефоны двух ядерные с 1 Гб оперативной памяти, и софт стал по размерам как дистрибутив какой либо игры 2005 года. Разработка упростилась, а производительность программ нет, лишь за счет роста мощности железа. Теперь новая проблема, все это параллелить, усложнение разработки. В итоге придумаю какую либо высокую абстракцию, и будем паралелить свои код на 32 ядра прозрачно, пока не появятся тройная логика, и не придется придумывать новые алгоритмы, и тогда опять математики спасут положение дел вновь…
К сожалению, купить лишние пару гигабайт оперативки дешевле, чем платить программистам, которые бы писали оптимизированный софт. Меня это тоже печалит, но боюсь, что это данность жизни.
Вы отчасти правы, но это не относится к демосцене, которая является творческим видом спорта.
хм, mirgames.ru? Приятно видеть таких людей )
Спасибо, взаимно )
Помню, когда-то для уменьшения размера исполняемого файла в Delphi я использовал KOL.
НЛО прилетело и опубликовало эту надпись здесь
{$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
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории