well, I have to commit for you to work on it too, but I don't know yet if I can just commit the source or have to ask someone first...
/*! @file stubs_entry_2.S * This file has corrected firmware function addresses * In this file you have to put all the firmware function addresses * that the build system can't get just right. * @author Shinigami * * @note * Using pointer to BX LR (just look for nullsub in IDA's function names list) as reyalp suggested * I've separated unknown stubs in packages as Microfunguy suggested * * @warning all these addresses have to be checked */#include "stubs_asm.h"//! Confirmed stubs (based on G11 adresses)NHSTUB(WriteSDCard, 0xFF92A5D8)NHSTUB(DoAFLock, 0xFF825E48)NHSTUB(UnlockAF, 0xFF825E9C)NHSTUB(MakeAFScan, 0xFF966130)NHSTUB(EnterToCompensationEVF, 0xFF826110)NHSTUB(ExitFromCompensationEVF, 0xFF826154)//! Unknown stubs//! Unknown stubs package ANHSTUB(kbd_pwr_on, 0xFF810B04)NHSTUB(kbd_pwr_off, 0xFF810B04)NHSTUB(GetKbdState, 0xFF810B04)NHSTUB(UnsetZoomForMovie, 0xFF810B04)NHSTUB(set_zoom_speed, 0xFF810B04)NHSTUB(SetZoomActuatorSpeedPercent, 0xFF810B04)//! Unknown stubs package BNHSTUB(strchr, 0xFF810B04)NHSTUB(RefreshPhysicalScreen, 0xFF810B04)NHSTUB(TurnOffBackLight, 0xFF810B04)NHSTUB(bitmap_refresh, 0xFF810B04)NHSTUB(ScreenLock, 0xFF810B04) //Shinigami: 0xFF9DA088?NHSTUB(ScreenUnlock, 0xFF810B04) //Shinigami: FF9DA0C8?//! Unknown stubs package CNHSTUB(set_led, 0xFF810B04)NHSTUB(LEDDrive, 0xFF810B04)NHSTUB(SetScriptMode, 0xFF810B04)NHSTUB(apex2us, 0xFF810B04)NHSTUB(ExpCtrlTool_StartContiAE, 0xFF810B04)NHSTUB(optical_zoom, 0xFF810B04)//! Unknown stub package DNHSTUB(partitions, 0xFF810B04)NHSTUB(rewinddir, 0xFF810B04)NHSTUB(filesystem, 0xFF810B04)NHSTUB(Mount_FileSystem, 0xFF810B04)NHSTUB(Unmount_FileSystem, 0xFF810B04)//! Dubious stubs//! Dubious stubs package ENSTUB(ExitTask, 0xff81b184) // Best match: 57%NSTUB(FreeUncacheableMemory, 0xff828840) // Best match: 91%NSTUB(GetCurrentAvValue, 0xff93b378) // Best match: 88%NSTUB(GetDrive_FreeClusters, 0xff859f90) // Best match: 62%NSTUB(GetFocusLensSubjectDistance, 0xff939848) // Best match: 64%NSTUB(GetFocusLensSubjectDistanceFromLens, 0xff939c30) // Best match: 83%//! Dubious stubs package FNSTUB(GetOpticalTemperature, 0xff84dd00) // Best match: 96%NSTUB(GetParameterData, 0xff971c10) // Best match: 66%NSTUB(GetPropertyCase, 0xff8777cc) // Best match: 72%NSTUB(GetSystemTime, 0xffa688c0) // Best match: 96%NSTUB(GetZoomLensCurrentPoint, 0xff93e7c8) // Best match: 74%NSTUB(IsStrobeChargeCompleted, 0xff8b4794) // Best match: 58%//! Dubious stubs package GNSTUB(LockMainPower, 0xff87ef28) // Best match: 93%NSTUB(MakeDirectory_Fut, 0xff8239a8) // Best match: 92%NSTUB(MoveFocusLensToDistance, 0xffad17b4) // Best match: 69%NSTUB(MoveZoomLensWithPoint, 0xffa659a4) // Best match: 58%NSTUB(NewTaskShell, 0xff877274) // Best match: 62%NSTUB(PT_PlaySound, 0xff863c98) // Best match: 81%//! Dubious stubs package HNSTUB(PostLogicalEventForNotPowerType, 0xff87ccec) // Best match: 86%NSTUB(PostLogicalEventToUI, 0xff87cd38) // Best match: 92%NSTUB(RenameFile_Fut, 0xff8238e0) // Best match: 93%NSTUB(SetAutoShutdownTime, 0xff87ef9c) // Best match: 93%NSTUB(SetCurrentCaptureModeType, 0xff885d94) // Best match: 81%NSTUB(SetLogicalEventActive, 0xff87ec78) // Best match: 64%//! Dubious stubs package INSTUB(SetParameterData, 0xff971aec) // Best match: 68%NSTUB(SetPropertyCase, 0xff8776c4) // Best match: 72%NSTUB(SleepTask, 0xff828484) // Best match: 92%NSTUB(TakeSemaphore, 0xff82814c) // Best match: 60%NSTUB(TurnOnBackLight, 0xff88c564) // Best match: 54%NSTUB(UIFS_WriteFirmInfoToFile, 0xff95fddc) // Best match: 72%//! Dubious stubs package JNSTUB(UnlockMainPower, 0xff87ee7c) // Best match: 93%NSTUB(UpdateMBROnFlash, 0xff859dd0) // Best match: 92%NSTUB(VbattGet, 0xff820574) // Best match: 85%NSTUB(kbd_p1_f, 0xff821d24) // Best match: 86%NSTUB(kbd_p1_f_cont, 0xff821d30) // Best match: 86%NSTUB(kbd_p2_f, 0xff82153c) // Best match: 89%//! Dubious stubs package KNSTUB(kbd_read_keys, 0xff821c28) // Best match: 76%NSTUB(qsort, 0xff9db6b0) // Best match: 95%NSTUB(rand, 0xff81ccb8) // Best match: 95%NSTUB(srand, 0xff81ccac) // Best match: 95%NSTUB(strncmp, 0xff899194) // Best match: 85%NSTUB(strrchr, 0xff8991dc) // Best match: 80%//! Dubious stubs package LNSTUB(time, 0xff871860) // Best match: 83%NSTUB(GetDrive_TotalClusters, 0xff859f90) // Best match: 55%// ALT: NSTUB(GetDrive_TotalClusters, 0xff859fc4) // 15/12// ALT: NSTUB(GetDrive_TotalClusters, 0xff859ff8) // 15/12NSTUB(kbd_read_keys_r2, 0xff84a9b8) // Best match: 78%// ALT: NSTUB(kbd_read_keys_r2, 0xff84a99c) // 17/5NSTUB(GetDrive_ClusterSize, 0xff859f90) // Best match: 55%// ALT: NSTUB(GetDrive_ClusterSize, 0xff859fc4) // 15/12// ALT: NSTUB(GetDrive_ClusterSize, 0xff859ff8) // 15/12// ALT: NSTUB(GetDrive_ClusterSize, 0xff859f90) // 14/12// ALT: NSTUB(GetDrive_ClusterSize, 0xff85a02c) // 14/12
Thank you for your work! I think some of us G10 owners were starting to feel neglected.I don't have any programming experience but will beta test the heck out of it.