Hacking the Kodak Reels 8mm Film Digitizer (New Thread)

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
the 656x480 is the preview pipeline.

On a Type C while recording:

> ipl getimepath 0

P1: SW:1 Num:6 H:1600 V:1200 LOFS:1600 FMT:102
BUF0 Y0xa2730b70 U0xa2905770 V0x00000000
BUF1 Y0xa29efd70 U0xa2bc4970 V0x00000000
BUF2 Y0xa2caef70 U0xa2e83b70 V0x00000000
BUF3 Y0xa2f6e170 U0xa3142d70 V0x00000000
BUF4 Y0xa322d370 U0xa3401f70 V0x00000000
BUF5 Y0xa34ec570 U0xa36c1170 V0x00000000
SW:1 Cur 0xa2f6e170
P2: SW:1 Num:6 H:656 V:480 LOFS:656 FMT:102
BUF0 Y0xa37ab770 U0xa3810b70 V0x00000000
BUF1 Y0xa3843570 U0xa38a8970 V0x00000000
BUF2 Y0xa38db370 U0xa3940770 V0x00000000
BUF3 Y0xa3973170 U0xa39d8570 V0x00000000
BUF4 Y0xa3a0af70 U0xa3a70370 V0x00000000
BUF5 Y0xa3aa2d70 U0xa3b08170 V0x00000000
SW:1 Cur 0xa3973170
P3: SW:0 Num:0 H:16827392 V:-2146871108 LOFS:-2127090868 FMT:-2146871108
SW:0 Cur 0xdeadbeef
 

videodoctor

New Tinkerer
Jan 8, 2026
56
23
8
@videodoctor Can you call ipl getimepath 0 while recording?
You bet, @0dan0 ! Here's the output while recording, with the original stock D firmware:

Code:
P1: SW:1 Num:6 H:1728 V:1296 LOFS:1728 FMT:102
        BUF0 Y0xa2c7b9b0 U0xa2e9e5b0 V0x00000000
        BUF1 Y0xa2fafbb0 U0xa31d27b0 V0x00000000
        BUF2 Y0xa32e3db0 U0xa35069b0 V0x00000000
        BUF3 Y0xa3617fb0 U0xa383abb0 V0x00000000
        BUF4 Y0xa394c1b0 U0xa3b6edb0 V0x00000000
        BUF5 Y0xa3c803b0 U0xa3ea2fb0 V0x00000000
        SW:1 Cur 0xa394c1b0
P2: SW:1 Num:6 H:656 V:480 LOFS:656 FMT:102
        BUF0 Y0xa3fb45b0 U0xa40199b0 V0x00000000
        BUF1 Y0xa404c3b0 U0xa40b17b0 V0x00000000
        BUF2 Y0xa40e41b0 U0xa41495b0 V0x00000000
        BUF3 Y0xa417bfb0 U0xa41e13b0 V0x00000000
        BUF4 Y0xa4213db0 U0xa42791b0 V0x00000000
        BUF5 Y0xa42abbb0 U0xa4310fb0 V0x00000000
        SW:1 Cur 0xa4213db0
P3: SW:0 Num:0 H:3 V:-2132541672 LOFS:-2127089396 FMT:-2146893824
        SW:0 Cur 0xdeadbeef
 
Last edited:

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
Type Back to Stock firmware:
ipl getimepath 0

P1: SW:1 Num:6 H:1728 V:1296 LOFS:1728 FMT:102

BUF0 Y0xa2730b70 U0xa2953770 V0x00000000
BUF1 Y0xa2a64d70 U0xa2c87970 V0x00000000
BUF2 Y0xa2d98f70 U0xa2fbbb70 V0x00000000
BUF3 Y0xa30cd170 U0xa32efd70 V0x00000000
BUF4 Y0xa3401370 U0xa3623f70 V0x00000000
BUF5 Y0xa3735570 U0xa3958170 V0x00000000
SW:1 Cur 0xa3401370
P2: SW:1 Num:6 H:656 V:480 LOFS:656 FMT:102
BUF0 Y0xa3a69770 U0xa3aceb70 V0x00000000
BUF1 Y0xa3b01570 U0xa3b66970 V0x00000000
BUF2 Y0xa3b99370 U0xa3bfe770 V0x00000000
BUF3 Y0xa3c31170 U0xa3c96570 V0x00000000
BUF4 Y0xa3cc8f70 U0xa3d2e370 V0x00000000
BUF5 Y0xa3d60d70 U0xa3dc6170 V0x00000000
SW:1 Cur 0xa3cc8f70
P3: SW:0 Num:0 H:-559038737 V:-559038737 LOFS:-2127090868 FMT:-559038737
SW:0 Cur 0xdeadbeef

In hist.c Type A-C these addresses are different (same as each other)
uint8_t *imagebase = (uint8_t *)0xa2730b70; //start of LRV //PREVIEW

I have fixed hist.c to use these new addresses. Although as the D units are crashing before this, so no rush to try that.
 
  • Like
Reactions: videodoctor

videodoctor

New Tinkerer
Jan 8, 2026
56
23
8
Thanks for the continued investigation, @0dan0 . I'll see if I can get hist.c working now---I did have it calling during preview (and I think capture), but with the imagebase pointing to the wrong address in Type D, that might be why I saw it crashing.

I continued my investigation of sensor and ipl commands, and had Claude.ai look at the dumps and info. I ran:

Code:
> ipl getcapmaxrawinfo 0

IPL(0) max raw width = 1936 height = 1076 lineoffset = 536870672
IPL(0) max raw ImgBit = -1 ImgPix = -1
> ipl dumpbuf 0

********** IPL BUFFER MAP(0) **********
Buffer TabCnt = 28 MapCnt = 28
Buffer resource 0xa250a3f0 ~ 0xa7ffe000 0x05af3c10
        0       0       0       0xa250a3f0 ~ 0xa28051d0 0x002fade0 SIE_RAW_CH0_1
        1       1       1       0xa28051d0 ~ 0xa2afffb0 0x002fade0 SIE_RAW_CH0_2
        2       10      2       0xa2afffb0 ~ 0xa2b01fb0 0x00002000 SIE_CA_1
        3       11      3       0xa2b01fb0 ~ 0xa2b03fb0 0x00002000 SIE_CA_2
        4       16      4       0xa2b03fb0 ~ 0xa2b04bb0 0x00000c00 IPE_VA_1
        5       17      5       0xa2b04bb0 ~ 0xa2b057b0 0x00000c00 IPE_VA_2
        6       23      6       0xa2b057b0 ~ 0xa2b63030 0x0005d880 IPE_LCA_1
        7       24      7       0xa2b63030 ~ 0xa2bc08b0 0x0005d880 IPE_LCA_2
        8       33      8       0xa2bc08b0 ~ 0xa2c1e130 0x0005d880 IPEIFE2_LCA_1
        9       34      9       0xa2c1e130 ~ 0xa2c7b9b0 0x0005d880 IPEIFE2_LCA_2
        10      36      10      0xa2c7b9b0 ~ 0xa2fafbb0 0x00334200 IMEP1_1
        11      37      11      0xa2fafbb0 ~ 0xa32e3db0 0x00334200 IMEP1_2
        12      38      12      0xa32e3db0 ~ 0xa3617fb0 0x00334200 IMEP1_3
        13      39      13      0xa3617fb0 ~ 0xa394c1b0 0x00334200 IMEP1_4
        14      40      14      0xa394c1b0 ~ 0xa3c803b0 0x00334200 IMEP1_5
        15      41      15      0xa3c803b0 ~ 0xa3fb45b0 0x00334200 IMEP1_6
        16      47      16      0xa3fb45b0 ~ 0xa404c3b0 0x00097e00 IMEP2_1
        17      48      17      0xa404c3b0 ~ 0xa40e41b0 0x00097e00 IMEP2_2
        18      49      18      0xa40e41b0 ~ 0xa417bfb0 0x00097e00 IMEP2_3
        19      50      19      0xa417bfb0 ~ 0xa4213db0 0x00097e00 IMEP2_4
        20      51      20      0xa4213db0 ~ 0xa42abbb0 0x00097e00 IMEP2_5
        21      52      21      0xa42abbb0 ~ 0xa43439b0 0x00097e00 IMEP2_6
        22      58      22      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_1
        23      59      23      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_2
        24      60      24      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_3
        25      61      25      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_4
        26      62      26      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_5
        27      63      27      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_6
        28      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        29      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        30      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        31      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        32      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        33      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        34      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        35      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        36      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        37      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        38      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        39      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        40      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        41      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        42      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        43      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        44      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        45      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        46      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        47      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        48      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        49      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        50      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        51      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        52      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        53      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        54      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        55      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        56      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        57      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        58      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        59      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        60      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        61      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        62      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        63      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        64      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        65      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        66      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        67      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        68      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        69      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        70      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        71      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        72      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        73      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        74      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        75      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        76      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        77      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        78      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        79      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        80      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        81      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        82      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        83      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        84      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        85      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        86      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        87      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        88      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        89      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        90      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        91      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        92      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        93      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        94      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        95      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        96      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        97      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        98      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        99      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        100     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        101     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        102     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        103     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        104     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        105     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        106     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        107     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        108     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        109     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        110     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        111     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        112     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        113     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        114     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        115     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        116     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        117     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        118     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        119     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        120     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        121     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        122     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        123     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        124     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        125     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        126     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        127     -1      -1      0x00000000 ~ 0x00000000 0x00000000

And Claude.ai gave me the following summary:


📊 Buffer Analysis - Proof of Native Capture​


PathBuffer SizeExpected for ResolutionMatch?
IMEP10x00334200 = 3,359,232 bytes1728 × 1296 × 1.5 (YUV) = 3,359,232✅ EXACT
IMEP20x00097e00 = 622,080 bytes656 × 480 × 1.5 = 472,320(with padding)
SIE_RAW0x002fade0 = 3,140,064 bytes1936 × 1076 raw Bayer



✅ Confirmed: Type D Captures at Native 1728x1296 (? Suspect ?)​


The IMEP1 buffer size exactly matches 1728×1296 YUV. This proves:


  1. NOT upscaled - If upscaled from 656x480, the buffer would only need ~472KB, not 3.3MB
  2. Native high-res capture - The full 3.3MB buffer is being used for each frame
  3. Path 1 is the capture path - Path 2 (656x480) is just for LCD preview



🤔 Interesting Mystery​


SourceResolution
Sensor max1936 × 1076
IMEP1 output1728 × 1296

Height 1296 > 1076! This means some ISP interpolation is happening to achieve the 4:3 ratio. But the quality is still far superior to the old 656x480.
 

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
Thanks for the continued investigation, @0dan0 . I'll see if I can get hist.c working now---I did have it calling during preview (and I think capture), but with the imagebase pointing to the wrong address in Type D, that might be why I saw it crashing.

I continued my investigation of sensor and ipl commands, and had Claude.ai look at the dumps and info. I ran:

Code:
> ipl getcapmaxrawinfo 0

IPL(0) max raw width = 1936 height = 1076 lineoffset = 536870672
IPL(0) max raw ImgBit = -1 ImgPix = -1
> ipl dumpbuf 0

********** IPL BUFFER MAP(0) **********
Buffer TabCnt = 28 MapCnt = 28
Buffer resource 0xa250a3f0 ~ 0xa7ffe000 0x05af3c10
        0       0       0       0xa250a3f0 ~ 0xa28051d0 0x002fade0 SIE_RAW_CH0_1
        1       1       1       0xa28051d0 ~ 0xa2afffb0 0x002fade0 SIE_RAW_CH0_2
        2       10      2       0xa2afffb0 ~ 0xa2b01fb0 0x00002000 SIE_CA_1
        3       11      3       0xa2b01fb0 ~ 0xa2b03fb0 0x00002000 SIE_CA_2
        4       16      4       0xa2b03fb0 ~ 0xa2b04bb0 0x00000c00 IPE_VA_1
        5       17      5       0xa2b04bb0 ~ 0xa2b057b0 0x00000c00 IPE_VA_2
        6       23      6       0xa2b057b0 ~ 0xa2b63030 0x0005d880 IPE_LCA_1
        7       24      7       0xa2b63030 ~ 0xa2bc08b0 0x0005d880 IPE_LCA_2
        8       33      8       0xa2bc08b0 ~ 0xa2c1e130 0x0005d880 IPEIFE2_LCA_1
        9       34      9       0xa2c1e130 ~ 0xa2c7b9b0 0x0005d880 IPEIFE2_LCA_2
        10      36      10      0xa2c7b9b0 ~ 0xa2fafbb0 0x00334200 IMEP1_1
        11      37      11      0xa2fafbb0 ~ 0xa32e3db0 0x00334200 IMEP1_2
        12      38      12      0xa32e3db0 ~ 0xa3617fb0 0x00334200 IMEP1_3
        13      39      13      0xa3617fb0 ~ 0xa394c1b0 0x00334200 IMEP1_4
        14      40      14      0xa394c1b0 ~ 0xa3c803b0 0x00334200 IMEP1_5
        15      41      15      0xa3c803b0 ~ 0xa3fb45b0 0x00334200 IMEP1_6
        16      47      16      0xa3fb45b0 ~ 0xa404c3b0 0x00097e00 IMEP2_1
        17      48      17      0xa404c3b0 ~ 0xa40e41b0 0x00097e00 IMEP2_2
        18      49      18      0xa40e41b0 ~ 0xa417bfb0 0x00097e00 IMEP2_3
        19      50      19      0xa417bfb0 ~ 0xa4213db0 0x00097e00 IMEP2_4
        20      51      20      0xa4213db0 ~ 0xa42abbb0 0x00097e00 IMEP2_5
        21      52      21      0xa42abbb0 ~ 0xa43439b0 0x00097e00 IMEP2_6
        22      58      22      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_1
        23      59      23      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_2
        24      60      24      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_3
        25      61      25      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_4
        26      62      26      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_5
        27      63      27      0xa43439b0 ~ 0xa43439b0 0x00000000 IMEP3_6
        28      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        29      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        30      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        31      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        32      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        33      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        34      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        35      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        36      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        37      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        38      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        39      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        40      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        41      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        42      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        43      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        44      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        45      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        46      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        47      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        48      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        49      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        50      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        51      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        52      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        53      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        54      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        55      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        56      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        57      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        58      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        59      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        60      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        61      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        62      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        63      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        64      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        65      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        66      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        67      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        68      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        69      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        70      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        71      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        72      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        73      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        74      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        75      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        76      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        77      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        78      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        79      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        80      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        81      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        82      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        83      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        84      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        85      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        86      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        87      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        88      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        89      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        90      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        91      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        92      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        93      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        94      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        95      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        96      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        97      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        98      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        99      -1      -1      0x00000000 ~ 0x00000000 0x00000000
        100     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        101     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        102     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        103     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        104     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        105     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        106     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        107     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        108     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        109     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        110     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        111     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        112     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        113     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        114     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        115     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        116     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        117     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        118     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        119     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        120     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        121     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        122     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        123     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        124     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        125     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        126     -1      -1      0x00000000 ~ 0x00000000 0x00000000
        127     -1      -1      0x00000000 ~ 0x00000000 0x00000000

And Claude.ai gave me the following summary:


📊 Buffer Analysis - Proof of Native Capture​


PathBuffer SizeExpected for ResolutionMatch?
IMEP10x00334200 = 3,359,232 bytes1728 × 1296 × 1.5 (YUV) = 3,359,232✅ EXACT
IMEP20x00097e00 = 622,080 bytes656 × 480 × 1.5 = 472,320(with padding)
SIE_RAW0x002fade0 = 3,140,064 bytes1936 × 1076 raw Bayer



✅ Confirmed: Type D Captures at Native 1728x1296 (? Suspect ?)​


The IMEP1 buffer size exactly matches 1728×1296 YUV. This proves:


  1. NOT upscaled - If upscaled from 656x480, the buffer would only need ~472KB, not 3.3MB
  2. Native high-res capture - The full 3.3MB buffer is being used for each frame
  3. Path 1 is the capture path - Path 2 (656x480) is just for LCD preview



🤔 Interesting Mystery​


SourceResolution
Sensor max1936 × 1076
IMEP1 output1728 × 1296

Height 1296 > 1076! This means some ISP interpolation is happening to achieve the 4:3 ratio. But the quality is still far superior to the old 656x480.
> Height 1296 > 1076! This means some ISP interpolation is happening to achieve the 4:3 ratio. But the quality is still far superior to the old 656x480

656x480 is just the preview resolution sent to the display.

With a stock lens, even on D units, the maximum resolution for the active film scan will be around. 860x645, is only 10% higher than older models (from the slightly smaller pixels.) Going from 8mm to 12mm lens, is a 1.5X increase in X and Y res. So around 1290x960, in practice I'm seeing slightly more, like original lens in wider than 8mm.
 
  • Like
Reactions: videodoctor

PentaxEnthusiast

New Tinkerer
Jan 27, 2026
18
13
3
SATX
As someone who scans with a Canon R5 and a Minolta Macro 50/3.5 on Minolta bellows and just happens to have a Kodak Eight Model 25 that hasn't been used yet (by me personally), this is an awesome project!

I develop color and B&W at home, so that's not a concern, I've just not gotten around to getting a roll of 8 mm yet since it only equates to about 2 minutes and 30 seconds of filming.
 

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
As someone who scans with a Canon R5 and a Minolta Macro 50/3.5 on Minolta bellows and just happens to have a Kodak Eight Model 25 that hasn't been used yet (by me personally), this is an awesome project!

I develop color and B&W at home, so that's not a concern, I've just not gotten around to getting a roll of 8 mm yet since it only equates to about 2 minutes and 30 seconds of filming.
I also develop and scan at home. A modified Kodak Reels makes this hobby quiet practical and well as a lot of fun.
 

videodoctor

New Tinkerer
Jan 8, 2026
56
23
8
@0dan0, what's your confidence so far with the (now) five Type D variables in your custom mods?

Code:
imagebase = (uint8_t *)0xa2c7b9b0; //Type D
expo_iso = (int *)0x80e5590c; //sensor ISO
nvm_base = (int *)0x80E0ADA4; //exposure, sharpness, tint
button = (uint32_t *)0xA0E8b7d0;

Also, in your res.c code, did you inject something to make consoleD() work? I'd like to add some print functions to my testing of hist.c.
 
Last edited:

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
@0dan0, what's your confidence so far with the (now) five Type D variables in your custom mods?

Code:
imagebase = (uint8_t *)0xa2c7b9b0; //Type D
expo_iso = (int *)0x80e5590c; //sensor ISO
nvm_base = (int *)0x80E0ADA4; //exposure, sharpness, tint
button = (uint32_t *)0xA0E8b7d0;

Also, in your res.c code, did you inject something to make consoleD() work? I'd like to add some print functions to my testing of hist.c.
I think only expo_iso is in doubt.

The trick to make consoleD() work is in the makefile. Text in color was added:

LDFLAGS = -Wl,--defsym,console=0x080160,--defsym,consoleD=0x080c60

# Default target
all: $(OUTPUT)

# Link the object files into an executable
$(OUTPUT): $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)


P.S. I should receive my Reels type D in Monday's deliveries.
 
  • Like
Reactions: videodoctor

videodoctor

New Tinkerer
Jan 8, 2026
56
23
8
Thanks for that, @0dan0 . It will be nice, i'm sure, to have a D unit in your hands! The address for frameno in your hist.c doesn't seem to be incrementing during preview or encode. In earlier Claude.ai research, it looked like 80f82464 might be a frame counter, but it's incrementing on boot, even without an active preview or capture.

How did you find the frame counter and the encoded frames in your earlier mods?

Also, it looks like the encoded bitrate is around 8Mbps - 10Mbps with the stock H264 config, but I'm curious how difficult it is to find the H264 encoding parameters, particularly the GoP (aka keyframe interval), the profile (it's already High), and possibly the YUV color space. I'm not sure if anyone's tried to get anything better than the YUV 4:2:0 color space working, like 4:2:2.
 

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
Thanks for that, @0dan0 . It will be nice, i'm sure, to have a D unit in your hands! The address for frameno in your hist.c doesn't seem to be incrementing during preview or encode. In earlier Claude.ai research, it looked like 80f82464 might be a frame counter, but it's incrementing on boot, even without an active preview or capture.

How did you find the frame counter and the encoded frames in your earlier mods?

Also, it looks like the encoded bitrate is around 8Mbps - 10Mbps with the stock H264 config, but I'm curious how difficult it is to find the H264 encoding parameters, particularly the GoP (aka keyframe interval), the profile (it's already High), and possibly the YUV color space. I'm not sure if anyone's tried to get anything better than the YUV 4:2:0 color space working, like 4:2:2.
The encoded frame count is something I added, all the data at 0x85bf00xx is generated.

Initialized with code at 0x339580

The encoder frame counter is incremented within the hooked denoise function 0x33a560

This encoder will not support 4:2:2. The GOP structure more be as it is it, I tried for all I-frame, no luck with that. My increased bit-rates are by directly setting the Qp value.
 

videodoctor

New Tinkerer
Jan 8, 2026
56
23
8
@0dan0 , i got the histogram overlay working, but it's flashing a lot, and I tried to add a for() loop in the draw section to make it more steady, but it didn't help much. Here's a recording of it. You'll see I've added little colored rects to the top right of the display to help me debug each stage of the calc_histogram() function. I've attached my current version of the hist.c too. I'm currently exiting out of the exposure section as it will crash when it goes into that condition. I think expo_base isn't accurate for type D.
 

Attachments

  • kodak_reels_type_D_hist_overlay_flashing.mp4
    5.5 MB · Views: 0
  • hist.zip
    8.5 KB · Views: 10

JiemeB

New Tinkerer
Jan 30, 2026
3
0
1
Hi,
Thank you for your hard work.
I loaded your 7.62 "C" firmware on my Kodak reels serial C1725148BK00443 but I have 2 issues.
I can’t play the videos with the firmware (system crash)
I have flick video in the scanned film
do you have an idea to correct this
Thank you
regards
 

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
@0dan0 , i got the histogram overlay working, but it's flashing a lot, and I tried to add a for() loop in the draw section to make it more steady, but it didn't help much. Here's a recording of it. You'll see I've added little colored rects to the top right of the display to help me debug each stage of the calc_histogram() function. I've attached my current version of the hist.c too. I'm currently exiting out of the exposure section as it will crash when it goes into that condition. I think expo_base isn't accurate for type D.
Maybe not addressing all six frame buffers correctly.
 
  • Like
Reactions: videodoctor

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
Hi,
Thank you for your hard work.
I loaded your 7.62 "C" firmware on my Kodak reels serial C1725148BK00443 but I have 2 issues.
I can’t play the videos with the firmware (system crash)
I have flick video in the scanned film
do you have an idea to correct this
Thank you
regards
On unit playback is broken, as documented here https://tinkerdifferent.com/resourc...irmware-for-the-reels-8mm-film-digitizer.165/

Show your flicker. If this is frame move up a down, on the top or bottom edge, just rescan. That is know failure even with stock firmware (as seen here:
)
 

JiemeB

New Tinkerer
Jan 30, 2026
3
0
1

Attachments

  • Movie0001Flicksimple.mp4
    6.6 MB · Views: 0

videodoctor

New Tinkerer
Jan 8, 2026
56
23
8
Maybe not addressing all six frame buffers correctly.
I think the buffers are correct as they all line up with the ipl getimepath buffer addresses---i think the issue is that AE function that you've previously hooked into has changed. After the frame counter is incremented in that native function, there's a modulus check for 3 which exits the AE function prematurely so that it only runs every third frame. There's no room between the increment of the frame counter and that check. When I NOP'd the return from that condition, the histogram is smoother, but still blanks out. I haven't found the exo_iso yet.
 

0dan0

Active Tinkerer
Jan 13, 2025
397
540
93
thanks for your replay.

Irescan 5 time with change parameters. but i got the same result.
I get some good result on firmware 7.40 with kp very high or original firmware.

Regards
what is kp?

Try v7.7. I'm use a Type C, and this happens on 10% or less of captures.