to all that are still willing to help :)
can you open the spreadsheet again and look closer at the table to the
right?
0xC0F06088 0xC0F0713C 0xC0F07150
the last two registers control some interrupts that happen per frame
to update some parameters etc.
if we are tuning fps more than now, we need to patch them too. but for
that we have to know what they do.
also the first register - it is related to vertical resolution and
some divider.
lets fill these values so we have an idea what we have to touch.
thanks again :)
On 22 Feb., 00:47, g3gg0 <
g3gg0...@gmail.com> wrote:
> well, for documentation purpose i ask this on the public mailing list
> instead of asking alex directly :)
> maybe others can contribute too or have some ideas.
>
> background:
https://magiclantern.wikia.com/wiki/VideoTimer
> i dumped the tables that contain timer values for frame rate
> generation.
> alex found the exact timer frequency that is used to calculate frame
> rate.
>
> Values for 60D:
> #define TG_FREQ_PAL 50000000
> #define TG_FREQ_NTSC_FPS 52747200
> #define TG_FREQ_NTSC_SHUTTER 49440000
>
> Values for 5D2:
> #define TG_FREQ_PAL 40000000
> #define TG_FREQ_NTSC_FPS 41328630
> #define TG_FREQ_NTSC_SHUTTER 39300000
>
> based on this frequency we are able to alter the timers that trigger
> cmos read etc.
> *but* - it is still no clear where these frequencies come from.
> they are different for NTSC and shutter etc.
> maybe we want to alter this frequency too, to get other frame rates
> which are not possible yet.
>
> okay, i have an idea:
> 0xC0F06008, +0x0C, +0x10 are written with values like 0x221, 0x23F etc
> on 600D
> 0x23F = PAL/PAL_DZ, 0x221 = NTSC, 0x23B = NTSC_DZ, 0x2DD = ?, 0x19F
> = ?, 0x1C1 = ?
>
> 50.000.000 Hz * (0x23F + 1) = 28.800.000.000 Hz (haha... 28GHz...
> thats just math of course. in real world they have for sure a 28.8 MHz
> clock)
> 28.800.000.000 Hz / (0x221 + 1) = 52.747.252 Hz (okay, we are 52 Hz
> off alex' calcuation. not too bad)
>
> results in short:
> 0x23F = 50.000.000 Hz (would match)
> 0x221 = 52.747.252 Hz (would match)
> 0x23B = 50.349.650 Hz (?)
> 0x2DD = 39.344.262 Hz (?)
> 0x19F = 69.230.769 Hz (?)
> 0x1C1 = 64.000.000 Hz (?)
>
> can you check this for 5D2, 60D etc?
> until now, i see no reason why this should be wrong.
>
> if it fits for all other cameras... well.. we can get a lot of finer
> fps tuning possibilities :)
>
> how to find the table that contains these values (600D)
>
> FF282178 str_SDRV_StartupDevice
> FF282178 10 40 2D E9 STMFD SP!, {R4,LR}
> FF28217C 00 40 A0 E1 MOV R4, R0
> FF282180 00 00 A0 E3 MOV R0, #0
> FF282184 5B 2F 8F E2 ADR R2, aSdrv_startupdevic ;
> "SDRV_StartupDevice"
> FF282188 03 10 A0 E3 MOV R1, #3
> FF28218C 81 B0 F7 EB BL DryosDebugMsg
> FF282190 98 41 05 EB BL engio_write_some
> FF282194 34 00 94 E5 LDR R0, [R4,#0x34] ; load
> video mode id
> FF282194 ; 1 = 25
> fps
> FF282194 ; 0 = 24
> fps
> FF282194 ; 4 = 50
> fps
> FF282194 ; 8 = 25
> fps zoomed
> FF282194 ; 7 = 24
> fps zoomed
> FF282198 6D 41 05 EB BL write_res_timers_etc
> <-- in here the table with element size 0x14 is dereferenced