## Custom dynamic/static FAN Control values for PS2 EMUs (By kozarovv and mrjaredbeta)
The latest emulators introduce a single new feature: fan settings loading on PS2 game boot. Now, you can simply place the correct file into the folder, and the chosen fan mode will be enabled automatically. The file still needs to be edited manually, and there are no plans to add file saving to the emulator GUI, as it's a lot of work for something most users will set once and forget.
fan.bin layout:
- **byte[0] =** is_auto_mode
- **byte[1] =** max_temp_for_auto
- **byte[2] =** manual_speed
If byte[0] is 0, manual_speed is used
if byte[0] is not 0, max_temp_for_auto is used (value 01 is recommended for future compatibility).
The file must be exactly 3 bytes, with unused values filled with 00 or FF. The release includes a file set to auto mode with a 65°C max temp.
Safety measures ensure incorrect values are clamped to safe ranges (60–75°C for auto, 21–80% for manual speed). Values are hexadecimal, e.g. 01 41 00 means auto mode with a 65°C limit (0x41 = 65).
The file allows setting max temp in range 60-75°C (3C-4B), thus make possible values which are normally unavailable in GUI like 63, 67, 72, etc.
Place the fan control file in **dev_hdd0/vm/ne/fan.bin** for netemu (create the 'ne' folder if needed) or **dev_hdd0/vm/gx/fan.bin** for gxemu (create the 'gx' folder if missing). These files can be overwritten by LV2 apps like Webman MOD, option to set auto fan speed can be added to Webman MOD when emulators prove to be stable.
Since fan control is critical feature, **USE WITH CAUTION**.
Fan features require firmware with a patched service manager, such as Evilnat 4.92.2/4.93.
What's next? I need to rewrite all my patches for netemu. While they work fine and should be safe to use, code quality is terrible. New features were added on top of ready to release code. Some changes were squeezed into the middle to add bugfixes, etc..
I need to backport notification hack from gxemu to netemu to enable ingame fps and temps display. Gxemu need some cleanup too, but it is much better in term of code quality.
Finally. I started work to enable fan control on ps2emu. It will take some time as every emulator have very different vuart implementations and additionally ps2emu is little bit short on code space.
Thanks to kamilb880 for testing and some cool ideas!