<html>
<body>
  <div id="body" style="background-color:#ffffff;" >
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head" style="border-bottom-width:1px;border-bottom-style:solid;" ><td class="headtd" style="padding:0;padding-top:.2em;" colspan="4">Commit in <b><tt>lxdream</tt></b></td></tr>
<tr><td><tt>po/<a href="#file1">pt_BR.po</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+89</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-86</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>src/<a href="#file2">Makefile.am</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+1</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-1</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt>   /<a href="#file3">Makefile.in</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+81</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-65</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>src/pvr2/<a href="#file4">glrender.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+36</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-14</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt>        /<a href="#file5">scene.h</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+1</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>        /<a href="#file6">tileiter.h</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+26</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-24</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt>        /<a href="#file7"><span id="added" style="background-color:#ddffdd;" >untile.c</span></a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+143</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" align="right" nowrap="nowrap">added e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>src/tools/<a href="#file8">genglsl.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+48</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt>test/<a href="#file9">pvr.c</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+2</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+427</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-190</td><td></td></tr>
</table>
<small id="info" style="color: #888888;" >1 added + 8 modified, total 9 files</small><br />
<pre class="comment" style="white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;padding:4px;border:1px dashed #000000;background-color:#ffffdd;" >
Updated pt_BR translation from Arthonis
</pre>
<hr /><a name="file1" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/po</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>pt_BR.po</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/po/pt_BR.po
+++ lxdream/po/pt_BR.po
@@ -8,37 +8,42 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > "Project-Id-Version: lxdream 0.8.3\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-27 20:19+1000\n"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-"PO-Revision-Date: 20<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >09-04-03 11:05</span>-0300\n"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+"PO-Revision-Date: 20<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >10-11-30 10:17</span>-0300\n"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > "Last-Translator: Gabriel Tillmann <gtillmann@gmail.com>\n"
 "Language-Team: PT <trans-pt@lxdream.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_ctrl.m:325 src/gtkui/gtk_ctrl.c:494
-#, fuzzy, c-format
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_ctrl.m:325
+#: src/gtkui/gtk_ctrl.c:494
+#, c-format
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Port %c."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Slot %d."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Porta %c."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_ctrl.m:327 src/gtkui/gtk_ctrl.c:523
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_ctrl.m:327
+#: src/gtkui/gtk_ctrl.c:523
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #, c-format
 msgid "VMU %d."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "VMU %d."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/cocoaui/cocoaui.m:447
 #, c-format
 msgid "Running (%2.4f%%)"
 msgstr "Rodando (%2.4f%%)"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_win.m:193 src/gtkui/gtk_win.c:356
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_win.m:193
+#: src/gtkui/gtk_win.c:356
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "(Press <ctrl><alt> to release grab)"
 msgstr "(Pressione <Ctrl><alt> para desprender)"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_win.m:205 src/gtkui/gtk_win.c:366
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_win.m:205
+#: src/gtkui/gtk_win.c:366
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Running"
 msgstr "Rodando"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_win.m:208 src/gtkui/gtk_win.c:366
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_win.m:208
+#: src/gtkui/gtk_win.c:366
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Stopped"
 msgstr "Parado"
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -60,7 +65,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/config.c:48
 msgid "VMU path"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Caminho do VMU"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/config.c:49
 msgid "Bootstrap IP.BIN"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -71,26 +76,23 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Dispositivo Serial"
 
 #: src/dreamcast.c:203
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgid ""
-"No program is loaded, and no BIOS is configured (required to boot a CD "
-"image). To continue, either load a binary program, or set the path to your "
-"BIOS file in the Path Preferences"
-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgid "No program is loaded, and no BIOS is configured (required to boot a CD image). To continue, either load a binary program, or set the path to your BIOS file in the Path Preferences"
+msgstr "Nenhum programa foi carregado, e a BIOS não está configurada (requisito para arrancar uma imagem de CD). Para continuar, ou carregue um programa binário, ou configure o Caminho do seu arquivo de BIOS nas Preferências"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/dreamcast.c:338
 #, c-format
 msgid "File is not a %s save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "O arquivo %s não é um estado salvo"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/dreamcast.c:343
 #, c-format
 msgid "Unsupported %s save state version"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Versão de estado salvo %s não suportada"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/dreamcast.c:348
 #, c-format
 msgid "%s save state is corrupted (bad module count)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "O estado salvo %s está corrompido (Má contagem de módulo)"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/drivers/audio_alsa.c:35
 msgid "Audio output device"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -118,7 +120,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/drivers/audio_sdl.c:125
 msgid "SDL sound driver"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Driver de Som SDL"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #. Sense key 2 == Not Ready (ie temporary failure). Just ignore and
 #. * consider the drive empty for now, but warn about any other errors
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -126,7 +128,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #: src/drivers/cd_mmc.c:182
 #, c-format
 msgid "Unable to read disc table of contents (error %04x)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Impossível ler a tabela de conteúdo do disco (erro %04x) "
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/drivers/video_gtk.c:132
 msgid "GTK-based OpenGL driver"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -140,7 +142,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "OS X Cocoa GUI-based OpenGL driver"
 msgstr "Driver GUI OS X Cocoa baseado em OpenGL  "
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gdlist.c:187 src/gdlist.c:210
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gdlist.c:187
+#: src/gdlist.c:210
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Empty"
 msgstr "Vazio"
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -152,11 +155,13 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Load state..."
 msgstr "Carregar stado..."
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtkcb.c:184 src/gtkui/gtkcb.c:217
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtkcb.c:184
+#: src/gtkui/gtkcb.c:217
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "lxDream Save State (*.dst)"
 msgstr "lxDream Save State (*.dst)"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtkcb.c:297 src/gtkui/gtk_dump.c:69
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtkcb.c:297
+#: src/gtkui/gtk_dump.c:69
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Memory dump"
 msgstr "Dump de memória"
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -172,10 +177,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "No address selected, so can't run to it"
 msgstr "Sem endereço selecionado, então impossível correr a ele"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtk_ctrl.c:80 src/gtkui/gtk_ctrl.c:109 src/gtkui/gtk_hotkeys.c:50
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtk_ctrl.c:80
+#: src/gtkui/gtk_ctrl.c:109
+#: src/gtkui/gtk_hotkeys.c:50
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #: src/gtkui/gtk_hotkeys.c:79
 msgid "<press key>"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "<Pre<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >c</span>ione tecla>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "<Pre<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >ss</span>ione tecla>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtk_ctrl.c:209
 msgid "Controller Configuration"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -187,24 +194,24 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtk_ctrl.c:252
 msgid "Load VMU"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar VMU"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtk_ctrl.c:266
 msgid "Create VMU"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Criar VMU"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtk_ctrl.c:337 src/gtkui/gtk_ctrl.c:355
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtk_ctrl.c:337
+#: src/gtkui/gtk_ctrl.c:355
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "<empty>"
 msgstr "<Vazio>"
 
 #: src/gtkui/gtk_ctrl.c:364
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Load VMU..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Carregar <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >stado</span>..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >VMU</span>..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtk_ctrl.c:365
 msgid "Create VMU..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Criar VMU..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtk_ctrl.c:559
 msgid "Controller Settings"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -267,9 +274,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Configurações de GD-Rom"
 
 #: src/gtkui/gtk_hotkeys.c:186
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Hotkey Settings"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Configurações de <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >diretório</span>s"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Configurações de <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >Hotkey</span>s"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtk_mmio.c:109
 msgid "Address"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -299,7 +305,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Close"
 msgstr "Fechar"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtk_path.c:34 src/gtkui/gtk_path.c:57
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtk_path.c:34
+#: src/gtkui/gtk_path.c:57
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Select file"
 msgstr "Selecionar arquivo"
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -325,7 +332,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:73
 msgid "Load and run a program binary"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Carregar e <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >Corre</span>r Um programa Binário"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar e <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >Roda</span>r Um programa Binário"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:74
 msgid "_Reset"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -348,49 +355,44 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Continuar"
 
 #: src/gtkui/gtkui.c:77
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "L_oad State..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >_C</span>arregar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >C_</span>arregar Estado..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:77
 msgid "Load an lxdream save state"
 msgstr "Carregar estado do lxdream"
 
 #: src/gtkui/gtkui.c:78
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "S_ave State..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >_S</span>alvar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >S_</span>alvar Estado..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:78
 msgid "Create an lxdream save state"
 msgstr "Criar estado do lxdream"
 
 #: src/gtkui/gtkui.c:79
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "_Load Quick State"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "_Carregar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "_Carregar Estado<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" > Rápido</span>..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:79
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Load the current quick save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Carregar estado do lxdream"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar estado Rápido atual."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:80
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "_Save Quick State..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "_Salvar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "_Salvar Estado<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" > Rápido</span>..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:80
 msgid "Save to the current quick save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Salvar para o atual estado salvo rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:81
 msgid "Select _Quick State"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar _Estado Rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:81
 msgid "Set quick save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Escolher estado salvo rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:82
 msgid "E_xit"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -457,14 +459,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Configurar saída de vídeo"
 
 #: src/gtkui/gtkui.c:91
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "_Hotkeys..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "_Controles..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "_Hotkeys..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:91
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Configure hotkeys"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Configurar <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >Controle</span>s"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Configurar <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >hotkey</span>s"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:92
 msgid "_About..."
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -537,12 +537,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #: src/gtkui/gtkui.c:257
 #, c-format
 msgid "State _%d"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Estado_%d"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:259
 #, c-format
 msgid "Use quick save state %d"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Usar estado salvo rápido %d"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/gtkui/gtkui.c:373
 msgid "Debugger"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -558,68 +558,67 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:40
 msgid "Resume emulation"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Continuar emulação"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:41
 msgid "Stop emulation"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Parar emulação"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:42
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Reset emulator"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Reiniciar <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >dreamcast</span>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Reiniciar <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >o emulador</span>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:43
 msgid "Exit emulator"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Sair do emulador"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:44
 msgid "Save current quick save"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Salvar atual estado rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:45
 msgid "Load current quick save"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar atual estado rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:46
 msgid "Select quick save state 0"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 0"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:47
 msgid "Select quick save state 1"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 1"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:48
 msgid "Select quick save state 2"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 2"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:49
 msgid "Select quick save state 3"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 3"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:50
 msgid "Select quick save state 4"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 4"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:51
 msgid "Select quick save state 5"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 5"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:52
 msgid "Select quick save state 6"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 6"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:53
 msgid "Select quick save state 7"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 7"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:54
 msgid "Select quick save state 8"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 8"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/hotkeys.c:55
 msgid "Select quick save state 9"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 9"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/main.c:87
 msgid "Run the AICA SPU only, with the supplied program"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -638,17 +637,16 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Iniciar no modo debbugador"
 
 #: src/main.c:91
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Start in fullscreen mode"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Iniciar no modo <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >debbugador</span>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Iniciar no modo <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >Tela cheia</span>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/main.c:92
 msgid "Start GDB remote server on PORT for SH4"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Iniciar Servidor remoto do GDB em PORT para SH4"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/main.c:93
 msgid "Start GDB remote server on PORT for ARM"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Iniciar Servidor remoto do GDB em PORT para ARM"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #: src/main.c:94
 msgid "Display this usage information"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -698,19 +696,23 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Disable the SH4 translator"
 msgstr "Desabilitar o tradutor de SH4"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:106 src/maple/lightgun.c:86
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:106
+#: src/maple/lightgun.c:86
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad left"
 msgstr "Dpad Esquerda"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:107 src/maple/lightgun.c:87
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:107
+#: src/maple/lightgun.c:87
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad right"
 msgstr "Dpad Direita"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:108 src/maple/lightgun.c:88
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:108
+#: src/maple/lightgun.c:88
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad up"
 msgstr "Dpad Cima"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:109 src/maple/lightgun.c:89
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:109
+#: src/maple/lightgun.c:89
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad down"
 msgstr "Dpad Baixo"
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -738,11 +740,13 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Button Y"
 msgstr "Botão Y"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:116 src/maple/lightgun.c:90
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:116
+#: src/maple/lightgun.c:90
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Button A"
 msgstr "Botão A"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:117 src/maple/lightgun.c:91
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:117
+#: src/maple/lightgun.c:91
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Button B"
 msgstr "Botão B"
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -754,14 +758,14 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Trigger right"
 msgstr "Gatilho Direita"
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:120 src/maple/lightgun.c:92
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:120
+#: src/maple/lightgun.c:92
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Start button"
 msgstr "Botão Start"
 
 #: src/maple/vmu.c:92
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Volume"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "V<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >alor</span>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "V<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >olume</span>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #. Can't happen.
 #: src/x86dasm/dis-buf.c:57
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -780,9 +784,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 #~ msgid "Bios rom"
 #~ msgstr "Bios rom"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #~ msgid "Flash rom"
 #~ msgstr "Flash rom"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #~ msgid "Save state path"
 #~ msgstr "diretório do estado salvo"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+
</pre></div>
<hr /><a name="file2" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>Makefile.am</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/Makefile.am
+++ lxdream/src/Makefile.am
@@ -55,7 +55,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >      sh4/cache.c sh4/mmu.h sh4/shadow.c \
         aica/armcore.c aica/armcore.h aica/armdasm.c aica/armdasm.h aica/armmem.c \
         aica/aica.c aica/aica.h aica/audio.c aica/audio.h \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-   pvr2/pvr2.c pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+     pvr2/pvr2.c pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >pvr2/untile.c </span>\
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >    pvr2/tacore.c pvr2/rendsort.c pvr2/tileiter.h pvr2/shaders.glsl \
        pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c pvr2/scene.c pvr2/scene.h \
        pvr2/gl_sl.c pvr2/shaders.h pvr2/shaders.def pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c \
</pre></div>
<hr /><a name="file3" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>Makefile.in</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/Makefile.in
+++ lxdream/src/Makefile.in
@@ -155,18 +155,18 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >      sh4/cache.c sh4/mmu.h sh4/shadow.c aica/armcore.c \
        aica/armcore.h aica/armdasm.c aica/armdasm.h aica/armmem.c \
        aica/aica.c aica/aica.h aica/audio.c aica/audio.h pvr2/pvr2.c \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-   pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/tacore.c \
-       pvr2/rendsort.c pvr2/tileiter.h pvr2/shaders.glsl \
-       pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c pvr2/scene.c \
-       pvr2/scene.h pvr2/gl_sl.c pvr2/shaders.h pvr2/shaders.def \
-       pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c maple/maple.c \
-       maple/maple.h maple/controller.c maple/kbd.c maple/mouse.c \
-       maple/lightgun.c maple/vmu.c loader.c loader.h elf.h \
-       bootstrap.c bootstrap.h util.c gdlist.c gdlist.h vmu/vmuvol.c \
-       vmu/vmuvol.h vmu/vmulist.c vmu/vmulist.h display.c display.h \
-       dckeysyms.h drivers/audio_null.c drivers/video_null.c \
-       drivers/video_gl.c drivers/video_gl.h drivers/gl_fbo.c \
-       drivers/serial_unix.c drivers/cdrom/cdrom.h \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+     pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/untile.c \
+       pvr2/tacore.c pvr2/rendsort.c pvr2/tileiter.h \
+       pvr2/shaders.glsl pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c \
+       pvr2/scene.c pvr2/scene.h pvr2/gl_sl.c pvr2/shaders.h \
+       pvr2/shaders.def pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c \
+       maple/maple.c maple/maple.h maple/controller.c maple/kbd.c \
+       maple/mouse.c maple/lightgun.c maple/vmu.c loader.c loader.h \
+       elf.h bootstrap.c bootstrap.h util.c gdlist.c gdlist.h \
+       vmu/vmuvol.c vmu/vmuvol.h vmu/vmulist.c vmu/vmulist.h \
+       display.c display.h dckeysyms.h drivers/audio_null.c \
+       drivers/video_null.c drivers/video_gl.c drivers/video_gl.h \
+       drivers/gl_fbo.c drivers/serial_unix.c drivers/cdrom/cdrom.h \
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >    drivers/cdrom/cdrom.c drivers/cdrom/drive.h \
        drivers/cdrom/sector.h drivers/cdrom/sector.c \
        drivers/cdrom/defs.h drivers/cdrom/cd_nrg.c \
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -262,31 +262,31 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >      lxdream-armdasm.$(OBJEXT) lxdream-armmem.$(OBJEXT) \
        lxdream-aica.$(OBJEXT) lxdream-audio.$(OBJEXT) \
        lxdream-pvr2.$(OBJEXT) lxdream-pvr2mem.$(OBJEXT) \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-   lxdream-tacore.$(OBJEXT) lxdream-rendsort.$(OBJEXT) \
-       lxdream-texcache.$(OBJEXT) lxdream-yuv.$(OBJEXT) \
-       lxdream-rendsave.$(OBJEXT) lxdream-scene.$(OBJEXT) \
-       lxdream-gl_sl.$(OBJEXT) lxdream-glutil.$(OBJEXT) \
-       lxdream-glrender.$(OBJEXT) lxdream-maple.$(OBJEXT) \
-       lxdream-controller.$(OBJEXT) lxdream-kbd.$(OBJEXT) \
-       lxdream-mouse.$(OBJEXT) lxdream-lightgun.$(OBJEXT) \
-       lxdream-vmu.$(OBJEXT) lxdream-loader.$(OBJEXT) \
-       lxdream-bootstrap.$(OBJEXT) lxdream-util.$(OBJEXT) \
-       lxdream-gdlist.$(OBJEXT) lxdream-vmuvol.$(OBJEXT) \
-       lxdream-vmulist.$(OBJEXT) lxdream-display.$(OBJEXT) \
-       lxdream-audio_null.$(OBJEXT) lxdream-video_null.$(OBJEXT) \
-       lxdream-video_gl.$(OBJEXT) lxdream-gl_fbo.$(OBJEXT) \
-       lxdream-serial_unix.$(OBJEXT) lxdream-cdrom.$(OBJEXT) \
-       lxdream-sector.$(OBJEXT) lxdream-cd_nrg.$(OBJEXT) \
-       lxdream-cd_cdi.$(OBJEXT) lxdream-cd_gdi.$(OBJEXT) \
-       lxdream-edc_ecc.$(OBJEXT) lxdream-drive.$(OBJEXT) \
-       lxdream-cd_mmc.$(OBJEXT) lxdream-isofs.$(OBJEXT) \
-       lxdream-hotkeys.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
-       $(am__objects_3) $(am__objects_4) $(am__objects_5) \
-       $(am__objects_6) $(am__objects_7) $(am__objects_8) \
-       $(am__objects_9) $(am__objects_10) $(am__objects_11) \
-       $(am__objects_12) $(am__objects_13) $(am__objects_14) \
-       $(am__objects_15) $(am__objects_16) $(am__objects_17) \
-       $(am__objects_18)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+     lxdream-untile.$(OBJEXT) lxdream-tacore.$(OBJEXT) \
+       lxdream-rendsort.$(OBJEXT) lxdream-texcache.$(OBJEXT) \
+       lxdream-yuv.$(OBJEXT) lxdream-rendsave.$(OBJEXT) \
+       lxdream-scene.$(OBJEXT) lxdream-gl_sl.$(OBJEXT) \
+       lxdream-glutil.$(OBJEXT) lxdream-glrender.$(OBJEXT) \
+       lxdream-maple.$(OBJEXT) lxdream-controller.$(OBJEXT) \
+       lxdream-kbd.$(OBJEXT) lxdream-mouse.$(OBJEXT) \
+       lxdream-lightgun.$(OBJEXT) lxdream-vmu.$(OBJEXT) \
+       lxdream-loader.$(OBJEXT) lxdream-bootstrap.$(OBJEXT) \
+       lxdream-util.$(OBJEXT) lxdream-gdlist.$(OBJEXT) \
+       lxdream-vmuvol.$(OBJEXT) lxdream-vmulist.$(OBJEXT) \
+       lxdream-display.$(OBJEXT) lxdream-audio_null.$(OBJEXT) \
+       lxdream-video_null.$(OBJEXT) lxdream-video_gl.$(OBJEXT) \
+       lxdream-gl_fbo.$(OBJEXT) lxdream-serial_unix.$(OBJEXT) \
+       lxdream-cdrom.$(OBJEXT) lxdream-sector.$(OBJEXT) \
+       lxdream-cd_nrg.$(OBJEXT) lxdream-cd_cdi.$(OBJEXT) \
+       lxdream-cd_gdi.$(OBJEXT) lxdream-edc_ecc.$(OBJEXT) \
+       lxdream-drive.$(OBJEXT) lxdream-cd_mmc.$(OBJEXT) \
+       lxdream-isofs.$(OBJEXT) lxdream-hotkeys.$(OBJEXT) \
+       $(am__objects_1) $(am__objects_2) $(am__objects_3) \
+       $(am__objects_4) $(am__objects_5) $(am__objects_6) \
+       $(am__objects_7) $(am__objects_8) $(am__objects_9) \
+       $(am__objects_10) $(am__objects_11) $(am__objects_12) \
+       $(am__objects_13) $(am__objects_14) $(am__objects_15) \
+       $(am__objects_16) $(am__objects_17) $(am__objects_18)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream_OBJECTS = $(am_lxdream_OBJECTS)
 lxdream_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -575,34 +575,35 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >      sh4/shadow.c aica/armcore.c aica/armcore.h aica/armdasm.c \
        aica/armdasm.h aica/armmem.c aica/aica.c aica/aica.h \
        aica/audio.c aica/audio.h pvr2/pvr2.c pvr2/pvr2.h \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-   pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/tacore.c pvr2/rendsort.c \
-       pvr2/tileiter.h pvr2/shaders.glsl pvr2/texcache.c pvr2/yuv.c \
-       pvr2/rendsave.c pvr2/scene.c pvr2/scene.h pvr2/gl_sl.c \
-       pvr2/shaders.h pvr2/shaders.def pvr2/glutil.c pvr2/glutil.h \
-       pvr2/glrender.c maple/maple.c maple/maple.h maple/controller.c \
-       maple/kbd.c maple/mouse.c maple/lightgun.c maple/vmu.c \
-       loader.c loader.h elf.h bootstrap.c bootstrap.h util.c \
-       gdlist.c gdlist.h vmu/vmuvol.c vmu/vmuvol.h vmu/vmulist.c \
-       vmu/vmulist.h display.c display.h dckeysyms.h \
-       drivers/audio_null.c drivers/video_null.c drivers/video_gl.c \
-       drivers/video_gl.h drivers/gl_fbo.c drivers/serial_unix.c \
-       drivers/cdrom/cdrom.h drivers/cdrom/cdrom.c \
-       drivers/cdrom/drive.h drivers/cdrom/sector.h \
-       drivers/cdrom/sector.c drivers/cdrom/defs.h \
-       drivers/cdrom/cd_nrg.c drivers/cdrom/cd_cdi.c \
-       drivers/cdrom/cd_gdi.c drivers/cdrom/edc_ecc.c \
-       drivers/cdrom/ecc.h drivers/cdrom/drive.c \
-       drivers/cdrom/edc_crctable.h drivers/cdrom/edc_encoder.h \
-       drivers/cdrom/edc_l2sq.h drivers/cdrom/edc_scramble.h \
-       drivers/cdrom/cd_mmc.c drivers/cdrom/isofs.h \
-       drivers/cdrom/isofs.c sh4/sh4.def sh4/sh4core.in sh4/sh4x86.in \
-       sh4/sh4dasm.in sh4/sh4stat.in hotkeys.c hotkeys.h \
-       $(am__append_1) $(am__append_2) $(am__append_4) \
-       $(am__append_5) $(am__append_6) $(am__append_7) \
-       $(am__append_8) $(am__append_9) $(am__append_10) \
-       $(am__append_17) $(am__append_19) $(am__append_21) \
-       $(am__append_23) $(am__append_25) $(am__append_27) \
-       $(am__append_28) $(am__append_29) $(am__append_30)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+     pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/untile.c pvr2/tacore.c \
+       pvr2/rendsort.c pvr2/tileiter.h pvr2/shaders.glsl \
+       pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c pvr2/scene.c \
+       pvr2/scene.h pvr2/gl_sl.c pvr2/shaders.h pvr2/shaders.def \
+       pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c maple/maple.c \
+       maple/maple.h maple/controller.c maple/kbd.c maple/mouse.c \
+       maple/lightgun.c maple/vmu.c loader.c loader.h elf.h \
+       bootstrap.c bootstrap.h util.c gdlist.c gdlist.h vmu/vmuvol.c \
+       vmu/vmuvol.h vmu/vmulist.c vmu/vmulist.h display.c display.h \
+       dckeysyms.h drivers/audio_null.c drivers/video_null.c \
+       drivers/video_gl.c drivers/video_gl.h drivers/gl_fbo.c \
+       drivers/serial_unix.c drivers/cdrom/cdrom.h \
+       drivers/cdrom/cdrom.c drivers/cdrom/drive.h \
+       drivers/cdrom/sector.h drivers/cdrom/sector.c \
+       drivers/cdrom/defs.h drivers/cdrom/cd_nrg.c \
+       drivers/cdrom/cd_cdi.c drivers/cdrom/cd_gdi.c \
+       drivers/cdrom/edc_ecc.c drivers/cdrom/ecc.h \
+       drivers/cdrom/drive.c drivers/cdrom/edc_crctable.h \
+       drivers/cdrom/edc_encoder.h drivers/cdrom/edc_l2sq.h \
+       drivers/cdrom/edc_scramble.h drivers/cdrom/cd_mmc.c \
+       drivers/cdrom/isofs.h drivers/cdrom/isofs.c sh4/sh4.def \
+       sh4/sh4core.in sh4/sh4x86.in sh4/sh4dasm.in sh4/sh4stat.in \
+       hotkeys.c hotkeys.h $(am__append_1) $(am__append_2) \
+       $(am__append_4) $(am__append_5) $(am__append_6) \
+       $(am__append_7) $(am__append_8) $(am__append_9) \
+       $(am__append_10) $(am__append_17) $(am__append_19) \
+       $(am__append_21) $(am__append_23) $(am__append_25) \
+       $(am__append_27) $(am__append_28) $(am__append_29) \
+       $(am__append_30)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream_CPPFLAGS = @LXDREAMCPPFLAGS@
 @BUILD_SH4X86_TRUE@test_testsh4x86_LDADD = @LXDREAM_LIBS@ @GLIB_LIBS@ @GTK_LIBS@ @LIBPNG_LIBS@
 @BUILD_SH4X86_TRUE@test_testsh4x86_CPPFLAGS = @LXDREAMCPPFLAGS@
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -875,6 +876,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-tacore.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-texcache.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-timer.Po@am__quote@
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-untile.Po@am__quote@
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-version.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-video_gdk.Po@am__quote@
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -1565,6 +1567,20 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @AMDEP_TRUE@@am__fastdepCC_FALSE@    DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lxdream-pvr2mem.obj `if test -f 'pvr2/pvr2mem.c'; then $(CYGPATH_W) 'pvr2/pvr2mem.c'; else $(CYGPATH_W) '$(srcdir)/pvr2/pvr2mem.c'; fi`
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+lxdream-untile.o: pvr2/untile.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lxdream-untile.o -MD -MP -MF "$(DEPDIR)/lxdream-untile.Tpo" -c -o lxdream-untile.o `test -f 'pvr2/untile.c' || echo '$(srcdir)/'`pvr2/untile.c; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/lxdream-untile.Tpo" "$(DEPDIR)/lxdream-untile.Po"; else rm -f "$(DEPDIR)/lxdream-untile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pvr2/untile.c' object='lxdream-untile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lxdream-untile.o `test -f 'pvr2/untile.c' || echo '$(srcdir)/'`pvr2/untile.c
+
+lxdream-untile.obj: pvr2/untile.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lxdream-untile.obj -MD -MP -MF "$(DEPDIR)/lxdream-untile.Tpo" -c -o lxdream-untile.obj `if test -f 'pvr2/untile.c'; then $(CYGPATH_W) 'pvr2/untile.c'; else $(CYGPATH_W) '$(srcdir)/pvr2/untile.c'; fi`; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/lxdream-untile.Tpo" "$(DEPDIR)/lxdream-untile.Po"; else rm -f "$(DEPDIR)/lxdream-untile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pvr2/untile.c' object='lxdream-untile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lxdream-untile.obj `if test -f 'pvr2/untile.c'; then $(CYGPATH_W) 'pvr2/untile.c'; else $(CYGPATH_W) '$(srcdir)/pvr2/untile.c'; fi`
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream-tacore.o: pvr2/tacore.c
 @am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lxdream-tacore.o -MD -MP -MF "$(DEPDIR)/lxdream-tacore.Tpo" -c -o lxdream-tacore.o `test -f 'pvr2/tacore.c' || echo '$(srcdir)/'`pvr2/tacore.c; \
 @am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/lxdream-tacore.Tpo" "$(DEPDIR)/lxdream-tacore.Po"; else rm -f "$(DEPDIR)/lxdream-tacore.Tpo"; exit 1; fi
</pre></div>
<hr /><a name="file4" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/pvr2</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>glrender.c</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/glrender.c
+++ lxdream/src/pvr2/glrender.c
@@ -222,7 +222,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     } while( poly != NULL );
 }
 
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >static </span>void gl_render_poly( struct polygon_struct *poly, gboolean set_depth)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+void gl_render_poly( struct polygon_struct *poly, gboolean set_depth)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > {
     if( poly->vertex_count == 0 )
         return; /* Culled */
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -390,6 +390,35 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     glDisable( GL_STENCIL_TEST );
 }
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+static void gl_render_stencil( )
+{
+    struct tile_segment *segment = pvr2_scene.segment_list;
+    if( display_driver->capabilities.stencil_bits >= 2 ) {
+        glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
+        do {
+            int tilex = SEGMENT_X(segment->control);
+            int tiley = SEGMENT_Y(segment->control);
+
+            uint32_t tile_bounds[4] = { tilex << 5, (tilex+1)<<5, tiley<<5, (tiley+1)<<5 };
+            if( !clip_tile_bounds(tile_bounds, pvr2_scene.bounds) ) {
+                continue; // fully clipped, skip tile
+            }
+
+            /* Clip to the visible part of the tile */
+            glScissor( tile_bounds[0], pvr2_scene.buffer_height-tile_bounds[3],
+                    tile_bounds[1]-tile_bounds[0], tile_bounds[3] - tile_bounds[2] );
+            if( IS_TILE_PTR(segment->opaquemod_ptr) &&
+                    !IS_EMPTY_TILE_LIST(segment->opaquemod_ptr) ) {
+                gl_render_tilelist_depthonly(segment->opaque_ptr);
+                gl_render_modifier_tilelist(segment->opaquemod_ptr, tile_bounds);
+            }
+        } while( !IS_LAST_SEGMENT(segment++) );
+        glClear( GL_DEPTH_BUFFER_BIT );
+        glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
+    }
+}
+
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > /**
  * Render the currently defined scene in pvr2_scene
  */
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -444,6 +473,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     glEnable( GL_FOG );
     glEnable( GL_TEXTURE_2D );
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    gl_render_stencil();
+
+    glDisable( GL_SCISSOR_TEST );
+    untile_list(pvr2_scene.segment_list, 0, 0);
+    glEnable( GL_SCISSOR_TEST );
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     /* Process the segment list */
     struct tile_segment *segment = pvr2_scene.segment_list;
     do {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -458,19 +493,6 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         /* Clip to the visible part of the tile */
         glScissor( tile_bounds[0], pvr2_scene.buffer_height-tile_bounds[3], 
                    tile_bounds[1]-tile_bounds[0], tile_bounds[3] - tile_bounds[2] );
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-        if( display_driver->capabilities.stencil_bits >= 2 && 
-                IS_TILE_PTR(segment->opaquemod_ptr) &&
-                !IS_EMPTY_TILE_LIST(segment->opaquemod_ptr) ) {
-            /* Don't do this unless there's actually some shadow polygons */
-
-            /* Use colormask instead of drawbuffer for simplicity */
-            glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
-            gl_render_tilelist_depthonly(segment->opaque_ptr);
-            gl_render_modifier_tilelist(segment->opaquemod_ptr, tile_bounds);
-            glClear( GL_DEPTH_BUFFER_BIT );
-            glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
-        }
-        gl_render_tilelist(segment->opaque_ptr,TRUE);
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         if( IS_TILE_PTR(segment->punchout_ptr) ) {
             glEnable(GL_ALPHA_TEST );
             glDepthFunc(GL_GEQUAL);
</pre></div>
<hr /><a name="file5" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/pvr2</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>scene.h</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/scene.h
+++ lxdream/src/pvr2/scene.h
@@ -82,6 +82,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define MAX_POLYGONS (87382*2)
 #define MAX_POLY_BUFFER_SIZE (MAX_POLYGONS*sizeof(struct polygon_struct))
 #define BUF_POLY_MAP_SIZE (4 MB)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#define POLY_NO(poly) (poly - pvr2_scene.poly_array)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
 /*************************************************************************/
 
</pre></div>
<hr /><a name="file6" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/pvr2</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>tileiter.h</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/tileiter.h
+++ lxdream/src/pvr2/tileiter.h
@@ -84,34 +84,36 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     for(;;){
         uint32_t entry = *it->ptr;
         uint32_t tag = entry >> 29;
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-        if( tag == 0x07 ) {
-            if( tag & 0x10000000 ) {
-                it->ptr = NULL;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+        if( tag < 6 ) {
+            if( tag & 0x04 ) {
+                int vertex_count = tag-1; /* 4 == tri, 5 == quad */
+                int vertex_length = (entry >> 21) & 0x07;
+                if( (entry & 0x01000000) && (pvr2_scene.shadow_mode == SHADOW_FULL) ) {
+                    it->poly_size = 5 + (vertex_length<<1) * vertex_count;
+                } else {
+                    it->poly_size = 3 + vertex_length * vertex_count;
+                }
+                it->strip_count = ((entry >> 25) & 0x0F);
+                it->poly_addr = entry & 0x001FFFFF;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >                 return;
             } else {
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-                it->ptr = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));
-                it->poly_addr = -1;
-                entry = *it->ptr;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+                /* Other polygon */
+                it->strip_count = 0;
+                it->poly_addr = entry & 0x001FFFFF;
+                return;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             }
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-        } else if( tag == 6 ) {
-            /* Illegal? Skip */
-            it->ptr++;
-        } else if( tag & 0x04 ) {
-            int vertex_count = tag-1; /* 4 == tri, 5 == quad */
-            int vertex_length = (entry >> 21) & 0x07;
-            if( (entry & 0x01000000) && (pvr2_scene.shadow_mode == SHADOW_FULL) ) {
-                it->poly_size = 5 + (vertex_length<<1) * vertex_count;
-            } else {
-                it->poly_size = 3 + vertex_length * vertex_count;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+        } else {
+            if( tag == 0x07 ) {
+                if( entry & 0x10000000 ) {
+                    it->ptr = NULL;
+                    return;
+                } else {
+                    it->ptr = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));
+                }
+            } else if( tag == 6 ) {
+                /* Illegal? Skip */
+                it->ptr++;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             }
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-            it->strip_count = ((entry >> 25) & 0x0F);
-            it->poly_addr = entry & 0x001FFFFF;
-            return;
-        } else {
-            /* Other polygon */
-            it->strip_count = 0;
-            it->poly_addr = entry & 0x001FFFFF;
-            return;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         }
     }
 }
</pre></div>
<hr /><a name="file7" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span id="added" class="pathname" style="font-family:monospace; float:right; background-color:#ddffdd;" >lxdream/src/pvr2</span><br />
<div id="added" class="fileheader" style="margin-bottom:.5em; background-color:#ddffdd;" ><big><b>untile.c</b></big> <small id="info" style="color: #888888;" >added at e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/untile.c
+++ lxdream/src/pvr2/untile.c
@@ -0,0 +1,143 @@
</small></pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+/**
+ * $Id$
+ *
+ * Process the tile + polygon data to extract a list of polygons that can
+ * be rendered directly without tiling.
+ *
+ * Copyright (c) 2010 Nathan Keynes.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <stdlib.h>
+#include "pvr2/pvr2.h"
+#include "pvr2/scene.h"
+#include "pvr2/tileiter.h"
+
+static int sort_polydata( const void *a, const void *b )
+{
+    uint32_t idxa = *(const uint32_t*)a;
+    uint32_t idxb = *(const uint32_t*)b;
+    return pvr2_scene.poly_array[idxa].context - pvr2_scene.poly_array[idxb].context;
+}
+
+gboolean untile_list( struct tile_segment *segment, int pass, int list )
+{
+    int tile_width = pvr2_scene.buffer_width >> 5;
+    int tile_height = pvr2_scene.buffer_height >> 5;
+    tileiter tile_map[tile_width][tile_height];
+
+    memset(tile_map, 0, tile_width*tile_height*sizeof(uint32_t *));
+
+    /* 1. Construct the tile map for the last/pass */
+    int last_x = -1, last_y = -1, tile_pass;
+    do {
+        int tile_x = SEGMENT_X(segment->control);
+        int tile_y = SEGMENT_Y(segment->control);
+        if( last_x == tile_x && last_y == tile_y ) {
+            tile_pass++;
+        } else {
+            tile_pass = 0;
+            last_x = tile_x;
+            last_y = tile_y;
+        }
+
+        if( tile_pass == pass ) {
+            uint32_t ptr = ((uint32_t *)segment)[list+1];
+            if( IS_TILE_PTR(ptr) )
+                TILEITER_BEGIN(tile_map[tile_x][tile_y], ptr);
+        }
+    } while( !IS_LAST_SEGMENT(segment++) );
+
+    /* 2. Extract the polygon list, sorted by appearance. We assume the list
+     * can be sorted by address, which makes this a lot simpler/faster.
+     */
+    uint32_t poly_present[pvr2_scene.poly_count];
+    memset( poly_present, 0, sizeof(poly_present) );
+    unsigned x,y, i, j, poly_count = 0;
+    for( x = 0; x < tile_width; x++ ) {
+        for( y = 0; y < tile_height; y++ ) {
+            tileiter list = tile_map[x][y];
+            while( !TILEITER_DONE(list) ) {
+                struct polygon_struct *poly = pvr2_scene.buf_to_poly_map[TILEITER_POLYADDR(list)];
+                if( poly ) {
+                    poly_present[POLY_NO(poly)] = 1;
+                }
+                TILEITER_NEXT(list);
+            }
+        }
+    }
+    /* Collapse array into a set of polygon indexes and then sort it */
+    for( x=0; x<pvr2_scene.poly_count; x++ ) {
+        if( poly_present[x] ) {
+            poly_present[poly_count++] = x;
+        }
+    }
+    qsort(poly_present, poly_count, sizeof(uint32_t), sort_polydata);
+
+    /* 3. Process each polygon in the list. Extract the bounds, and check
+     * each tile in which it should appear - if missing, the poly is clipped
+     * (and we need to construct appropriate bounds).
+     */
+    for( i=0; i<poly_count; i++ ) {
+        struct tile_bounds poly_bounds = {tile_width, tile_height, -1, -1};
+        struct tile_bounds clip_bounds = {0, 0, tile_width, tile_height};
+        struct polygon_struct *poly = &pvr2_scene.poly_array[poly_present[i]];
+        uint32_t poly_addr = poly->context - ((uint32_t *)pvr2_main_ram);
+        do {
+            /* Extract tile bounds for the poly - we assume (since we have the
+             * polygon at all) that it appears correctly in at least one tile.
+             */
+            struct vertex_struct *vert = &pvr2_scene.vertex_array[poly->vertex_index];
+            for( j=0; j<poly->vertex_count; j++ ) {
+                int tx, ty;
+                if( vert[j].x < 0 ) tx = 0;
+                else if( vert[j].x >= pvr2_scene.buffer_width ) tx = tile_width-1;
+                else tx = ((int)vert[j].x)>>5;
+                if( tx < poly_bounds.x1 ) poly_bounds.x1 = tx;
+                if( tx > poly_bounds.x2 ) poly_bounds.x2 = tx;
+                if( vert[j].y < 0 ) ty = 0;
+                else if( vert[j].y >= pvr2_scene.buffer_height ) ty = tile_height-1;
+                else ty = ((int)vert[j].y)>>5;
+                if( ty < poly_bounds.y1 ) poly_bounds.y1 = ty;
+                if( ty > poly_bounds.y2 ) poly_bounds.y2 = ty;
+            }
+            poly = poly->sub_next;
+        } while( poly != NULL );
+        if( poly_bounds.x1 == tile_width ) {
+            continue; /* Polygon has been culled */
+        }
+
+        gl_render_poly(&pvr2_scene.poly_array[poly_present[i]], TRUE);
+#if 0
+        /* Search the tile map for the polygon */
+        for( x = poly_bounds.x1; x <= poly_bounds.x2; x++ ) {
+            for( y = poly_bounds.y1; y <= poly_bounds.y2; y++ ) {
+                tileiter *list = &tile_map[x][y];
+
+
+                /* Skip over earlier entries in the list, if any (can happen if
+                 * we culled something, or had an empty polygon
+                 */
+                while( !TILEITER_DONE(*list) && TILEITER_POLYADDR(*list) < poly_addr )
+                    TILEITER_NEXT(*list);
+                if( TILEITER_POLYADDR(*list) == poly_addr ) {
+                    /* Match */
+                } else {
+                    /* Clipped */
+                }
+            }
+        }
+#endif
+    }
+}
+
+
</pre></div>
<hr /><a name="file8" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/tools</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>genglsl.c</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/tools/genglsl.c
+++ lxdream/src/tools/genglsl.c
@@ -37,10 +37,16 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     FRAGMENT_SHADER = 1
 } shader_type_t;
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+typedef struct uniform {
+    const char *name;
+    const char *var_name;
+} *uniform_t;
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > typedef struct shader {
     shader_type_t type;
     const char *name;
     char *body;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    GList *uniforms;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > } *shader_t;
 
 typedef struct program {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -86,6 +92,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             shader->name = strdup(g_strstrip(buf+8));
             shader->body = malloc(DEF_ALLOC_SIZE);
             shader->body[0] = '\0';
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+            shader->uniforms = 0;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             current_size = DEF_ALLOC_SIZE;
             current_posn = 0;
             result->shaders = g_list_append(result->shaders, shader);
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -96,12 +103,14 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             shader->name = strdup(g_strstrip(buf+10));
             shader->body = malloc(DEF_ALLOC_SIZE);
             shader->body[0] = '\0';
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+            shader->uniforms = 0;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             current_size = DEF_ALLOC_SIZE;
             current_posn = 0;
             result->shaders = g_list_append(result->shaders, shader);
         } else if( strncmp( buf, "#program ", 9 ) == 0 ) {
             shader = NULL;
             program_t program = malloc(sizeof(struct program));
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+            assert( program != NULL );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             char *rest = buf+9;
             char *equals = strchr(rest, '=');
             if( equals == NULL ) {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -115,6 +124,23 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             for(i=0;program->shader_names[i] != NULL; i++ );
             if( i > result->max_shaders )
                 result->max_shaders = i;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+        } else if( strncmp( buf, "#uniform ", 9 ) == 0 ) {
+            uniform_t uniform = malloc(sizeof(struct uniform));
+            assert( uniform != NULL );
+            if( shader == NULL ) {
+                fprintf( stderr, "Error: #uniform specified outside of shader: %s\n", buf );
+                exit(2);
+            }
+            char *rest = buf+9;
+            char *equals = strchr(rest, '=');
+            if( equals == NULL ) {
+                fprintf( stderr, "Error: invalid program line %s\n", buf );
+                exit(2);
+            }
+            *equals = '\0';
+            uniform->name = g_strdup(g_strstrip(rest));
+            uniform->var_name = g_strdup(g_strstrip(equals+1));
+            shader->uniforms = g_list_append(shader->uniforms, uniform);
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         } else if( shader != NULL ) {
             size_t len = strlen(buf);
             if( current_posn + len > current_size ) {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -149,6 +175,17 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     }
 }
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+static uniform_t find_uniform_name( GList *list, const char *name )
+{
+    GList *ptr;
+    for( ptr = list; ptr != NULL; ptr = ptr->next ) {
+        uniform_t data = (uniform_t)list->data;
+        if( strcmp( data->name, name ) == 0 )
+            return data;
+    }
+    return NULL;
+}
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > static void writeHeader( FILE *out, glsldata_t data )
 {
     fprintf( out, "/*\n * This file automatically generated by genglsl from %s\n */\n", data->filename );
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -168,12 +205,22 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     fprintf( f, "typedef enum {\n" );
     const char *last_name = NULL;
     int count = 0;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    GList *unique_uniforms;
+    int uniform_count = 0;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     GList *shader_ptr;
     for( shader_ptr = data->shaders; shader_ptr != NULL; shader_ptr = shader_ptr->next ) {
         count++;
         shader_t shader = (shader_t)shader_ptr->data;
         fprintf( f, "    %s,\n", shader->name );
         last_name = shader->name;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+        GList *uniform_ptr;
+        for( uniform_ptr = shader->uniforms; uniform_ptr != NULL; uniform_ptr = uniform_ptr->next ) {
+            uniform_t uniform = (uniform_t)uniform_ptr->data;
+            if( find_uniform_name(unique_uniforms, uniform->name) == NULL ) {
+                unique_uniforms = g_list_append( unique_uniforms, uniform );
+                uniform_count++;
+            }
+        }
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     }
     fprintf( f, "} shader_id;\n\n" );
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -184,6 +231,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     fprintf( f, "#define GLSL_NO_SHADER -1\n\n" );
     fprintf( f, "#define GLSL_VERTEX_SHADER 1\n" );
     fprintf( f, "#define GLSL_FRAGMENT_SHADER 2\n" );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    fprintf( f, "#define GLSL_NUM_UNIFORMS %d\n", uniform_count );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
     fprintf( f, "typedef enum {\n" );
     last_name = NULL;
</pre></div>
<hr /><a name="file9" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/test</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>pvr.c</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/test/pvr.c
+++ lxdream/test/pvr.c
@@ -42,6 +42,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define RENDER_ADDR2    (PVR_BASE+0x064)
 #define RENDER_HCLIP    (PVR_BASE+0x068)
 #define RENDER_VCLIP    (PVR_BASE+0x06C)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#define RENDER_SHADOW   (PVR_BASE+0x074)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define RENDER_NEARCLIP (PVR_BASE+0x078)
 #define RENDER_FARCLIP  (PVR_BASE+0x088)
 #define RENDER_BGPLANE  (PVR_BASE+0x08C)
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -252,6 +253,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     long_write( RENDER_POLYBASE, config->polybuf );
     long_write( RENDER_TILEBASE, config->tilemap );
     long_write( RENDER_ADDR1, config->render_addr );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    long_write( RENDER_SHADOW, 0x140 );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     long_write( RENDER_SIZE, modulo >> 3 ); 
     long_write( RENDER_ADDR2, config->render_addr + modulo ); /* Not used? */
     long_write( RENDER_HCLIP, (config->width - 1) << 16 );
</pre></div>
<center><small>Chaos Theory</small></center>
</div></body></html>