1 #include "platform.h" 2 3 // RAM addresses 4 5 // search String "CRAW BUFF" 6 char *hook_raw_image_addr() { 7 return (char*)0x41db3b80; // first RAW buffer address 8 } 9 10 11 // ffb03ef8: 0x41db3b80 First RAW address 12 // ffb401ec Table contains first RAW address 13 // function ff87bc38: references the table with first RAW address (SsImgProcBuf.c) 14 // ff87bc3c: 0x2bec 15 // ff87bc68: 0xC 16 //char *hook_raw_image_addr() { 17 // return (char*) (*(int*)(0x2bec + 0xC)? 0x???????? : 0x41db3b80); 18 //} 19 20 // OSD buffer 21 // search dispcon* functions and BmpDDev.c 22 // ff90ce04: e92d41f0 push {r4, r5, r6, r7, r8, lr} 23 // ff90ce08: e51f8040 ldr r8, [pc, #-64] ; ff90cdd0: (0000556c) 24 // ff90ce0c: e1a04000 mov r4, r0 25 // ff90ce10: e5980010 ldr r0, [r8, #16] 26 // ff90ce14: e1a05001 mov r5, r1 27 // ff90ce18: e3500001 cmp r0, #1 ; 0x1 28 // ff90ce1c: 059f123c ldreq r1, [pc, #572] ; ff90d060: (0000013f) 29 // ff90ce20: 024f004c subeq r0, pc, #76 ; ff90cddc: (44706d42) *"BmpDDev.c" 30 // ff90ce24: e1a07003 mov r7, r3 31 // ff90ce28: e1a06002 mov r6, r2 32 // ff90ce2c: 0bfc4738 bleq loc_ff81eb14 33 // ff90ce30: e3540000 cmp r4, #0 ; 0x0 34 // ff90ce34: 13550000 cmpne r5, #0 ; 0x0 35 // ff90ce38: 13560000 cmpne r6, #0 ; 0x0 36 // ff90ce3c: 13570000 cmpne r7, #0 ; 0x0 37 // ff90ce40: 059f121c ldreq r1, [pc, #540] ; ff90d064: (00000142) 38 // ff90ce44: 024f0070 subeq r0, pc, #112 ; ff90cddc: (44706d42) *"BmpDDev.c" 39 // ff90ce48: 0bfc4731 bleq loc_ff81eb14 40 // ff90ce4c: e59f1214 ldr r1, [pc, #532] ; ff90d068: (0000010e) 41 // ff90ce50: e3a00d0f mov r0, #960 ; 0x3c0 42 // ff90ce54: e5840000 str r0, [r4] 43 // ff90ce58: e5851000 str r1, [r5] 44 // ff90ce5c: e5860000 str r0, [r6] 45 // ff90ce60: e59f0204 ldr r0, [pc, #516] ; ff90d06c: (40431000) ; <---- 46 // ff90ce64: e5870000 str r0, [r7] 47 // ff90ce68: e3a00001 mov r0, #1 ; 0x1 48 // ff90ce6c: e5880010 str r0, [r8, #16] 49 // ff90ce70: e3a00000 mov r0, #0 ; 0x0 50 // ff90ce74: e8bd81f0 pop {r4, r5, r6, r7, r8, pc} 51 //void *vid_get_bitmap_fb() { 52 // return (void*)0x40431000; 53 //} 54 55 // search for String "VRAM Address" (like SX10) 56 // or search for String "MaxY %ld MinY %ld" and look below 57 //void *vid_get_viewport_fb() { 58 // return (void*)0x40547700; 59 //} 60 61 //void *vid_get_viewport_fb_d() { 62 // return (void*)(*(int*)0x29f8); // ff871dec: 0x29a0 + 0x58 63 //} 64 65 int vid_get_viewport_width() { return 360; } 66 67 long vid_get_viewport_height() { return 270; } 68 69 // ?!? 70 // search for String "9999" 71 // ff9eacb0: e250cc27 subs ip, r0, #9984 ; 0x2700 72 // ff9eacb4: 225cc00f subscs ip, ip, #15 ; 0xf 73 // ff9eacb8: 3a000003 bcc loc_ff9eaccc 74 // ff9eacbc: e59f013c ldr r0, [pc, #316] ; ff9eae00: (0009eb4c) 75 // ff9eacc0: e28f1e13 add r1, pc, #304 ; ff9eadf8: (39393939) *"9999" 76 // ff9eacc4: ebf8d631 bl loc_ff820590 77 // ff9eacc8: ea000003 b loc_ff9eacdc 78 char *camera_jpeg_count_str() { 79 return (char*)0x9eb4c; 80 } 81