]> Shamusworld >> Repos - virtualjaguar/blob - src/include/fbmpop4.h
Initial revision
[virtualjaguar] / src / include / fbmpop4.h
1                 uint32 c;
2                 if (jaguar_mainRom_crc32==0x66f8914c)
3                 {
4                         if (idx==12) 
5                                 idx=64;
6                 }                       
7                 paletteRam+=idx*4;
8
9                 if (flags&FLAGS_READMODIFY)
10                 {
11                         if (flags&FLAGS_HFLIP)
12                         {
13                                 if (flags&FLAGS_TRANSPARENT)
14                                 {
15                                         while (iwidth)
16                                         {
17                                                 c=jaguar_byte_read(ptr++);
18                                                 uint32 cl=c>>4;
19                                                 uint32 ch=c&0x0f;
20                                                 if (cl)
21                                                 {
22                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(cl<<1)+0]);
23                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(cl<<1)+1]);
24                                                 }
25                                                 else
26                                                         current_line_buffer-=2;
27                                                 if (ch)
28                                                 {
29                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(ch<<1)+0]);
30                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(ch<<1)+1]);
31                                                 }
32                                                 else
33                                                         current_line_buffer-=2;
34                                                 iwidth--;
35                                         }
36                                 }
37                                 else
38                                 {
39                                         while (iwidth)
40                                         {
41                                                 c=jaguar_byte_read(ptr++);
42                                                 uint32 cl=c>>4;
43                                                 uint32 ch=c&0x0f;
44                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(cl<<1)+0]);
45                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(cl<<1)+1]);
46                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(ch<<1)+0]);
47                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(ch<<1)+1]);
48                                                 iwidth--;
49                                         }
50                                 }
51                         }
52                         else
53                         {
54                                 if (flags&FLAGS_TRANSPARENT)
55                                 {
56                                         while (iwidth)
57                                         {
58                                                 c=jaguar_byte_read(ptr++);
59                                                 uint32 cl=c>>4;
60                                                 uint32 ch=c&0x0f;
61                                                 if (cl)
62                                                 {
63                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(cl<<1)+0]);
64                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(cl<<1)+1]);
65                                                 }
66                                                 else
67                                                         current_line_buffer+=2;
68                                                 if (ch)
69                                                 {
70                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(ch<<1)+0]);
71                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(ch<<1)+1]);
72                                                 }
73                                                 else
74                                                         current_line_buffer+=2;
75                                                 iwidth--;
76                                         }
77                                 }
78                                 else
79                                 {
80                                         while (iwidth)
81                                         {
82                                                 c=jaguar_byte_read(ptr++);
83                                                 uint32 cl=c>>4;
84                                                 uint32 ch=c&0x0f;
85                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(cl<<1)+0]);
86                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(cl<<1)+1]);
87                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(ch<<1)+0]);
88                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(ch<<1)+1]);
89                                                 iwidth--;
90                                         }
91                                 }
92                         }
93                 }
94                 else
95                 {
96                         if (flags&FLAGS_HFLIP)
97                         {
98                                 if (flags&FLAGS_TRANSPARENT)
99                                 {
100                                         while (iwidth)
101                                         {
102                                                 c=jaguar_byte_read(ptr++);
103                                                 uint32 cl=c>>4;
104                                                 uint32 ch=c&0x0f;
105                                                 if (cl)
106                                                 {
107                                                         *current_line_buffer--=paletteRam[(cl<<1)+0];
108                                                         *current_line_buffer--=paletteRam[(cl<<1)+1];
109                                                 }
110                                                 else
111                                                         current_line_buffer-=2;
112                                                 if (ch)
113                                                 {
114                                                         *current_line_buffer--=paletteRam[(ch<<1)+0];
115                                                         *current_line_buffer--=paletteRam[(ch<<1)+1];
116                                                 }
117                                                 else
118                                                         current_line_buffer-=2;
119                                                 iwidth--;
120                                         }
121                                 }
122                                 else
123                                 {
124                                         while (iwidth)
125                                         {
126                                                 c=jaguar_byte_read(ptr++);
127                                                 uint32 cl=c>>4;
128                                                 uint32 ch=c&0x0f;
129                                                 *current_line_buffer--=paletteRam[(cl<<1)+0];
130                                                 *current_line_buffer--=paletteRam[(cl<<1)+1];
131                                                 *current_line_buffer--=paletteRam[(ch<<1)+0];
132                                                 *current_line_buffer--=paletteRam[(ch<<1)+1];
133                                                 iwidth--;
134                                         }
135                                 }
136                         }
137                         else
138                         {
139                                 if (flags&FLAGS_TRANSPARENT)
140                                 {
141                                         while (iwidth)
142                                         {
143                                                 c=jaguar_byte_read(ptr++);
144                                                 uint32 cl=c>>4;
145                                                 uint32 ch=c&0x0f;
146                                                 if (cl)
147                                                 {
148                                                         *current_line_buffer++=paletteRam[(cl<<1)+0];
149                                                         *current_line_buffer++=paletteRam[(cl<<1)+1];
150                                                 }
151                                                 else
152                                                         current_line_buffer+=2;
153                                                 if (ch)
154                                                 {
155                                                         *current_line_buffer++=paletteRam[(ch<<1)+0];
156                                                         *current_line_buffer++=paletteRam[(ch<<1)+1];
157                                                 }
158                                                 else
159                                                         current_line_buffer+=2;
160                                                 iwidth--;
161                                         }
162                                 }
163                                 else
164                                 {
165                                         while (iwidth)
166                                         {
167                                                 c=jaguar_byte_read(ptr++);
168                                                 uint32 cl=c>>4;
169                                                 uint32 ch=c&0x0f;
170                                                 *current_line_buffer++=paletteRam[(cl<<1)+0];
171                                                 *current_line_buffer++=paletteRam[(cl<<1)+1];
172                                                 *current_line_buffer++=paletteRam[(ch<<1)+0];
173                                                 *current_line_buffer++=paletteRam[(ch<<1)+1];
174                                                 iwidth--;
175                                         }
176                                 }
177                         }
178                 }