I moved the routines elsewhere (To 0x7C00), made different tests replacing only certain calls.
Try in the same order as the filenames (1, 2, 3...).
The display won't look correct on most of them, ignore that, find the first one causing the capacitance bug.
################################
sub_7c00: <<--- NEW OLED INIT ROUTINE
call !sub_04f5 ;7c00 9a f5 04 <<--- Call original init
movw ax,#0x00a1 ;7c03 10 a1 00 <<--- Segment remap cmd (Y-mirror)
call !sub_05d1 ;7c06 9a d1 05 <<--- Send cmd
movw ax,#0x00c0 ;7c09 10 c0 00 <<--- Scan direction cmd (X-mirror)
call !sub_05d1 ;7c0c 9a d1 05 <<--- Send cmd
ret ;7c0f af <<--- Return
################################
sub_7c10: <<--- NEW OLED POSITION ROUTINE
push hl ;7c10 b7
push ax ;7c11 b1
movw ax,sp ;7c12 89 1c
movw hl,ax ;7c14 d6
mov a,[hl] ;7c15 87
xch a,x ;7c16 30
mov a,[hl+0x06] ;7c17 ae 06
movw hl,ax ;7c19 d6
mov a,#0xb0 ;7c1a a1 b0 <<--- Row cmd
or a,l ;7c1c 61 6e
mov x,#0x00 ;7c1e a0 00
xch a,x ;7c20 30
call !sub_05d1 ;7c21 9a d1 05 <<--- Send cmd
mov a,h ;7c24 67 <<--- Move column value to reg A
cmp a,!mem_7c2e ;7c25 48 2e 7c <<--- Compare with subtract value at 0x7c2e
bnc lab_7c2d ;7c28 9d 03 <<--- If carry set, load A with subtract value so it becomes 0 when subtracting
mov a,!mem_7eca ;7c2a 8e 2e 7c
lab_7c2d:
sub a,#0x02 ;7c2d 1d 02 <<--- Subtract 2 to column value.
mov h,a ;7c2f 77 <<--- Update H reg for later use in lower column cmd
and a,#0x0f ;7c30 5d 0f <<--- Isolate lower column data
mov x,#0x00 ;7c32 a0 00
xch a,x ;7c34 30
call !sub_05d1 ;7c35 9a d1 05 <<--- Send cmd
mov a,h ;7c38 67 <<--- Move column value to reg A
ror a,1 ;7c39 24 <<--- Rotate 4 bits to the left to get higher column bits
ror a,1 ;7c3a 24
ror a,1 ;7c3b 24
ror a,1 ;7c3c 24
and a,#0x0f ;7c3d 5d 0f <<--- Isolate higher column data
or a,#0x10 ;7c3f 6d 10 <<--- High column cmd
mov x,#0x00 ;7c41 a0 00
xch a,x ;7c43 30
call !sub_05d1 ;7c44 9a d1 05 <<--- Send cmd
pop ax ;7c47 b0
pop hl ;7c48 b6
ret ;7c49 af <<--- Done, return
################################
sub_7c4a: <<--- NEW OLED DRAW ROUTINE
push hl ;7c4a b7 <<--- Same as original function
push ax ;7c4b b1
push ax ;7c4c b1
movw ax,sp ;7c4d 89 1c
movw hl,ax ;7c4f d6
mov a,[hl+0x0a] ;7c50 ae 0a
inc a ;7c52 41
mov [hl+0x0a],a ;7c53 be 0a
mov x,#0x00 ;7c55 a0 00
xch a,x ;7c57 30
push ax ;7c58 b1
mov a,[hl+0x08] ;7c59 ae 08
mov x,#0x00 ;7c5b a0 00
xch a,x ;7c5d 30
call !sub_7c10 ;7c5e 9a 10 7c <<--- Call new oled position function
br !lab_0643 ;7c61 9b 43 06 <<--- Continue in original function