sx700 porting - page 19 - DryOS Development - CHDK Forum

sx700 porting

  • 184 Replies
  • 79110 Views
*

Offline srsa_4c

  • ******
  • 4396
Re: sx700 porting
« Reply #180 on: 23 / January / 2021, 09:33:25 »
Advertisements
I think I found a possible source for the free cluster count. This value seems to be the one that gets copied to the other similar firmware variables. On the sx280, it is updated during video record.
@CanonUser9000
Attached is a test build. Does the CHDK free card space display and the movie bitrate display look reasonable?

Code: [Select]
Index: platform/sx700hs/lib.c
===================================================================
--- platform/sx700hs/lib.c (revision 5708)
+++ platform/sx700hs/lib.c (working copy)
@@ -267,3 +267,11 @@
     extern char jpeg_count_str[];
  return jpeg_count_str;
 }
+
+// get free cluster info directly
+// also updated during video recording
+unsigned long _GetDrive_FreeClusters(int drive)
+{
+    extern unsigned long live_free_cluster_count;
+    return live_free_cluster_count;
+}
Index: platform/sx700hs/sub/100d/stubs_entry.S
===================================================================
--- platform/sx700hs/sub/100d/stubs_entry.S (revision 5708)
+++ platform/sx700hs/sub/100d/stubs_entry.S (working copy)
@@ -211,7 +211,7 @@
 NHSTUB(GetUsableMaxAv                         ,0xfc1a2d47) //  0
 NHSTUB(GetUsableMinAv                         ,0xfc1a2d35) //  0
 NHSTUB(GetDrive_ClusterSize                   ,0xfc3075a3) //  0
-NHSTUB(GetDrive_FreeClusters                  ,0xfc307ad1) //  0
+//NHSTUB(GetDrive_FreeClusters                ,0xfc307ad1) //  0            Overridden
 NHSTUB(GetFocusLensSubjectDistance            ,0xfc2dcd43) //  0
 NHSTUB(GetKbdState                            ,0xfc06e207) //  0
 NHSTUB(GetMemInfo                             ,0xfc3d4e4d) //  0
Index: platform/sx700hs/sub/100d/stubs_entry_2.S
===================================================================
--- platform/sx700hs/sub/100d/stubs_entry_2.S (revision 5708)
+++ platform/sx700hs/sub/100d/stubs_entry_2.S (working copy)
@@ -26,6 +26,7 @@
 NHSTUB(apex2us, 0xfc31375f) // sx700v100e Shutter.c asserts @ fc1499d0 for line 0x16e, same as 100e fw
 
 NHSTUB(GetDrive_TotalClusters, 0xfc307aad) // sx700v100d found function immediately before GetDrive_FreeClusters in ROM
+IGNORE(GetDrive_FreeClusters) // replacement in lib.c
 
 NHSTUB(LogCameraEvent, 0xfc306c97) // sx700v100d debugging, from func csv
 
Index: platform/sx700hs/sub/100d/stubs_min.S
===================================================================
--- platform/sx700hs/sub/100d/stubs_min.S (revision 5708)
+++ platform/sx700hs/sub/100d/stubs_min.S (working copy)
@@ -35,6 +35,8 @@
 
 DEF(displaytype,                              0x8f98)
 
+DEF(live_free_cluster_count, 0x15f270) // 0x15F238 + 0x38 @ 0xFC05ECEC
+
 // *** Not Found ***
 
 FAKEDEF(video_compression_rate, 1)
Index: platform/sx700hs/sub/100e/stubs_entry.S
===================================================================
--- platform/sx700hs/sub/100e/stubs_entry.S (revision 5708)
+++ platform/sx700hs/sub/100e/stubs_entry.S (working copy)
@@ -211,7 +211,7 @@
 NHSTUB(GetUsableMaxAv                         ,0xfc1a2c7b) //  0
 NHSTUB(GetUsableMinAv                         ,0xfc1a2c69) //  0
 NHSTUB(GetDrive_ClusterSize                   ,0xfc30747b) //  0
-NHSTUB(GetDrive_FreeClusters                  ,0xfc3079a9) //  0
+//NHSTUB(GetDrive_FreeClusters                ,0xfc3079a9) //  0            Overridden
 NHSTUB(GetFocusLensSubjectDistance            ,0xfc2dcc47) //  0
 NHSTUB(GetKbdState                            ,0xfc06e207) //  0
 NHSTUB(GetMemInfo                             ,0xfc3d4cdd) //  0
Index: platform/sx700hs/sub/100e/stubs_entry_2.S
===================================================================
--- platform/sx700hs/sub/100e/stubs_entry_2.S (revision 5708)
+++ platform/sx700hs/sub/100e/stubs_entry_2.S (working copy)
@@ -28,6 +28,7 @@
 NHSTUB(apex2us, 0xfc313637) // sx700v100e Shutter.c asserts @ fc1495ca -> fc149620 instructions similar to g7x fc3826c4
 
 NHSTUB(GetDrive_TotalClusters, 0xfc307985) // sx700v100e found function immediately before GetDrive_FreeClusters in ROM
+IGNORE(GetDrive_FreeClusters) // replacement in lib.c
 
 NHSTUB(LogCameraEvent, 0xfc306b6f) // sx700v100e found debugging, from func csv
 
Index: platform/sx700hs/sub/100e/stubs_min.S
===================================================================
--- platform/sx700hs/sub/100e/stubs_min.S (revision 5708)
+++ platform/sx700hs/sub/100e/stubs_min.S (working copy)
@@ -44,6 +44,8 @@
 // Search for ActionStopRecordMovie, then go till next branchtable
 DEF(displaytype,                              0x8f98) // sx700v100e Similar to sx280 0x8f54 + 0x44 found @0xfc120a38  (GetDisplayType)
 
+DEF(live_free_cluster_count, 0x15f270) // 0x15F238 + 0x38 @ 0xFC05ECEC
+
 // *** Not Found ***
 
 FAKEDEF(video_compression_rate, 1)

*

Offline CanonUser9000

  • *
  • 19
  • A570 - S95 - S100 - SX220 - SX700 - EOSM
Re: sx700 porting
« Reply #181 on: 23 / January / 2021, 11:19:46 »
Hi,
congratulations!
With this build the OSD now displays both free card space and movie bitrates. The values seem to be feasible to me (the value box is flickering, but I understood so far that this can be avoided).

*

Offline CanonUser9000

  • *
  • 19
  • A570 - S95 - S100 - SX220 - SX700 - EOSM
Re: sx700 porting
« Reply #182 on: 18 / February / 2021, 11:12:15 »
SX700: Custom Auto ISO

I've tested Costom Auto ISO on the SX700 withe the following settings (e.g.) in P-Mode:

Minimum Shutter Speed:      Auto
User Factor (1/FL/factor):     6
IS Factor (Tv*factor):           4
Min ISO:                             200
Max ISO Auto:                     1600
Fallback Min. Shutter Speed: 1/60
Fallback Max ISO:                 3200
Overexp Compensation:        Off

With this setting I would expect the cam in any case (even in brighter light as long as the shortes shutter speed is not required) to set 200 ISO if Custom Auto ISO ist set ON. Under lower light conditions I would expect the cam to set ISO 3200 as soon as a shutter speed of longer than 1/60 is required and Custom Auto ISO is set ON.

However in any test cases exposure values are fully identical regardless if Custom Auto ISO is set ON oder OFF.

So please help me if I'd missunderstood the meaning of Custom Auto ISO as described above. Otherwise please verfiy if this feature is working corrrect on the SX700.

Thank's in advance!






Re: sx700 porting
« Reply #183 on: 18 / February / 2021, 21:37:29 »
So please help me if I'd missunderstood the meaning of Custom Auto ISO as described above. Otherwise please verfiy if this feature is working corrrect on the SX700.
 
The Custom Auto ISO code has an interesting history.  I beleive the current code was added by this patch : https://chdk.setepontos.com/index.php?topic=650.msg75555#msg75555

I tried to describe how it works here : CHDK User Manual : Custom Auto ISO

Ported :   A1200    SD940   G10    Powershot N    G16


*

Offline CanonUser9000

  • *
  • 19
  • A570 - S95 - S100 - SX220 - SX700 - EOSM
Re: sx700 porting
« Reply #184 on: 19 / February / 2021, 04:37:22 »
Hi waterwingz,
thank's for the two links (that I've consulted anyway prior posting).

However from my point of view this does not explain the behavior of the SX700.

Given the use case "bright light" the cam exposes with ISO 100 both with Custom Auto ISO on ON or OFF (and the same shutter speed).

At the use case with "low light" the cam sets always ISO 1600 (even in more or less complete darkness) if Custom Auto ISO ist set ON with the settings mentioned above.
Note: the SX700 allows to set ISO 3200 via the Canon menu. For the tests ISO was set to AUTO on the canon menu.

This all would lead me to the conclusion that Custom Auto ISO is not working on the SX700.

Or are other explanations feasible?


 

Related Topics