Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EMC Magician info #59

Merged
merged 6 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions docs/EMC_MAGICIAN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# EMC Magician

**EMC Magician** позволяет настроить тайминги в режиме реального времени, так же можно донастроить те таминги, которые были установлены в **4IFIR Wizard**
* Тайминги настраиваются для текущей частоты **RAM** и **EMC Ballance (eBal)** режима
* Все тайминги настроенные в **EMC Magician** хранятся в **/config/4IFIR/emc_timings.ini**
* Для каждой комбинации **RAM MHz** + **EMC Ballance (eBal)** сохраняется отдельный профиль в **/config/4IFIR/emc_timings.ini**
* При обновлении **4IFIR** через AIO тайминги настроенные в **EMC Magician** не сбрасываются

***

### Инструкция по настройке таймингов от Cooler3D
1. 4IFIR overlay > EMC Magician > активируем все 3 доступных тумблера
2. 4IFIR overlay > Y (кнопка подписанная как Temp) > CPU > 4IFIR Optimized
3. Homebrew Menu > MicroMemTest
4. Ждём, пока память полностью переключится в Optimized S
5. Приступаем к подбору значений таймингов. Последовательно, слайдер за слайдером, смещаем влево значения (делаем паузы в несколько секунд после каждого шага) до тех пор, пока стресс-тест не покажет ошибку, или система не зависнет.
6. Запоминаем и выписываем наименьшее стабильное значение параметра (в белом кружке).
7. Повторяем процесс с шага установки CPU частоты через "Y" Temp > 4IFIR Optimized, но в этот раз, уже для второго слайдера.
>Слайдеров всего 12, так что процесс не успеет сильно надоесть.
8. Определившись со всеми значениями, возвращаемся в EMC Magician,
9. Проставляем слайдеры в соответствующие значения, фиксируя их нажатием X (Save).
>На всякий случай, проверяем стабильность в MicroMemTest-е в последний раз,
10. Переходим в MicroMemBench, перед входом сняв CPU частоту из Temp Override в дефолт.
>Дефолт для homebrew по умолчанию, является макс. Если ничего не перенастраивалось, и в HomebrewMenu мы попали каноничным способом (удерживая R на иконке тайтла HomebrewMenu установленного посредством DBI > .microsd/Games/HomebrewMenu*), частота CPU автоматически перейдет в target 3GHz.
11. Не выходя из MicroMemBench, заходим в EMC Magician, и с помощью кнопок L и R, находим значение "арбитра", при котором бенчмарк демонстрирует наилучший результат. Не забываем сохранять нажатием "X".
> "х | x | арбитр" - его изменение не влияет на стабильность, только на производительность, которая будет снижаться, если параметр перетянуть или недотянуть относительно оптимального значения, подбираемого опытным путём.
>Обычно это значение не далеко от того, что 4IFIR рассчитал самостоятельно для ваших значений тайминга, относительно прочих переменных конфигурации.
12. Выходим из оверлея, делаем скриншот 10К, и довольные результатом - идём играть.

***

### Инструкция по настройке таймингов "Вариант 2"
1. 4IFIR overlay > EMC Magician > активируем все 3 доступных тумблера
2. Homebrew Menu > MicroMemBench, перед входом убедиться, что стоит CPU - 4IFIR Maximized.
3. Ждём, пока память полностью переключится в Optimized S
4. Не выходя из MicroMemBench, заходим в EMC Magician,
5. Приступаем к подбору значений таймингов. Смещаем значение первого слайдера, сначала на 1 шаг вправо, если не было прироста, то начинаем смещать слайдер влево (делаем паузы в несколько секунд после каждого шага) до тех пор, пока значения бенчмарка не начнут уменьшаться или система не зависнет.
6. Запоминаем и выписываем стабильное значение параметра (в белом кружке) или просто фиксируем его нажатием X (Save).
7. Проверяем стабильность найденного тайминга, Homebrew Menu > MicroMemTest (10 лупов хватит, при частоте CPU - 4IFIR Optimised)
8. Проверяем стабильность тайминга в игре
>Для этого хорошой подойдет RDR в Док режиме или прогнать пару раз бенчмарк Ultracam в Zelda TOTK (Док режим, ЦПУ - 1963, ГПУ - 1305, EMC - Optimised S)
9. Повторяем процесс с шага №2, для каждого слайдера.
>После настройки всех таймингов проверяем стабильность в MicroMemTest-е (при частоте CPU - 4IFIR Optimised) и в игре в последний раз.
10. Переходим в MicroMemBench, перед входом вернув CPU частоту в 4IFIR Optimised
11. Не выходя из MicroMemBench, заходим в EMC Magician, и с помощью кнопок L и R, находим значение "арбитра" для каждого тайминга, при котором бенчмарк демонстрирует наилучший результат. Не забываем сохранять нажатием "X".
> "х | x | арбитр" - его изменение не влияет на стабильность, только на производительность, которая будет снижаться, если параметр перетянуть или недотянуть относительно оптимального значения, подбираемого опытным путём.
>Обычно это значение не далеко от того, что 4IFIR рассчитал самостоятельно для ваших значений тайминга, относительно прочих переменных конфигурации.

***

### Сброс таймингов
1. Отключить Magician
2. Переключить профиль EMC на Optimized S
3. Отключить разгон кнопкой "+" на "Edit app profile"
4. Включить Magician
5. Сбросить нужные тумблеры кнопкой "Y"
6. Включить разгон кнопкой "A" на "Edit app profile"
7. Зафиксировать изменения переключившись на Optimized или вкл/выкл сон.
>Так же можно просто удалить раздел, соответствующий текущему профилю RAM в файле config/4IFIR/emс_timings.ini и перезагрузится

33 changes: 21 additions & 12 deletions docs/OVERCLOKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
В чифире разгон достигается глубокими оптимизациями компонентов HOS. Эффективность работ железа в пересчете на ватт, примерно в 3-5 раз выше, чем в стоковых частотах без разгона. Все это благодаря прорывной оптимизации памяти (преодоление порога частоты и таймингов). В 4IFIR реализован андервольтинг CPU\GPU\Памяти, благодаря оптимизациям чифир гораздо экономнее расходует энергию при разгоне, нежели его конкуренты.

1. [Описание пунктов 4IFIR overlay](#Описание-пунктов-4IFIR-overlay)
1. [Установка частот CPU/GPU/RAM](#Установка-частот-CPUGPURAM)
1. [Установка частот CPU/GPU/RAM](#установка-частот-cpugpuemcramlcd)
1. [Говерноры](#Говерноры)

## Описание пунктов 4IFIR overlay
Expand All @@ -16,18 +16,20 @@
>CPU - текущая частота процессора
>GPU - текущая частота ядра видеопроцессора
>MEM - текущая частота памяти
>SOC - температура процессора (SoC - система на чипе, означает, что на одном чипе находится и видеоядро и центральный процессор, потому температура у них одна на двоих)
>LCD - частота развертки дисплея
>FPS - колличество кадров в секунду
>EMC - пропускная способность памяти
>PCB - температура платы консоли
>Skin - температура самой консоли (?)

**Enable** - отвечает за активацию разгона. On - включен, Off - отключен


**Edit app Profile** - настройка профиля разгона для запущенного приложения. Указанные настройки будут автоматически применяться при запуске приложения. Имеют средний приоритет.
**Edit app Profile** - настройка профиля разгона для запущенного приложения. Указанные настройки будут автоматически применяться при запуске приложения. Имеют средний приоритет.
> **Другие профили разгона открываются при нажатии соответствующих кнопок:**
> **"Y"** - Temporary overrides - настройки разгона для всех приложений. Указанные настройки применяются для всех запускаемых приложений и действуют до перезагрузки приставки. Имеют наивысший приоритет.
> **"X"** - Global profile - настройки разгона для всех приложений. Указанные настройки применяются для всех запускаемых приложений. Имеют самый низкий приоритет.
> **"+"** - Включение/выключение разгона

**Advanced:**
* Temporary overrides - настройки разгона для всех приложений. Указанные настройки применяются для всех запускаемых приложений и действуют до перезагрузки приставки. Имеют наивысший приоритет.
* Global profile - настройки разгона для всех приложений. Указанные настройки применяются для всех запускаемых приложений. Имеют самый низкий приоритет.
* Gamechanger - Настройка частоты обновления экрана и настройка профилей RAM - 4IFIR Optimised и 4IFIR Optimised E
* Miscellaneous - раздел с дополнительными настройками. Содержит в себе следующие опции:
* Auto CPU Boost - активный слой автобуста. Повышает частоту CPU при нагрузке на системное ядро, что обычно означает подгрузку данных, стриминг текстур, локаций и т. п. На Erista лучше отключать, поскольку влияет на время работы от батареи
* Sync ReverseNX Mode - настройка, синхронизирующая состояние значения ReverseNX с профилем sys-clk. То есть, если в реверсе стоит **Handheld**, то активный профиль в sys-clk будет **Handheld**, если **Docked**, то **Docked** соответственно
Expand All @@ -47,9 +49,16 @@
>Current Flow - текущее потребление
>CPU Volt - вольтаж CPU
>GPU Volt - вольтаж GPU
>DRAM Volt - вольтажи памяти
>DRAM Volt - вольтажи памяти


* EMC Magician - раздел с дополнительными оптимизациями памяти и настрокой таймингов в реальном времени
* Active MC Arbitration - Автоматическая подстройка sMeh/pMeh, для макс. производительности на текущих таймигах (???)
* Adaptive EMC Priority - Динамическое управление таймингами контроллера памяти.
* EMC Magician - Настройка таймингов в реальном времени
> Подробнее про настройку таймингов через EMC Magician - [**EMC Magician**](EMC_MAGICIAN.md)

## Установка CPU/GPU/EMC(ram)/LCD
## Установка частот CPU/GPU/EMC(ram)/LCD
Разгон осуществляется с помощью смены максимальной частоты для CPU/GPU/EMC(Памяти)/LCD(Частоты обновления экрана) через настройки разгона **Edit app Profile**/**Temporary overrides**/**Global profile**.
Настройки будут применяться в зависимости от приоритета (**Temporary overrides** -> **Edit app Profile** -> **Global profile**).
Наивысший приоритет у **Temporary overrides**, если там не указано никаких настроек, то программа смотрит в настройки из **Edit app Profile**, если там пусто, то применяются настройки из **Global profile**. И если уже там ничего нет, то ставятся настройки системы по-умолчанию (**Default**).
Expand Down Expand Up @@ -78,8 +87,8 @@

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

**CPU Freq Governor** - включить или выключить управление частотой **центрального** процессора
**GPU Freq Governor** - включить или выключить управление частотой **графического** процессора
**CPU Freq Governor** - включить или выключить управление частотой **центрального** процессора
**GPU Freq Governor** - включить или выключить управление частотой **графического** процессора
**LCD Freq Governor** - включить или выключить управление частотой обновления дисплея консоли, аналог VRR

Эти пункты будут доступны только если в **Miscellaneous** активировано значение **Frequency Governor**
Expand Down
1 change: 1 addition & 0 deletions docs/WIZARD_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ GPUv Min - зависит от текущей частоты RAM, но так к
* EMC DVB Mode - Эта настройка управляет внутренним адаптивным механизмом контроллера оперативной памяти. Выбор более точного значения потребления
>по умолчанию стоит eBamatic, от ручной настройки профита не будет
* Core Timings – Настройка таймингов памяти.
Вариант настройки таймингов в режиме реального времени через - [**EMC Magician**](EMC_MAGICIAN.md)
>Имеется восемь таймингов Core Timings 1–8. Тайминги не влияют друг на друга. Настройте каждый параметр по отдельности для достижения максимальной стабильной производительности. Чем выше значение каждого тайминга, тем выше производительность.
>Начинаем с теста в MemBench - фиксируем результат. Переходим к первому таймингу, повышаем его на один шаг, перезапускаем консоль, тестируем в MemBench несколько раз и фиксируем новый результат, если показатель в MemBench улучшился, то продолжаем повышать и тестировать.
>Когда достигаем значения, при котором консоль начинает работать нестабильно, зависать или вылетать, возвращаемся к предыдущему значению и переходим к тесту в играх. Также может существовать порог, при котором дальнейшее повышение значения тайминга не даст никакого результата. (погрешность в 30-40 мб/с можно не учитывать, так как может быть ситуация: на значении 4 - 7650мб/с; на 5 - 7610мб/с; а на 6 значении может стать -7690мб/с. Но к примеру, если на 5м значении показатели упадут, до 7100мбс, тогда уже имеет смысл остаться на 4). На этом значении можно переходить к следующему таймингу. Остальные тайминги настраиваются по тому же алгоритму.
Expand Down