Fixed windows build
authorslack <slack@codemaniacs.com>
Wed, 22 Apr 2009 22:33:30 +0000 (00:33 +0200)
committerslack <slack@codemaniacs.com>
Wed, 22 Apr 2009 22:33:30 +0000 (00:33 +0200)
core/CMakeLists.txt
core/GBMemory.h
core/GBVideo.cc
qtboi/QtBoiEmuThread.h
qtboi/QtBoiMainWindow.cc
wendi/CodeBlock.cc
wendi/wendi.cc

index 67a6f57a8bcfd17965f5f2f0a5230188ec065c19..05879e7170be73e897aea9a2cd1534f7fbd96111 100644 (file)
@@ -1,2 +1,2 @@
-ADD_LIBRARY(wenboicore SHARED GameBoy.cc GBMemory.cc GBRom.cc GBVideo.cc MBC.cc NoMBC.cc MBC1.cc util.cc) 
+ADD_LIBRARY(wenboicore STATIC GameBoy.cc GBMemory.cc GBRom.cc GBVideo.cc MBC.cc NoMBC.cc MBC1.cc util.cc)
 
index 37a7cdb80f357be845ae7f3a3d4c4391716b2d47..590eb1128fd7e6fd2811660136b7a144c92e2439 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef GBMEMORY_H
 #define GBMEMORY_H
 
+#pragma warning(disable:4351)
+
 #include "../common/sized_types.h"
 #include <map>
 
index 1aa19ed7d9d45df14b5ade43830c7b2f77c0c1b6..5fc3551d3f617f1a02b3e24434ca7bbc8adb05e7 100644 (file)
@@ -415,10 +415,10 @@ void GBVideo::draw()
                                                if (newscreen[line_base+screen_x+x]==0 ||
                                                                check_bit(v[i].flags,7)==false)
                                                {
-                                                       newscreen[line_base+screen_x+x] = color | (pal_num + 1 << 4);
+                                                       newscreen[line_base+screen_x+x] = color | (pal_num + (1 << 4));
                                                }
                                        }
-                                       //logger.trace(pal_num + 1 << 4);
+                                       //logger.trace(pal_num + (1 << 4));
                                }
 
                                cur_x = v[i].x;
index 1088277e234e2dae52594d6a2c9896e2f5825f31..e8e8b04e50c63c4d985ed45ec1227b380e8008df 100644 (file)
@@ -13,7 +13,7 @@ class QtBoiEmuThread: public QThread
     GameBoy gb;
     GameBoy::run_status status;
     bool isPaused;
-    int frameCount;
+    unsigned int frameCount;
 
     QtBoiEmuThread(QObject *parent);
     ~QtBoiEmuThread();
index 980bacead3f0e72a945abe837cfa6bf6311b22b6..80cbb1a6fac9b854d96c517c705a54d3f00b6c47 100644 (file)
@@ -21,7 +21,7 @@
 QtBoiMainWindow::QtBoiMainWindow(QWidget *parent)
        :QMainWindow(parent), emuThread(0)
 {
-       screenImage = new QImage(160, 144, QImage::Format_Indexed8);
+       screenImage = new QImage(160, 144, QImage::Format_RGB32);
        screenImage->setNumColors(7);
        // gray palette
        //screenImage->setColor(6, qRgb(0,0,0));
@@ -33,6 +33,7 @@ QtBoiMainWindow::QtBoiMainWindow(QWidget *parent)
        //screenImage->setColor(0, qRgb(255,255,255));
        
        // greenish palette
+       /*
        screenImage->setColor(6, qRgb(64,64,64));
        screenImage->setColor(5, qRgb(82,82,53));
        screenImage->setColor(4, qRgb(101,101,42));
@@ -40,6 +41,7 @@ QtBoiMainWindow::QtBoiMainWindow(QWidget *parent)
        screenImage->setColor(2, qRgb(139,139,21));
        screenImage->setColor(1, qRgb(166,166,10));
        screenImage->setColor(0, qRgb(192,192,0));
+       */
 
        emuThread = new QtBoiEmuThread(this);
        emuThread->start();
@@ -193,8 +195,13 @@ void QtBoiMainWindow::onDisassemblyAnchorClicked(const QUrl& url)
 
 void QtBoiMainWindow::onRedraw(const uchar *buffer)
 {
-       uchar *pixels = screenImage->bits();
-       memcpy(pixels, buffer, 160*144);
+       uint *pixels = reinterpret_cast<uint*>(screenImage->bits());
+       //memcpy(pixels, buffer, 160*144);
+       for (int y=0; y<144; y++)
+               for (int x=0; x<160; x++) {
+                       unsigned int val = 255-buffer[160*y+x]*42;
+                       pixels[160*y+x]=(val<<16)|(val<<8)|val;
+               }
        screen->setPixmap(QPixmap::fromImage(screenImage->scaled(320,288)));
 }
 
index 490a574dc78826f3dbc93981f6105dd8c7e1564d..12611f79133332265c6ab2373eab25816dd70c23 100644 (file)
@@ -18,7 +18,6 @@
 #include "CodeBlock.h"
 
 #include <algorithm>
-#include <ext/functional>
 
 CodeBlock::CodeBlock(address start): //< creates an empty CodeBlock 
        type(BLOCK),
@@ -37,17 +36,17 @@ CodeBlock::CodeBlock(CodeBlock &block, address addr): //< removes [addr,end[ fro
        xrefs(),
        name()
 {
-       using std::bind2nd;
-       using __gnu_cxx::select1st;
-       using std::equal_to;
        block.end = addr;
 
-       // HAHA! I'M USING STL EXTENSIONS!!!1
-       DisassemblyIterator first = std::find_if(block.disassembly.begin(),
-                       block.disassembly.end(),
-                       compose1(bind2nd(equal_to<address>(), addr),
-                               select1st<DisassemblyItem>()));
-       DisassemblyIterator tmp = first;
+       DisassemblyIterator tmp;
+       for (tmp=block.disassembly.begin(); tmp!=block.disassembly.end(); ++tmp)
+       {
+               if (tmp->first == addr)
+                       break;
+       }
+       
+       DisassemblyIterator first=tmp;
+       
        this->add_xref((--tmp)->first, Instruction::OTHER);
        DisassemblyIterator last  = block.disassembly.end();
        
index 2b82c42f5169b5bd9b10cdf25f6a39e946772dbc..12d4851b111561ee684660e408d6489e23d654f9 100644 (file)
@@ -299,8 +299,8 @@ int main(int argc, char **argv)
                                {
                                        address src = start+2*i;
                                        address dst = gb.memory.read16(src);
-                                       list<CodeBlock>::iterator i = find_block(pending, dst);
-                                       if (i == pending.end())
+                                       list<CodeBlock>::iterator it = find_block(pending, dst);
+                                       if (it == pending.end())
                                        {
                                                logger.trace("jump table dst block at 0x",std::hex, dst);
                                                pending.push_back(CodeBlock(dst));
@@ -308,7 +308,7 @@ int main(int argc, char **argv)
                                        }
                                        else
                                        {
-                                               i->add_xref(src, Instruction::JUMP_TABLE_JUMP);
+                                               it->add_xref(src, Instruction::JUMP_TABLE_JUMP);
                                        }
                                }
                        }