Перейти к содержанию
Old Phone Forum

SaNek

SGH Open Club
  • Постов

    179
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные SaNek

  1. Э... А чем ее вытащить можно?

    А то гугл ничего толкового не посоветовал...

    вот этой программной, запускать так:

    arm-elf-objdump.exe -W E740XEGF4.elf > E740XEGF4.dwarf

     

    создастся файл, размером около 500 метров =)

     

    arm_elf_objdump.rar

    • Like 5
  2. Тоже был на премьере 2012 =)

    Понравился, спецэффекты на высоте, сюжет так себе... ну и хэппи энд.. =)

    А мне вот кажется Россию там как всегда, извините, обосрали(кроме, когда Россия дала первой согласие на открытие дверей)..

  3. А это откуда, из эльфа/иды?

    А то у меня там окошко Structures пустое...

    Это из дебажной инфы, вытащинной из эльфа, называется DWARF..

    но в дварфе тож все лежит не очевидно.. писал скрипт для парсинга...

    • Like 2
  4. ... Кто-то там просил помоему :)

    Патч: IFG To ANI2 v2.2 / E200XEGJ2

    Патч заменяет некоторую IFG-графику на ANI2.

     

    Преимущества в том, что теперь можно избежать "крокодильевых" краев графики.

     

    На данный момент заменено:

    - Иконки информационных окон ;

    - Картинка в калькуляторе ;

    - Иконки форматов файлов ;

    - Иконки папок на карте памяти ;

    - Картинки `Горячие клавиши` для музыкального плеера ;

    - Перенесены иконки активной/неактивной подложки цифр в пунктах меню.

    - Иконки меню пользователя .

     

    Папка, куда нужно класть ani2-файлы:

    `/images/ani2` .

    А иконки в меню второго уровня нужно класть в:

    `/images/widget/` .

     

    Ознакомиться с нужными файлами для патча Вы можете в TFS-файле, идущим вместе с патчем.

     

    Если нужных файлов не будет хватать - будет выведена оригинальная графика!

     

    Код поддержки ANI2-формата принадлежит Freeman'y, за что ему просто огромнейшее нечеловеческое спасибище

    Также ему принадлежит идея иконок информационных окон, а также их реализация, и идея иконок второго уровня меню.

     

    Примечание. Если файл калькулятора существует в нужной папке, то при нажатии на клавиши в калькулятора - иконки, имитирующие "нажатие" клавиши - отображаться не будут.

    По всем косякам лучше отписываться мне в ЛС !!!

    В большей степени интересна совместимость патчей =) ибо не проверял

    и еще желательно этот патч ставить после Transparent menu..

    и еще.. кто нить бы портанул транспарент меню версию 1.3 было бы ваще круто ;)

    IFG_To_ANi2_v2.2_E200XEGJ2.rar

    • Like 18
  5. Mako, Предполагаю,

    p_ - Pointer (указатель)

    gp_ - Global Pointer (глобальный указатель)

    a_ - Array (массив)

    ga_ - Global Array (глобальный массив)

    v_ - Variable (переменная)

    gv_ - Global Variable (глобальная переменная)

     

    А вот s_,gs_ это скорее всего

    s_ - Struct (структура)

    gs_ - Global Struct (глобальная структура)

    • Like 3
  6. mbv06, доказывай-не доказвай, один фиг, эльфов на самсунги не будет!

    4) у эльфов возможности покруче

    Чем круче то? :D Патчи - это тоже самое... и еще на счет установки и отмены патчей прямо в телефоне... тоже пробовал делать... удавалось "на-лету" изменить что нить в адресном пространстве прошвки, но до ума не довел, в связи с проблемами очистки места, куда нада записывать данные.

     

    Я как то начинал портировать эльф-пак, забросил это дело портанул только SWI-HOOK...

  7. Вообще gs_DspMenu.. Это структура для создания менюшки. :)

    вот чтот типа того...

    //много типов этой структуры я не знаю... это так, чтобы ты имел представление, с чем связываешься 
    struct t_DspMenu  {
    t_MenuType v_MenuType,
    unsigned char v_IndexOrDisplayType,
    unsigned short v_NbMenuList,
    unsigned char v_SG,
    unsigned short v_MenuID,
    t_MenuData s_MenuData,
    <cab35d> *p_GetMenuDataFunc,
    unsigned char  *p_CheckState,
    char *p_EmptyText,
    <cab3bc> *p_CheckMenuFunc,
    t_mcc  *p_CheckMenuMcc,
    unsigned short v_RadioOnIndex,
    unsigned char v_WildType,
    unsigned short v_WildIndex,
    Position_t s_TotalPos,
    Position_t s_MenuPos,
    Position_t s_ScrollbarPos,
    kdxScrollbar_t s_Scrollbar,
    unsigned char v_FrameType,
    unsigned char v_ScrollbarType,
    unsigned short v_MenuListHeight,
    unsigned short v_NbDspMenuList,
    unsigned short v_FirstDspMenuIndex,
    unsigned short v_CurMenuIndex,
    bool v_MenuSelect,
    bool v_ReturnMenu,
    t_mcc  *p_ReturnMcc,
    unsigned char v_SaveContextCause,
    <cab57d> *p_PreMenuFunc,
    unsigned char v_MoveKeyFilter,
    <cab5c1> *p_MoveMenuFunc,
    t_mcc  *p_MoveMenuMcc,
    unsigned char v_SelectKeyFilter,
    <cab628> *p_SelectMenuFunc,
    unsigned char v_UserKeyFilter,
    unsigned char v_MuteKeyFilter,
    <cab68f> *p_UserMenuFunc,
    <cab6c5> *p_EventMenuFunc,
    t_mes s_SaveEvent,
    <cab705> *p_SaveMenuFunc,
    <cab739> *p_RestoreMenuFunc,
    t_mcc  *p_RestoreMenuMcc,
    unsigned short v_NbWheelMenuList,
    unsigned short v_CurWheelMenuIndex,
    bool v_WheelNoRelease,
    <cab7de> a_WheelDspIndex,
    t_MenuPath s_MenuPath,
    <cab816> *p_DestroyMenuFunc,
    t_ChildDisplayStep v_ChildDisplay,
    t_ChildFocusMode v_ChildFocus,
    t_ChildDirection v_ChildDirection,
    unsigned short v_ChildStartY,
    bool v_TransitionStop,
    bool v_DisplayFlag,
    Position_t s_OsdPopup1Pos,
    unsigned short v_OsdPopup2StartY,
    unsigned short v_OldCurMenuIndex,
    unsigned short v_NewCurMenuIndex,
    Position_t s_FocusPos,
    Position_t s_MovePos,
    t_TransItem s_TransItem,
    };
    

  8. Протестил я патч, в некоторых папках когда я закидую песни в плейлист то первая "Исполнитель - Имя",

    А остальные только "Исполнитель"

    Вообще логика патча такая... если есть название песни и исполнитель, то они выводятся Artist - name,

    если нету названия песни, то просто выводится название файла,

    если есть название песни, но нет исполнителя, то выводится только название..

    На j2 покрайней мере я писал так.. не знаю .. может при портировании патча че нить попортили :idea:

    А вообще кинь мне песню в личку, посмотрю

  9. f2065,

     

    int tfs4_open(const char *FileName, unsigned int iFileFlags);

    int tfs4_close(int FileHandler);

    int tfs4_read(int FileHandler, void *cBuffer, int iByteCount);

    int tfs4_write(int FileHandler, void *cBuffer, int iByteCount);

    int tfs4_lseek(int FileHandler, signed int offset, unsigned int origin);

     

    //для tfs4_open iFileFlags.... пример использования. 
    /*
    [b]int fp;
    fp=fopen("/a/file.txt",O_WRONLY|O_CREAT); // Открывает файл для записи, если не создан - создается. а по сути вместо  O_WRONLY|O_CREAT, можно было просто написать 0x201  если чтото еще надо будет стучись в аську.. номер в профиле
    ....
    fclose(fp);[/b]
    */
    #define O_RDONLY 0x0000 /* Open for reading only */
    #define O_WRONLY 0x0001 /* Open for writing only */
    #define O_RDWR 0x0002 /* Open for reading and writing */
    #define O_NONBLOCK 0x0004 /* No delay */
    #define O_RAWMEM 0x0008 /* ISI: reserved for use by pSE+ */
    #define O_EXCL 0x0100 /* Exclusive use flag */
    #define O_CREAT 0x0200 /* Create file if it does not exist */
    #define O_NOCTTY 0x0400 /* Do not assign a controlling term.*/
    #define O_TRUNC 0x0800 /* Truncate flag */
    #define O_APPEND 0x0010 /* Set append mode */
    #define O_SYNC 0x0020 /* Write accd. to SIO file integrity */
    #define O_DSYNC 0x0040 /* Write accd. to SIO data integrity */
    #define O_RSYNC 0x0080 /* Synchronized read I/O operation */
    #define O_ACCMODE 0x0003 /* Mask for file access mode*/

    еще забыл. на счет переменной origin в lseek..

    такие вот параметры:

    #define SEEK_SET 0 //отностительно начала файла
    #define	SEEK_CUR 1 //относительно текущего положения в файле
    #define SEEK_END 2 //относительно конца файла

     

    Могу пример на си выложить если понадобиться :D

    • Like 4
  10. Как просить память ???

    ...

    используй Rtk50_11GetDynMemory

    r0 - сколько требуется памяти,

    r1 - блок памяти (смотреть в *#56658378# - Memory Pool - Dynamic pool, смотри Initial Size и выбирай тот блок, где хватает памяти для твоих нужд)

    void *Rtk50_11GetDynMemory(unsigned short vp_TypePool, unsigned int vp_Size);

     

    Spoiler

    /*P(***************************************************************************/
    /* Procedure name : RtkGetPoolMemory */
    /* Object : Return a memory pointer which is took pool passed in parameter */
    /*----------------------------------------------------------------------------*/
    /* Input parameters : */
    /* ------------------- */
    /* u16 vp_PoolId : The identificator of the pool */
    /* */
    /* Output parameters : */
    /* ------------------- */
    /* void * : The pointer on the allocated memory space */
    /* */
    /* Used variables : */
    /* ------------------- */
    /* t_RtkPoolDesc *p_Rtk_PtrPoolDesc : Pointer to the static pools control */
    /* blocks table */
    /* */
    /* Used procedures : */
    /* ------------------- */
    /* None */
    /* */
    /*----------------------------------------------------------------------------*/
    /*----------------------------------------------------------------------------*/
    /* DESCRIPTION */
    /* */
    /* This primitive checks if there is a free cluster in the pool passed in */
    /* parameter. If yes then a pointer on a cluster is returned else an */
    /* exception routine is activated */
    /*----------------------------------------------------------------------------*/
    /***************************************************************************)P*/
    /* #*/

     

    Spoiler

    /*P(***************************************************************************/
    /* Procedure name : RtkGetPoolMemoryNoTrap */
    /* Object : Return a memory pointer which is took pool passed in parameter */
    /*----------------------------------------------------------------------------*/
    /* Input parameters : */
    /* ------------------- */
    /* u16 vp_PoolId : The identificator of the pool */
    /* */
    /* Output parameters : */
    /* ------------------- */
    /* void * : The pointer on the allocated memory space */
    /* */
    /* Used variables : */
    /* ------------------- */
    /* t_RtkPoolDesc *p_Rtk_PtrPoolDesc : Pointer to the static pools control */
    /* blocks table */
    /* */
    /* Used procedures : */
    /* ------------------- */
    /* None */
    /* */
    /*----------------------------------------------------------------------------*/
    /*----------------------------------------------------------------------------*/
    /* DESCRIPTION */
    /* */
    /* This primitive checks if there is a free cluster in the pool passed in */
    /* parameter. If yes then a pointer on a cluster is returned else returns */
    /* a null pointer */
    /*----------------------------------------------------------------------------*/
    /***************************************************************************)P*/
    /* #*/

     

    • Like 2
×
×
  • Создать...