I have M8S Pro L (s912) 3/32. Internal: Nexus Stock TV Rom, On SD: LE 8.9.11a with use of internal storage. It works perfekt, no stutter at all.
used codes for internal storage via putty:
e2label /dev/mmcblk1p2 "SD_SPEICHER"
e2label /dev/data "STORAGE"
reboot
keyboard.xml
<keymap>
<FullscreenVideo>
<keyboard>
<a>AudioNextLanguage</a>
</keyboard>
</FullscreenVideo>
</keymap>
advancedsettings.xml
<advancedsettings>
<cache>
<buffermode>1</buffermode>
<memorysize>139460608</memorysize>
<readfactor>10</readfactor>
</cache>
</advancedsettings>
remote.conf
#**********************************************************************************************
#
# this file is configuration for each factory remote device
#
# factory_code each device has it's unique factory code.
# pattern: custom_code(16bit) + index_code(16bit)
# examble: 0xff000001 = 0xff00(custom_code) + 0001(index_code)
#
# work_mode 0 :software mode 1 :hardware mode
# repeat_enable 0 :disable repeat 1 :enable repeat
#
# release_delay unit: ms
# release will report from kernel to user layer after this period
# of time from press or repeat triggered.
#
# debug_enable 0 :debug disable 1 :debug enable
#
# SW MODE:
# bit_count how many bits in each frame
# tw_leader_act time window for leader active
# tw_bit0 time window for bit0 time.
# tw_bit1 time window for bit1 time
# tw_repeat_leader time window for repeat leader
# REG:
# reg_base_gen set value for PREG_IR_DEC_BASE_GEN
# reg_control set value for PREG_IR_DEC_CONTROL
# reg_leader_act set value for PREG_IR_DEC_LEADER_ACTIVE
# reg_leader_idle set value for PREG_IR_DEC_LEADER_IDLE
# reg_repeat_leader set value for PREG_IR_DEC_REPEAT_IDLE
# reg_bit0_time set value for PREG_IR_DEC_BIT0_TIME
#**********************************************************************************************
#Videostrong - Blue Grey MECOOL M8S Pro remote. Custom mapping for LibreELEC Krypton by WRXTASY
#**********************************************************************************************
factory_code = 0xff000001
work_mode = 0
repeat_enable = 1
repeat_delay = 40
repeat_peroid = 39
release_delay = 121
debug_enable = 0
#fn_key_scancode = 0x12
#cursor_left_scancode = 0x5a
#cursor_right_scancode = 0x1b
#cursor_up_scancode = 0x06
#cursor_down_scancode = 0x16
#cursor_ok_scancode = 0x1a
key_begin
0x59 116 # power
0x19 113 # mute
0x0d 15 # home but I want here "FullScreen"
0x45 46 # C = Context menu
0x51 24 # O = Kodi codec info
0x05 158 # exit/back
0x06 103 # up
0x5a 105 # left
0x1a 28 # enter/OK Long Press = Pause
0x1b 106 # right
0x16 108 # down
0x08 104 # page+
0x0b 109 # page-
0x52 2 # 1
0x50 3 # 2
0x10 4 # 3
0x56 5 # 4
0x54 6 # 5
0x14 7 # 6
0x4e 8 # 7
0x4c 9 # 8
0x0c 10 # 9
0x0f 11 # 0
0x22 23 # info
0x12 30 # I want here "AudioNextLanguage"
0x13 115 # vol+
0x17 114 # vol-
0x18 38 # L subtitle
0xf3 28 # Pause
0xf4 128 # stop
key_end
repeat_key_begin
0x13 115 # vol+
0x17 114 # vol-
#0x1a 28 # enter/OK Long Press = Pause
#0x05 158 # exit/back Long Press = Stop
repeat_key_end
Display More
For a Friend I setup M8S Pro Plus with 905x the same way (but with original android rom and LibreElec 8.2.2.xxx something), works perfectly too. It is cheap and there is no need for flashing, so you can use that Player too. Internal storage has another name, see @ guide