Any way to disable LG's "Jamless Play" on the drives?

Discussion of LibreDrive mode, compatible drives and firmwares
puertorican
Posts: 7
Joined: Tue Aug 18, 2020 1:01 pm

Any way to disable LG's "Jamless Play" on the drives?

Post by puertorican »

Jamless Play is the feature that returns garbage data instead of making MakeMKV retry on a failed sector. This results in HashCheck errors. LG drives are the only ones that gives this error because Jamless Play kicks in and returns garbage data. Using LiteOn or Panasonic drives doesn't return hash errors. Instead, they retry the bad sectors, but it seems the LG is the better drive when it comes to reading, except that in some cases, the Jamless Play feature kicks in and returns garbage data.

I wonder if a customized firmware could disable this and make the drive actually retry on failed sectors.
kja70
Posts: 17
Joined: Mon Jun 15, 2020 7:40 pm

Re: Any way to disable LG's "Jamless Play" on the drives?

Post by kja70 »

Just ran into this issue as well. Anyone find any workarounds/techniques for avoiding bad data coming back from the drive?
rkjnsn
Posts: 28
Joined: Tue Aug 24, 2010 7:03 am

Re: Any way to disable LG's "Jamless Play" on the drives?

Post by rkjnsn »

I looked at the firmware I currently run on my drives (BU40N 1.00, BU40N 1.03, BP60NB10 1.02, and WH16NS60 1.02), and they all appear to support a vendor command to do just that (no customized firmware needed). You use the READ BUFFER opcode with vendor mode 0D.

The full 10-byte CDB (command descriptor block) is

Code: Select all

3C 0D 01 00 00 00 <mode> <persist> 00 00
mode: DD for off, EE (or any other non-zero value) for on.
persist: FF to save the setting to flash, 00 (or any other value) for only until the next disc load.

The command returns 4 bytes, DD 00 00 00 after turning it off or EE 01 00 00 after turning it on. (Reply is the same regardless of the persist setting.)

So (on Linux, with sg3_utils), the following will disable jamless play temporarily:

Code: Select all

sg_raw -r 4 /dev/srN 3C 0D 01 00 00 00 DD 00 00 00
And persistently (across discs and power cycles; I think it's persisted in a flash region which should also survive firmware flashing, but I haven't tested that):

Code: Select all

sg_raw -r 4 /dev/srN 3C 0D 01 00 00 00 DD FF 00 00
To undo the previous (persistently re-enable):

Code: Select all

sg_raw -r 4 /dev/srN 3C 0D 01 00 00 00 EE FF 00 00
(Note: A non-persistent enable (mode = EE, persist = 00) can only undo a non-persistent disable. The drive only builds the jamless-play tables on disc load (and disc load reverts to the persistent setting), so there's no way to have it persistently disabled but enable enable it for a single disc.)

This likely works on other LG firmware versions, too, but I haven't looked at them.
kaysee
Posts: 102
Joined: Wed Apr 07, 2021 12:22 am

Re: Any way to disable LG's "Jamless Play" on the drives?

Post by kaysee »

I have used ASUS firmware on LG drives to handle this. Have you tested these commands for controlling jamless play? I wonder about variations for different LG models.