| 1 | #include "platform.h" |
|---|
| 2 | |
|---|
| 3 | //SD780 - Search for "CRAW BUFF SIZE" |
|---|
| 4 | long hook_raw_size() |
|---|
| 5 | { |
|---|
| 6 | // RealRom:FF8E6224 LDR R1, =0x424AD900 |
|---|
| 7 | // RealRom:FF8E6228 MOV R2, #0xFF0 |
|---|
| 8 | // RealRom:FF8E622C LDR R3, =0xBE8 |
|---|
| 9 | // RealRom:FF8E6230 STMFA SP, {R1,R2} |
|---|
| 10 | // RealRom:FF8E6234 ADR R0, aCrwaddressLxCr ; " CrwAddress %lx, CrwSize H %ld V %ld\r" |
|---|
| 11 | |
|---|
| 12 | //( 0x11CA240 * 8bits ) / 0xFF0 / 0xBE8 == C bits == 12 bit RAW |
|---|
| 13 | //4080x3048 |
|---|
| 14 | return 0x11CA240; |
|---|
| 15 | } |
|---|
| 16 | |
|---|
| 17 | //VERIFY_SD780 - - Search for "A/%08x.CRW" and find nearby the hex value found for hook_raw_size. |
|---|
| 18 | //VERIFY_SD780 - - Above this is the second value...only value???? |
|---|
| 19 | char *hook_raw_image_addr() |
|---|
| 20 | { |
|---|
| 21 | //VERIFY_SD780 ImgProcBuf 0x2968+0x18???? |
|---|
| 22 | return (char*)0x424AD900; |
|---|
| 23 | // return (char*) (*(int*)(0x5520 + 0x18)? 0x42CFB780 : 0x40EBAFA0); //SD990 has this... |
|---|
| 24 | } |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | //VERIFY_SD780 - - Search for ; LOCATION: LiveImage.c:0 - First LDR |
|---|
| 28 | //VERIFY_SD780 - - Find the **fb lower in function. |
|---|
| 29 | //VERIFY_SD780 - Original location 0xFF8B02F4 |
|---|
| 30 | //VERIFY_SD780 - Have doubts... |
|---|
| 31 | void *vid_get_viewport_live_fb() |
|---|
| 32 | { |
|---|
| 33 | void **fb=(void **)0x43EC; |
|---|
| 34 | unsigned char buff = *((unsigned char*)0x4244); |
|---|
| 35 | if (buff == 0) { |
|---|
| 36 | buff = 2; |
|---|
| 37 | } |
|---|
| 38 | else { |
|---|
| 39 | buff--; |
|---|
| 40 | } |
|---|
| 41 | return fb[buff]; |
|---|
| 42 | } |
|---|
| 43 | |
|---|
| 44 | |
|---|
| 45 | //SD780 - - Search for ; LOCATION: BmpDDev.c:138 - First LDR |
|---|
| 46 | //SD780 - Search ShowBlackChart FF83DAE4 |
|---|
| 47 | void *vid_get_bitmap_fb() |
|---|
| 48 | { |
|---|
| 49 | return (void*)0x403F1000; |
|---|
| 50 | } |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | //SD780 - - Search for "VRAM Address" |
|---|
| 54 | void *vid_get_viewport_fb() |
|---|
| 55 | { |
|---|
| 56 | return (void *)0x415F3570; |
|---|
| 57 | //VRAM Size = 0x7E900 |
|---|
| 58 | } |
|---|
| 59 | |
|---|
| 60 | //VERIFY_SD780 - - Search for "ADR R1, _sub_.*__SlideEffect.c" RE on. |
|---|
| 61 | //VERIFY_SD780 - - Go two jumps up. |
|---|
| 62 | //VERIFY_SD780 - - Could be 0x64/0x68/0x54... |
|---|
| 63 | void *vid_get_viewport_fb_d() |
|---|
| 64 | { |
|---|
| 65 | return (void*)(*(int*)(0x26F4 + 0x58)); |
|---|
| 66 | } |
|---|
| 67 | |
|---|
| 68 | //VERIFY_SD780 - - Check resolutions again. |
|---|
| 69 | int vid_get_viewport_width() |
|---|
| 70 | { |
|---|
| 71 | return 360; // viewport is still 360, even though live view is 720 (960?) |
|---|
| 72 | //return 720; |
|---|
| 73 | } |
|---|
| 74 | |
|---|
| 75 | //VERIFY_SD780 - - Check resolutions again. |
|---|
| 76 | long vid_get_viewport_height() |
|---|
| 77 | { |
|---|
| 78 | return 240; |
|---|
| 79 | } |
|---|
| 80 | |
|---|
| 81 | //SD780 - - Search for "9999" |
|---|
| 82 | char *camera_jpeg_count_str() |
|---|
| 83 | { |
|---|
| 84 | return (char *)0x33110; |
|---|
| 85 | } |
|---|
| 86 | // PTP display stuff - untested |
|---|
| 87 | int vid_get_palette_type() { return 3; } |
|---|
| 88 | int vid_get_palette_size() { return 256*4; } // sub_FF8C99C8, 0x400 |
|---|
| 89 | |
|---|
| 90 | void *vid_get_bitmap_active_palette() { |
|---|
| 91 | return (void *)*(unsigned int*)(0x4CB8+0x28); // sub_FF8C99C8, via sub_FF996CB4 two refs to "Palette Class." |
|---|
| 92 | } |
|---|
| 93 | void *vid_get_bitmap_active_buffer() |
|---|
| 94 | { |
|---|
| 95 | return (void*)(*(int*)(0x4cb8+0x14)); //"Add: %p Width : %ld Hight : %ld", sub_FF8C9A74 |
|---|
| 96 | } |
|---|
| 97 | |
|---|
| 98 | // not verified |
|---|
| 99 | // reyalp note - sub_FF8C9A74 indicates could be 960x270 |
|---|
| 100 | int vid_get_viewport_max_height() { return 240; } |
|---|
| 101 | |
|---|
| 102 | // commented for now, protocol changes needed to handle correctly |
|---|
| 103 | #if 0 |
|---|
| 104 | int vid_get_viewport_width_proper() { |
|---|
| 105 | return ((mode_get()&MODE_MASK) == MODE_PLAY)?720:*(int*)0x43bc; // GetVRAMHPixelSize |
|---|
| 106 | } |
|---|
| 107 | int vid_get_viewport_height_proper() { |
|---|
| 108 | return ((mode_get()&MODE_MASK) == MODE_PLAY)?270:*(int*)(0x43bc+4); // GetVRAMVPixelSize |
|---|
| 109 | } |
|---|
| 110 | #endif |
|---|
| 111 | |
|---|