<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bitmap colors not correct when used in allegro</title>
		<link>http://www.allegro.cc/forums/view/586964</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 10 Aug 2006 17:00:19 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is the code that I use for the game that I am using and a simple 102,17 bitmap of 6 frames of animation the ball graphic is located here <a href="http://www.geocities.com/jensen_305/Ball.bmp">Ball.bmp</a> for use with this small program.  When you note the ball it is red balls but when played in allegro it is Blue how do I fix this odd problem?</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include "allegro.h"</span></td></tr><tr><td class="number">2</td><td><span class="p">#define MODE GFX_AUTODETECT_FULLSCREEN       </span></td></tr><tr><td class="number">3</td><td><span class="k1">int</span> WIDTH <span class="k3">=</span> <span class="n">640</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td><span class="k1">int</span> HEIGHT <span class="k3">=</span> <span class="n">480</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td><span class="k1">int</span> n<span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k1">int</span> i<span class="k2">;</span></td></tr><tr><td class="number">7</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp<span class="k2">;</span> </td></tr><tr><td class="number">8</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>ball<span class="k2">[</span><span class="n">6</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>active_page<span class="k2">;</span></td></tr><tr><td class="number">10</td><td><span class="k1">int</span> bals<span class="k2">;</span></td></tr><tr><td class="number">11</td><td><span class="k1">struct</span> tagBall <span class="k2">{</span></td></tr><tr><td class="number">12</td><td>    <span class="k1">int</span> x<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    <span class="k1">int</span> y<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>    <span class="k1">int</span> speed<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>    <span class="k1">int</span> color<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <span class="k1">int</span> size<span class="k2">;</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span>  Balls<span class="k2">[</span><span class="n">6</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span> </td></tr><tr><td class="number">20</td><td><span class="k2">{</span></td></tr><tr><td class="number">21</td><td>           <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span>width,height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>           <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame <span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span></td></tr><tr><td class="number">23</td><td>           <span class="k1">int</span> y <span class="k3">=</span> starty <span class="k3">+</span> <span class="k2">(</span>frame <span class="k2">)</span> <span class="k3">*</span> height<span class="k2">;</span></td></tr><tr><td class="number">24</td><td>           <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source,temp,x,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,width,height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>           <span class="c">//void blit(BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height); </span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>           <span class="k1">return</span> temp<span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="k2">}</span> </td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">31</td><td><span class="k2">{</span></td></tr><tr><td class="number">32</td><td>     <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>     <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>     <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>     <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>     <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>     <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>     </td></tr><tr><td class="number">39</td><td>     <span class="c">//loadsprites();</span></td></tr><tr><td class="number">40</td><td>     temp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"ball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>     <span class="k1">for</span> <span class="k2">(</span>n <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>n<span class="k3">&lt;</span><span class="n">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">42</td><td>         ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span> <span class="c">//(temp,width,height,startx,starty,colums,n)</span></td></tr><tr><td class="number">43</td><td>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>     <span class="c">//setupscreen();</span></td></tr><tr><td class="number">45</td><td>     <span class="k1">int</span> ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>MODE, WIDTH, HEIGHT, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>     <span class="k1">if</span> <span class="k2">(</span>ret <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> </td></tr><tr><td class="number">47</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">48</td><td>        <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">50</td><td>     </td></tr><tr><td class="number">51</td><td>     <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_video_bitmap" target="_blank"><span class="a">create_video_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>     <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_video_bitmap" target="_blank"><span class="a">create_video_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>     active_page <span class="k3">=</span> buffer2<span class="k2">;</span></td></tr><tr><td class="number">54</td><td>     </td></tr><tr><td class="number">55</td><td>     <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">56</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">57</td><td>           bals<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">58</td><td>           <span class="k1">if</span> <span class="k2">(</span>bals <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">12</span><span class="k2">)</span></td></tr><tr><td class="number">59</td><td>              bals <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>           <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>active_page,ball<span class="k2">[</span>bals<span class="k3">/</span><span class="n">2</span><span class="k2">]</span>,<a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>              </td></tr><tr><td class="number">62</td><td>           <a href="http://www.allegro.cc/manual/show_video_bitmap" target="_blank"><span class="a">show_video_bitmap</span></a><span class="k2">(</span>active_page<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>           <span class="k1">if</span> <span class="k2">(</span>active_page <span class="k3">=</span><span class="k3">=</span> buffer<span class="k2">)</span></td></tr><tr><td class="number">64</td><td>               active_page <span class="k3">=</span> buffer2<span class="k2">;</span></td></tr><tr><td class="number">65</td><td>           <span class="k1">else</span></td></tr><tr><td class="number">66</td><td>               active_page <span class="k3">=</span> buffer<span class="k2">;</span>           </td></tr><tr><td class="number">67</td><td>           <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>active_page, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>        </td></tr><tr><td class="number">69</td><td>           <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">100</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">71</td><td>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer2<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>     <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">6</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span></td></tr><tr><td class="number">74</td><td>          <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>ball<span class="k3">&lt;</span>i&gt;<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>     <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>     <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td><span class="k2">}</span></td></tr><tr><td class="number">78</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>

Figured I would shrink down my game into a simple sprite animation tester to show my problem.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Thu, 10 Aug 2006 08:01:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re loading bitmaps before setting the graphics mode, so Allegro has no way to know which color order to put it in (and obviously gets it wrong).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Thu, 10 Aug 2006 08:57:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wow that fixed it I don&#39;t see why I didn&#39;t notice that when I rewrote the program.  Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Thu, 10 Aug 2006 17:00:19 +0000</pubDate>
	</item>
</rss>
