void *vid_get_viewport_live_fb(){// return (void*)0x0; void **fb=(void **)0x5288; unsigned char buff = *((unsigned char*)0x5298); if (buff == 0) { buff = 2; } else { buff--; } return fb[buff];}
void *vid_get_viewport_live_fb(){// return (void*)0x0; void **fb=(void **)0x64F0; unsigned char buff = *((unsigned char*)0x6500); if (buff == 0) { buff = 2; } else { buff--; } return fb[buff];}
void **fb=(void **)0x2304; unsigned char buff = *((unsigned char*)0x2314); if (buff == 0) { buff = 2; } else { buff--; } return fb[buff];
========== C:\CHDK\TRUNK\TRUNK776\BIN\LOGS\ERR-S5IS-101B.TXT ==========boot.c: In function '_time':boot.c:1710: warning: no return statement in function returning non-voidboot.c: In function 'task_blinker':boot.c:1756: warning: implicit declaration of function 'msleep'lib.c: In function 'vid_get_viewport_live_fb':lib.c:38: error: parameter 'fb' is initializedlib.c:39: error: parameter 'buff' is initializedlib.c:40: error: expected declaration specifiers before 'if'lib.c:43: error: expected declaration specifiers before 'else'lib.c:46: error: expected declaration specifiers before 'return'lib.c:39: error: declaration for parameter 'buff' but no such parameterlib.c:38: error: declaration for parameter 'fb' but no such parameterC:\CHDK\gcc4\bin\gmake[4]: *** [lib.o] Error 1C:\CHDK\gcc4\bin\gmake[3]: *** [all-recursive] Error 1C:\CHDK\gcc4\bin\gmake[2]: *** [all-recursive] Error 1C:\CHDK\gcc4\bin\gmake[1]: *** [all-recursive] Error 1gmake: *** [all-recursive] Error 1
void *vid_get_viewport_live_fb(){// return (void*)0x0; void **fb=(void **)0x2304; unsigned char buff = *((unsigned char*)0x2314); if (buff == 0) { buff = 2; } else { buff--; } return fb[buff];}
void *vid_get_viewport_live_fb(){ void **fb=(void **)0x21E8; unsigned char buff = *((unsigned char*)0x23f8); if (buff == 0) { buff = 2; } else { buff--; } return fb[buff];}
(0x00D27A60 + 0x1900 = 0x00D29360) bytes: 3F480(0x00DA6360 + 0x1900 = 0x00DA7C60) bytes: 3F480(0x00E24C60 + 0x1900 = 0x00E26560) bytes: 3F480
[0x000021E8] : 10D29360[0x00002268] : 10D29360[0x00002304] : 10D29360[0x00002308] : 10DA7C60[0x0000230C] : 10E26560[0x0000A69C] : 10D29360[0x0000A6C8] : 10D29360[0x0000A6CC] : 10D29360[0x0000A70C] : 10D29360[0x000B859C] : 10D29360[0x000DD87C] : 10D29360[0x00304008] : 10DA7C60[0x003140E0] : 10D29360[0x003140E4] : 10D29360
... so i ask you if the latest enhancements are already available for the A650 in latest chdk versions.
void *vid_get_viewport_live_fb(){ return (void*)0;//0x10670ee0;}
--snip--(0x005AE8B0 + 0x1900 = 0x005B01B0) bytes: 180(0x005AEA90 + 0x1900 = 0x005B0390) bytes: 180(0x005AEC70 + 0x1900 = 0x005B0570) bytes: 180(0x005C0DD0 + 0x1900 = 0x005C26D0) bytes: 3F480(0x00658BD0 + 0x1900 = 0x0065A4D0) bytes: 3F480(0x006D74D0 + 0x1900 = 0x006D8DD0) bytes: 3F480(0x00755DD0 + 0x1900 = 0x007576D0) bytes: 3F480
first3refs.txt[0x000020F0] : 1065A4D0[0x0000215C] : 1065A4D0[0x000021E4] : 1065A4D0 <---[0x000021E8] : 106D8DD0 <---[0x000021F0] : 105C26D0 <--- off by 0x8[0x000028F0] : 105C26D0[0x00002900] : 105C26D0[0x00002910] : 105C26D0[0x00009914] : 106D8DD0[0x00009940] : 1065A4D0[0x00009944] : 1065A4D0[0x00009978] : 105C26D0[0x00009984] : 1065A4D0[0x00018A00] : 105C26D0[0x000BC6D4] : 1065A4D0[0x000E1FD8] : 1065A4D0[0x001EBFBC] : 105C26D0[0x00304008] : 1065A4D0[0x00304408] : 105C26D0[0x003140E0] : 1065A4D0[0x003140E4] : 1065A4D0[0x01FDC0A0] : 1065A4D0
last3refs.txt[0x000020F0] : 1065A4D0[0x0000215C] : 1065A4D0[0x000021E4] : 1065A4D0 <---[0x000021E8] : 106D8DD0 <---[0x000021EC] : 107576D0 <---[0x00009914] : 106D8DD0[0x00009940] : 1065A4D0[0x00009944] : 1065A4D0[0x00009984] : 1065A4D0[0x000BC6D4] : 1065A4D0[0x000E1FD8] : 1065A4D0[0x00304008] : 1065A4D0[0x003140E0] : 1065A4D0[0x003140E4] : 1065A4D0[0x01FDC0A0] : 1065A4D0
void **fb=(void **)0x21E4; unsigned char buff = *((unsigned char*)0x2098); if (buff == 0) { buff = 2; } else { buff--; } return fb[buff];
If I did it correctly, that is. I'm not sure because I don't see any dramatic (or even minimal) improvement.... If it's done correctly, the addresses below work and could be included:
Prior to the change, using MDFB optimized for speed, it was always in the 90-140ms range, according to DG's web based thingie... (on a fast LCD, 2ms g-t-g, with vsync disabled)After making the change, compiling (I still use an older gcc-arm 3.4.6 / binutils 2.17 build environment under linux, but I doubt this matters) and taking it for a test-drive, it was for the most part exactly the same. It's 100-120ms shots, never a 90 or 140. So it does appear it's working, as searching around here shows others where there wasn't a noticeable speed improvement, but it did "tighten up" the timings on both ends of the range...
(3) Interestingly, the good shots were mostly in groups of 3 and evenly spaced! eg. #25-26-27, 46-47-48, 67-68-69, etc. Relevance?