In KPS you can find opcodes 0x01 0x14, 0x01 0x15, 0x01 0x0F. 0x01 0x14 - draw text 0x01 0x15 - create box for text 0x01 0x0F - delay(in frames, game works in 30 FPS)
In beginning of .kps files, you can find a jumptable with offsets to text(often to 0x01 0x14, sometimes to 0x01 0x15). Also in beginning there some unknown bytes, like A2 03, which purpose is unknown. There is also 00 01 00 01 before every text window, purpose also unknown. kps not interconnected with zim files - they loads at same time, but both have different jumptables.
At address 0x0042FE40 there is a jumptable(or slightly before it with offsets) and after it there is loaded ZIM files(wZIMd header), and in engine it commented as "zim buffer". I cant assign KPS to ZIM because KPS have no information about what current window will show(character picture for example), and even if jumptable of kps is broken(tried with filling it with zeroes), it still work.