Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - NN

Страницы: [1]
1
вот же еще один хейтер-он же знаток кода
Ну что же вы уважаемый, раз вам так омерзителен код эмулятора, не перепишете его или не организуете команду профессиональных программистов и не профинансируете их
Сделайте лучше, а иначе это все пустой трёп

Хех, я бы и сам взялся, если бы мне за это платили.

2
если вы такой умный, то почему до сих пор не в команде у них и не помогаете с оптимизацией? :)

Да не, бесплатно я ж говорю, никто нормальный не будет кодить.
Какая у них там команда? Любители по всему миру, каждый накидает в эту кучу кусок своего дерьма, что получится хорошего?

Да и нет у меня опыта написания подобного софта. Это жеж изучать надо архитектуру приставки и её работу. Потом уже думать как реализовать всё это с наименьшим использованием ресурсов.

3
Как по мне то просто не надо распинаться перед человеком, который пишет полную хрень имея совсем уже поверхностные знания в программировании и нулевые в плане работы процессора и теперь вот решил дать нам тут бесплатную консультацию как оно надо эмуляторы писать чтобы на его старом пне всё работало.

Так ты про процедуры чесанул хорошо=)
Процедур у него в Си нет...
Ничего я не давал, я лишь пишу, что код эмулятора редкостный кал.
Вот так на понятном тебе языке.


Добавлено позже:
Да видимо сборочка та медным тазом накрылась.
Глянул обычную 4954, не то.
Сорцов даже старых нет.

4
А мужики то и не в курсе...
Между прочим большинство начинающих программистов не понимают рекурсивные алгоритмы и кроме "это когда функция вызывает саму себя" выдавить больше из себя не могут на собеседованиях.
Я повторюсь что рекурсия используеться чтобы не усложнять и так сложный код, в плане производительности и ресурсов рекурсия в основном требует больше памяти, по скорости выполнения столь разительных отличий которые ты себе видимо уже вообразил не будет учитывая все хитрости современных компиляторов, особенно если использовать хвостовую рекурсию ...
Ты не знаешь что такое многопоточность?
Так вот это вот она и есть. By the way: в си и си++ нет процедур, это в паскале функции и процедуры.
На asm'е можно всё, может не надо было ограничиваться asm вставками и всё писать на asm'е ?Впрочем, товарищ, идите нахер. Что-то я сильного распинаюсь перед студентом-двоешником, который (возможно) изучал паскакаль в университете и клепал формочки в делфи и возомнив себя it специалистом ещё ***** учить тут будет как надо программы писать. Условий он тут ***** предлагает в каждую функцию под каждую игру засунуть, ещё один большой switch/case ***** предложи.

Понятно всё с тобой.
Процедур у него нет в Си, красавчик=)
Рекурсия в любом случае отнимает процессорное время, использование памяти несущественно.

Добавлено позже:
>> Это жеж надо создать проверку в основной
функции, по которой эмулятор будет отличать игры
по заголовку например. Ну и после уже писать
условие, при котором будут выполняться хаки для
этой игры, а другие хаки, для других игр,
выполняться не будут.
это и есть говнокод) учитывая то количество игр и под многие такие хаки (в одной функции этим будет не обойтись) а потом еще следить чтоб новое не поломало все нахрен. лучше уж точность повышать. компы догонят потом. зато и поддерживаемость кода лучше и совместимость.
В каком месте?
Проверка и выполнение условия не вызывают никакой нагрузки, так как выполняется только та часть кода, которая будет вызвана в этой самой проверке. Зачем чушь молоть, не зная даже азов программирования?

5
Тоесть предлагаешь разработчикам сидеть зализывать то что есть чтобы работало быстрее вместо того чтобы охватить больше фич ?
По секрету: не всякий вызов функции означает что она вот прям щас вернёт управление назад, а сама потом выполнит что-то в новом потоке так что если ты решил посчитать скобочки то тут этот подход не работает.
Ну а вобще я не понял что тебя смущает в многопоточности? Взаимосвязь между словами оптимизация и многопоточность весьма тонкая и она больше склоняеться в сторону распаралеливания всего что только можно.
Рекурсия используеться для того чтобы код был понятнее и его можно было потом править, а не делать 20 циклов с 4мя стеками от которых все (в том числе и ты через месяц) шарахкаються. Вобще ты так возмущаешься как-будто профилировщиком весь код прогнал и нашёл места где действительно можно что-то улучшить и это будет несложно переписать. Если правда есть что сказать - напиши на их форуме, комментарии "Пфф, пасаны у вас там рекурсия и паралельные функции, вы их эта перепишите, ну вы поняли кароч, да? Ещё эта, DX10 плагин пилите пабольше, DX11 карты у меня нет, ну вы тоже понял чё нада сделать, да ?".

Я за то, чтобы писали профессионалы, а не криворукие гавнокодеры, только и всего. Пусть даже платно.
Лучше ничего не писать, чем так.

Насчёт рекурсий: это когда функция вызывает саму себя. В случае с Dolphin это видимо стиль кодера такой гавнокодерский, они везде, глазные яблоки выпадут. Тут же ясно: чем больше таких рекурсий, тем больше требуется времени для вычисления одних и тех же значений. Почему бы не оптимизировать? Но таки да, 200 мегабайт жеж... Бесплатно тут никто не станет оптимизировать.

При чём тут работа и выполнение функций и многопоточность? Где в моём сообщении упоминается про многопоточность? Я тебя непонимаю абсолютно.


Добавлено позже:
ну или вместо этого нагородить вагон хаков которые сломают кучу других игр.

это кстати к любым эмуляторам относится.

Хех, кто жеж мешает использовать условия? Ничего не сломается, если всё делать грамотно.
Сишка, это жеж конструктор, в котором можно всё.
Другое дело - лень кодера.
Это жеж надо создать проверку в основной функции, по которой эмулятор будет отличать игры по заголовку например. Ну и после уже писать условие, при котором будут выполняться хаки для этой игры, а другие хаки, для других игр, выполняться не будут.
Это должен делать один человек, у которого хватит терпения.

6
ну коммерческий эмулятор bleem/bleemcast пс1 для шиндоуз 98 и дримкаст все равно имел совместимость так себе хоть и все-таки опередил своё время, а стоил прилично в розничной продаже.

С тем же успехом Dolphin могли впаривать за 20 долларов с привязкой по железу или не дай бог, онлайн аккаунтам.
Дык конечно, а что ты хотел? Если вызывать в функции ещё 10 параллельных функций и столько же процедур, о какой оптимизации идёт вообще речь? Я не говорю уже о постоянных рекурсиях, коих только в видеоплагине штук 10 минимум. Можно написать что угодно в Си, но чтобы это работало нормально, нужно жеж уметь не только кодить, но и оптимизировать, что самое важное.

7
эмулятор стал точнее. то что Вашего пк не хватает теперь - что поделать) угодить всем нельзя, а точность предпочтительнее.

Не компьютерное железо должно подстраиваться под программу, а программа под железо.
Сорцы размером в 200+ мегабайт, да ещё и с таким кодом, я конечно не гуру программирования, но 200 мегабайт кода? Дануна, жесткач. И ведь большая часть сорцов вообще ненужный кал. Что к чему уже скомпиленные либы там валяются?
Первое что бросилось в глаза, это сорцы видеоплагина:

void Renderer::ReinterpretPixelData(unsigned int convtype)
{
// TODO: MSAA support..
D3D11_RECT source = CD3D11_RECT(0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight());

ID3D11PixelShader* pixel_shader;
if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6(true);
else if (convtype == 2) pixel_shader = PixelShaderCache::ReinterpRGBA6ToRGB8(true);
else
{
PanicAlert("Trying to reinterpret pixel data with unsupported conversion type %d", convtype);
return;
}

// convert data and set the target texture as our new EFB
g_renderer->ResetAPIState();

D3D11_VIEWPORT vp = CD3D11_VIEWPORT(0.f, 0.f, (float)g_renderer->GetTargetWidth(), (float)g_renderer->GetTargetHeight());
D3D::context->RSSetViewports(1, &vp);

D3D::context->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTempTexture()->GetRTV(), NULL);
D3D::SetPointCopySampler();
D3D::drawShadedTexQuad(FramebufferManager::GetEFBColorTexture()->GetSRV(), &source, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), pixel_shader, VertexShaderCache::GetSimpleVertexShader(), VertexShaderCache::GetSimpleInputLayout());

g_renderer->RestoreAPIState();

FramebufferManager::SwapReinterpretTexture();
D3D::context->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTexture()->GetRTV(), FramebufferManager::GetEFBDepthTexture()->GetDSV());
}

Всё-таки да, как и говорили опытные прогеры: "Бесплатно не бывает ничего хорошего"



8
Доброй ночи.
3 года прошло, а эмулятор только регрессировал в плане скорости.
Будьте пожалуйста добры, может у кого-то найдётся вот эта вот ревизия:

http://www.emu-land.net/forum/index.php?action=post;quote=662823;topic=30007.690;last_msg=1011000

Поиграть снова охота в резики да и в soul calibur 2, я помню на этой реве у меня все игры летали.
Новые ревизии все слайдшоу.

Страницы: [1]