source: branches/juciphox/platform/ixus850_sd800/sub/100e/lib.c @ 427

Revision 427, 5.7 KB checked in by Jucifer, 5 years ago (diff)
  • Updated stuff from the two last trunk commits.

+ Modified a few models to detect motion faster. I hope I got them right.

The rest will follow. I hope.

Line 
1#include "platform.h"
2#include "keyboard.h"
3
4/***********
5ROM:FF8EBD04 loc_FF8EBD04                            ; CODE XREF: sub_FF8EBA14+288j
6ROM:FF8EBD04                                         ; sub_FF8EBA14+2A8j
7ROM:FF8EBD04                 LDR     R5, =unk_4BB44
8ROM:FF8EBD08                 MOV     R2, #0
9ROM:FF8EBD0C                 MOV     R1, #0x220000
10ROM:FF8EBD10                 LDR     R0, [R5]
11ROM:FF8EBD14                 BL      unknown_libname_21 ; "Canon A-Series Firmware"
12ROM:FF8EBD18                 MOV     R1, #0x220000
13ROM:FF8EBD1C                 LDR     R0, [R5]
14ROM:FF8EBD20                 BL      ClearEventFlag
15ROM:FF8EBD24                 LDR     R3, =unk_4BB5C
16ROM:FF8EBD28                 LDR     R2, =0x4BB58 <-- hook_raw_fptr
17ROM:FF8EBD2C                 LDR     R0, [R3]
18ROM:FF8EBD30                 MOV     LR, PC
19ROM:FF8EBD34                 LDR     PC, [R2]
20ROM:FF8EBD38                 BL      nullsub_46 <-- hook_raw_ret_addr points here
21ROM:FF8EBD3C                 LDR     R3, =unk_5840
22***********/
23
24void *hook_raw_fptr()
25{
26    return (void*)0x4BB58; // find on "taskcreate_ImageSensorTask"
27}
28
29void *hook_raw_ret_addr()
30{
31    return (void*)0xFF9B8524; // BL      nullsub_46
32}
33
34/***********
35ROM:FF8E5128                 MOVL    R7, 0x10F00000  ; This plus the 0x600 from below is raw_img_addr
36ROM:FF8E5130                 MOV     R3, #0x8C0000
37ROM:FF8E5134                 ADD     R7, R7, #0x600
38ROM:FF8E5138                 ADD     R3, R3, #0xAE00
39ROM:FF8E513C                 ADD     R8, SP, #0x16C+var_168
40...
41ROM:FF8E5148                 MOV     R2, R7          ; raw_image_addr = 0x10F00600
42ROM:FF8E514C                 ADD     R3, R3, #0x10   ; raw_size = 0x8CAE10
43***********/
44
45char *hook_raw_image_addr()
46{
47    return (char*)(0x10F00600); // 0x10F00000 + 0x600 (find on "A/%08.CRW")
48}
49
50long hook_raw_size()
51{
52    return 0x8CAE10; //7mpx (0x8C0000 + 0xAE00 + 0x10)(find on "A/%08x.CRW")
53}
54
55/***************
56ROM:FFB19720 loc_FFB19720                            ; CODE XREF: sub_FFB196D4+34j
57ROM:FFB19720                 BL      sub_FF8BF204
58ROM:FFB19724                 LDR     R2, =0x106571F0
59ROM:FFB19728                 MOVL    R3, 0x7E900
60ROM:FFB19730                 MOV     R1, R2
61ROM:FFB19734                 STMIA   R4, {R2,R3}
62ROM:FFB19738                 LDR     R0, =aVramAddressP
63ROM:FFB1973C                 BL      sub_FFB0F1E8
64ROM:FFB19740                 LDR     R1, [R4,#4]
65ROM:FFB19744                 LDR     R0, =aVramSize0xX
66ROM:FFB19748                 BL      sub_FFB0F1E8
67ROM:FFB1974C                 MOV     R0, #0
68ROM:FFB19750                 LDMFD   SP!, {R4-R7,PC}
69ROM:FFB19750 ; End of function sub_FFB196D4
70ROM:FFB19750
71ROM:FFB19750 ; ---------------------------------------------------------------------------
72ROM:FFB19754 viewport_fb     DCD 0x106571F0          ; DATA XREF: sub_FFB196D4+50r
73ROM:FFB19758 off_FFB19758    DCD aVramAddressP       ; DATA XREF: sub_FFB196D4+64r
74ROM:FFB19758                                         ; "VRAM Address  : %p\r"
75ROM:FFB1975C off_FFB1975C    DCD aVramSize0xX        ; DATA XREF: sub_FFB196D4+70r
76ROM:FFB1975C                                         ; "VRAM Size     : 0x%x\r"
77
78***************/
79
80void *vid_get_viewport_live_fb()
81{
82//    return (void*)0; // 0x106571F0 + 0x7E900
83    void **fb=(void **)0x5564;
84    unsigned char buff = *((unsigned char*)0x5574);
85    if (buff == 0) {
86        buff = 2;
87    }
88    else {
89        buff--;
90    }
91    return fb[buff];
92}
93
94/***********
95ROM:FF960DC0                 MOVL    R3, 0x10360000
96ROM:FF960DC8                 LDR     LR, =unk_67E0
97ROM:FF960DCC                 MOV     R12, #0x2D0
98ROM:FF960DD0                 MOV     R2, #0xF0 ; '='
99ROM:FF960DD4                 ADD     R3, R3, #0x1000
100***********/
101
102void *vid_get_bitmap_fb()
103{
104    return (void*)0x10361000;   // 0x10360000 + 0x1000, see after "BmpDDev.c" in sub_FF960E00
105}
106
107/***********
108ROM:FFB19720                 BL      sub_FF8BF204
109ROM:FFB19724                 LDR     R2, =0x106571F0
110ROM:FFB19728                 MOVL    R3, 0x7E900
111ROM:FFB19730                 MOV     R1, R2
112***********/
113
114void *vid_get_viewport_fb()
115{
116    return (void*)0x106571F0;   // see after "VRAM Address  : %p" in loc_FFB19720
117}
118
119/***********
120ROM:FF962874                 LDR     R1, =0x89818
121ROM:FF962878                 ADD     R3, R3, R3,LSL#2
122***********/
123
124void *vid_get_viewport_fb_d()
125{
126    return (void*)(*(int*)0x89818); // see before "ImagePlayer.c" at loc_FF962874
127}
128
129long vid_get_bitmap_screen_width()
130{
131    return 360;
132}
133
134long vid_get_bitmap_screen_height()
135{
136    return 240;
137}
138
139long vid_get_viewport_height()
140{
141    return ((mode_get()&MODE_MASK) == MODE_PLAY)?240:230;
142}
143
144/*****************
145ROM:FFAA77B4 a9999           DCB "9999",0            ; DATA XREF: ROM:off_FFAA7824o
146ROM:FFAA77B9                 DCB    0
147ROM:FFAA77BA                 DCB    0
148ROM:FFAA77BB                 DCB    0
149ROM:FFAA77BC aD_0            DCB "%d",0              ; DATA XREF: ROM:off_FFAA7828o
150ROM:FFAA77BF                 DCB    0
151ROM:FFAA77C0
152ROM:FFAA77C0 ; =============== S U B R O U T I N E =======================================
153ROM:FFAA77C0
154ROM:FFAA77C0
155ROM:FFAA77C0 sub_FFAA77C0                            ; CODE XREF: sub_FFAA79F0+D4p
156ROM:FFAA77C0                 MOV     R3, #0x2700
157ROM:FFAA77C4                 MOV     R2, R0
158ROM:FFAA77C8                 STMFD   SP!, {R4,LR}
159ROM:FFAA77CC                 ADD     R3, R3, #0xE
160ROM:FFAA77D0                 LDR     R4, =unk_96F80
161ROM:FFAA77D4                 CMP     R2, R3
162ROM:FFAA77D8                 LDR     R1, =a9999
163ROM:FFAA77DC                 MOV     R0, R4
164ROM:FFAA77E0                 BLS     loc_FFAA77EC
165*****************/
166
167char *camera_jpeg_count_str()
168{
169    return (char*)0x96F80;
170}
171
172
173long vid_get_bitmap_buffer_width() { return 360; }
174
175long vid_get_bitmap_buffer_height() { return 240; }
Note: See TracBrowser for help on using the repository browser.