diff --git a/libgambatte/libgambatte.vcxproj b/libgambatte/libgambatte.vcxproj
index c817c75164..9ec4288c72 100644
--- a/libgambatte/libgambatte.vcxproj
+++ b/libgambatte/libgambatte.vcxproj
@@ -87,7 +87,6 @@
-
@@ -125,7 +124,6 @@
-
diff --git a/libgambatte/libgambatte.vcxproj.filters b/libgambatte/libgambatte.vcxproj.filters
index e476b4c316..426b906169 100644
--- a/libgambatte/libgambatte.vcxproj.filters
+++ b/libgambatte/libgambatte.vcxproj.filters
@@ -87,9 +87,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -176,9 +173,6 @@
Source Files
-
- Source Files
-
Source Files
diff --git a/libgambatte/src/bitmap_font.cpp b/libgambatte/src/bitmap_font.cpp
deleted file mode 100644
index 7ef835f8c1..0000000000
--- a/libgambatte/src/bitmap_font.cpp
+++ /dev/null
@@ -1,330 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2008 by Sindre Aamås *
- * aamas@stud.ntnu.no *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License version 2 as *
- * published by the Free Software Foundation. *
- * *
- * 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 version 2 for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * version 2 along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
-/*
- The following font bitmaps (static const unsigned char *_bits[]), only used
- as data and included in this source file for convenience, are derived from
- the Bitstream Vera Sans font, which is distributed under the following
- copyright:
-
- Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera
- is a trademark of Bitstream, Inc.
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of the fonts accompanying this license ("Fonts") and associated
- documentation files (the "Font Software"), to reproduce and distribute the
- Font Software, including without limitation the rights to use, copy, merge,
- publish, distribute, and/or sell copies of the Font Software, and to permit
- persons to whom the Font Software is furnished to do so, subject to the
- following conditions:
-
- The above copyright and trademark notices and this permission notice shall
- be included in all copies of one or more of the Font Software typefaces.
-
- The Font Software may be modified, altered, or added to, and in particular
- the designs of glyphs or characters in the Fonts may be modified and
- additional glyphs or characters may be added to the Fonts, only if the fonts
- are renamed to names not containing either the words "Bitstream" or the word
- "Vera".
-
- This License becomes null and void to the extent applicable to Fonts or Font
- Software that has been modified and is distributed under the "Bitstream Vera"
- names.
-
- The Font Software may be sold as part of a larger software package but no
- copy of one or more of the Font Software typefaces may be sold by itself.
-
- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
- COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM
- OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR
- CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
- OTHER DEALINGS IN THE FONT SOFTWARE.
-
- Except as contained in this notice, the names of Gnome, the Gnome
- Foundation, and Bitstream Inc., shall not be used in advertising or
- otherwise to promote the sale, use or other dealings in this Font Software
- without prior written authorization from the Gnome Foundation or
- Bitstream Inc., respectively. For further information, contact: fonts at
- gnome dot org.
-*/
-
-#include "bitmap_font.h"
-
-static const unsigned char n0_bits[] = { 0x68,
- 0x00, 0x1c, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c };
-
-static const unsigned char n1_bits[] = { 0x68,
- 0x00, 0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e };
-
-static const unsigned char n2_bits[] = { 0x68,
- 0x00, 0x1c, 0x22, 0x20, 0x10, 0x08, 0x04, 0x3e };
-
-static const unsigned char n3_bits[] = { 0x68,
- 0x00, 0x1c, 0x22, 0x20, 0x1c, 0x20, 0x22, 0x1c };
-
-static const unsigned char n4_bits[] = { 0x68,
- 0x00, 0x18, 0x18, 0x14, 0x12, 0x3e, 0x10, 0x10 };
-
-static const unsigned char n5_bits[] = { 0x68,
- 0x00, 0x1e, 0x02, 0x1e, 0x20, 0x20, 0x20, 0x1e };
-
-static const unsigned char n6_bits[] = { 0x68,
- 0x00, 0x3c, 0x06, 0x02, 0x1e, 0x22, 0x22, 0x1c };
-
-static const unsigned char n7_bits[] = { 0x68,
- 0x00, 0x3e, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04 };
-
-static const unsigned char n8_bits[] = { 0x68,
- 0x00, 0x1c, 0x22, 0x22, 0x1c, 0x22, 0x22, 0x1c };
-
-static const unsigned char n9_bits[] = { 0x68,
- 0x00, 0x1c, 0x22, 0x22, 0x3c, 0x20, 0x30, 0x1e };
-
-static const unsigned char A_bits[] = { 0x78,
- 0x00, 0x08, 0x14, 0x14, 0x22, 0x3e, 0x22, 0x41 };
-
-static const unsigned char a_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x1c, 0x20, 0x3c, 0x22, 0x3e };
-
-static const unsigned char B_bits[] = { 0x78,
- 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x22, 0x22, 0x1e };
-
-static const unsigned char b_bits[] = { 0x68,
- 0x02, 0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x1e };
-
-static const unsigned char C_bits[] = { 0x88,
- 0x00, 0x38, 0x44, 0x02, 0x02, 0x02, 0x44, 0x38 };
-
-static const unsigned char c_bits[] = { 0x58,
- 0x00, 0x00, 0x00, 0x1c, 0x02, 0x02, 0x02, 0x1c };
-
-static const unsigned char D_bits[] = { 0x88,
- 0x00, 0x3e, 0x62, 0x42, 0x42, 0x42, 0x62, 0x3e };
-
-static const unsigned char d_bits[] = { 0x68,
- 0x20, 0x20, 0x20, 0x3c, 0x22, 0x22, 0x22, 0x3c };
-
-static const unsigned char E_bits[] = { 0x78,
- 0x00, 0x3e, 0x02, 0x02, 0x3e, 0x02, 0x02, 0x3e };
-
-static const unsigned char e_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x1c, 0x22, 0x3e, 0x02, 0x3c };
-
-static const unsigned char F_bits[] = { 0x68,
- 0x00, 0x1e, 0x02, 0x02, 0x1e, 0x02, 0x02, 0x02 };
-
-static const unsigned char f_bits[] = { 0x48,
- 0x0e, 0x02, 0x02, 0x07, 0x02, 0x02, 0x02, 0x02 };
-
-static const unsigned char G_bits[] = { 0x88,
- 0x00, 0x3c, 0x46, 0x02, 0x72, 0x42, 0x46, 0x3c };
-
-static const unsigned char g_bits[] = { 0x6a,
- 0x00, 0x00, 0x00, 0x3c, 0x22, 0x22, 0x22, 0x3c, 0x20, 0x1c };
-
-static const unsigned char H_bits[] = { 0x88,
- 0x00, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42 };
-
-static const unsigned char h_bits[] = { 0x68,
- 0x02, 0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x22 };
-
-static const unsigned char I_bits[] = { 0x38,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 };
-
-static const unsigned char i_bits[] = { 0x28,
- 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02 };
-
-static const unsigned char J_bits[] = { 0x4a,
- 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03 };
-
-static const unsigned char j_bits[] = { 0x2a,
- 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03 };
-
-static const unsigned char K_bits[] = { 0x78,
- 0x00, 0x22, 0x12, 0x0a, 0x06, 0x0a, 0x12, 0x22 };
-
-static const unsigned char k_bits[] = { 0x58,
- 0x02, 0x02, 0x02, 0x12, 0x0a, 0x06, 0x0a, 0x12 };
-
-static const unsigned char L_bits[] = { 0x68,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3e };
-
-static const unsigned char l_bits[] = { 0x28,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 };
-
-static const unsigned char M_bits[] = { 0x98,
- 0x00, 0x00, 0x82, 0x00, 0xc6, 0x00, 0xc6, 0x00, 0xaa, 0x00, 0xaa, 0x00,
- 0x92, 0x00, 0x82, 0x00 };
-
-static const unsigned char m_bits[] = { 0xa8,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x01, 0x22, 0x02, 0x22, 0x02,
- 0x22, 0x02, 0x22, 0x02 };
-
-static const unsigned char N_bits[] = { 0x88,
- 0x00, 0x42, 0x46, 0x4a, 0x4a, 0x52, 0x62, 0x42 };
-
-static const unsigned char n_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x1e, 0x22, 0x22, 0x22, 0x22 };
-
-static const unsigned char O_bits[] = { 0x88,
- 0x00, 0x3c, 0x66, 0x42, 0x42, 0x42, 0x66, 0x3c };
-
-static const unsigned char o_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c };
-
-static const unsigned char P_bits[] = { 0x78,
- 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x02, 0x02, 0x02 };
-
-static const unsigned char p_bits[] = { 0x6a,
- 0x00, 0x00, 0x00, 0x1e, 0x22, 0x22, 0x22, 0x1e, 0x02, 0x02 };
-
-static const unsigned char Q_bits[] = { 0x89,
- 0x00, 0x3c, 0x66, 0x42, 0x42, 0x42, 0x26, 0x1c, 0x20 };
-
-static const unsigned char q_bits[] = { 0x6a,
- 0x00, 0x00, 0x00, 0x3c, 0x22, 0x22, 0x22, 0x3c, 0x20, 0x20 };
-
-static const unsigned char R_bits[] = { 0x78,
- 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x12, 0x22, 0x42 };
-
-static const unsigned char r_bits[] = { 0x48,
- 0x00, 0x00, 0x00, 0x0e, 0x02, 0x02, 0x02, 0x02 };
-
-static const unsigned char S_bits[] = { 0x78,
- 0x00, 0x1c, 0x22, 0x02, 0x1c, 0x20, 0x22, 0x1c };
-
-static const unsigned char s_bits[] = { 0x58,
- 0x00, 0x00, 0x00, 0x1e, 0x02, 0x1c, 0x10, 0x1e };
-
-static const unsigned char T_bits[] = { 0x58,
- 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
-
-static const unsigned char t_bits[] = { 0x48,
- 0x00, 0x02, 0x02, 0x0f, 0x02, 0x02, 0x02, 0x0e };
-
-static const unsigned char U_bits[] = { 0x88,
- 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c };
-
-static const unsigned char u_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x3c };
-
-static const unsigned char V_bits[] = { 0x78,
- 0x00, 0x41, 0x41, 0x22, 0x22, 0x14, 0x14, 0x08 };
-
-static const unsigned char v_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08 };
-
-static const unsigned char W_bits[] = { 0x98,
- 0x00, 0x00, 0x11, 0x01, 0x11, 0x01, 0xaa, 0x00, 0xaa, 0x00, 0xaa, 0x00,
- 0x44, 0x00, 0x44, 0x00 };
-
-static const unsigned char w_bits[] = { 0x88,
- 0x00, 0x00, 0x00, 0x92, 0xaa, 0xaa, 0x44, 0x44 };
-
-static const unsigned char X_bits[] = { 0x68,
- 0x00, 0x21, 0x12, 0x0c, 0x0c, 0x0c, 0x12, 0x21 };
-
-static const unsigned char x_bits[] = { 0x68,
- 0x00, 0x00, 0x00, 0x22, 0x14, 0x08, 0x14, 0x22 };
-
-static const unsigned char Y_bits[] = { 0x78,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08 };
-
-static const unsigned char y_bits[] = { 0x6a,
- 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x06 };
-
-static const unsigned char Z_bits[] = { 0x68,
- 0x00, 0x3f, 0x10, 0x08, 0x0c, 0x04, 0x02, 0x3f };
-
-static const unsigned char z_bits[] = { 0x58,
- 0x00, 0x00, 0x00, 0x1e, 0x10, 0x08, 0x04, 0x1e };
-
-static const unsigned char SPC_bits[] = { 0x38,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-
-namespace bitmapfont {
-const unsigned char *const font[] = {
- 0,
- n0_bits, n1_bits, n2_bits, n3_bits, n4_bits, n5_bits, n6_bits, n7_bits, n8_bits, n9_bits,
- A_bits, B_bits, C_bits, D_bits, E_bits, F_bits, G_bits, H_bits, I_bits, J_bits, K_bits, L_bits, M_bits,
- N_bits, O_bits, P_bits, Q_bits, R_bits, S_bits, T_bits, U_bits, V_bits, W_bits, X_bits, Y_bits, Z_bits,
- a_bits, b_bits, c_bits, d_bits, e_bits, f_bits, g_bits, h_bits, i_bits, j_bits, k_bits, l_bits, m_bits,
- n_bits, o_bits, p_bits, q_bits, r_bits, s_bits, t_bits, u_bits, v_bits, w_bits, x_bits, y_bits, z_bits,
- SPC_bits
-};
-
-unsigned getWidth(const char *chars) {
- unsigned w = 0;
-
- while (const int character = *chars++) {
- w += *font[character] >> 4;
- }
-
- return w;
-}
-
-namespace {
-class Rgb32Fill {
- const unsigned long color;
-
-public:
- explicit Rgb32Fill(unsigned long color) : color(color) {}
-
- void operator()(gambatte::uint_least32_t *dest, unsigned /*pitch*/) const {
- *dest = color;
- }
-};
-}
-
-void print(gambatte::uint_least32_t *dest, const unsigned pitch, const unsigned long color, const char *chars) {
- print(dest, pitch, Rgb32Fill(color), chars);
-}
-
-static void reverse(char *first, char *last) {
- while (first < last) {
- const int tmp = *first;
-
- *first = *last;
- *last = tmp;
-
- ++first;
- --last;
- }
-}
-
-void utoa(unsigned u, char *a) {
- char *aa = a;
-
- while (u > 9) {
- const unsigned div = u / 10;
- const unsigned rem = u % 10;
-
- u = div;
- *aa++ = rem + N0;
- }
-
- *aa = u + N0;
-
- reverse(a, aa);
-}
-}
diff --git a/libgambatte/src/bitmap_font.h b/libgambatte/src/bitmap_font.h
deleted file mode 100644
index 35b29fa706..0000000000
--- a/libgambatte/src/bitmap_font.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2008 by Sindre Aamås *
- * aamas@stud.ntnu.no *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License version 2 as *
- * published by the Free Software Foundation. *
- * *
- * 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 version 2 for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * version 2 along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-#ifndef BITMAP_FONT_H
-#define BITMAP_FONT_H
-
-#include "gbint.h"
-
-namespace bitmapfont {
-enum Char {
- NUL,
- N0, N1, N2, N3, N4, N5, N6, N7, N8, N9,
- A, B, C, D, E, F, G, H, I, J, K, L, M,
- N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
- a, b, c, d, e, f, g, h, i, j, k, l, m,
- n, o, p, q, r, s, t, u, v, w, x, y, z,
- SPC
-};
-
-enum { HEIGHT = 10 };
-enum { MAX_WIDTH = 9 };
-enum { NUMBER_WIDTH = 6 };
-
-unsigned getWidth(const char *chars);
-
-// struct Fill { void operator()(RandomAccessIterator dest, unsigned pitch) { fill pixels at dest } }
-template
-void print(RandomAccessIterator dest, unsigned pitch, Fill fill, const char *chars);
-
-void print(gambatte::uint_least32_t *dest, unsigned pitch, unsigned long color, const char *chars);
-void utoa(unsigned u, char *a);
-
-// --- INTERFACE END ---
-
-
-
-extern const unsigned char *const font[];
-
-template
-void print(RandomAccessIterator dest, const unsigned pitch, Fill fill, const char *chars) {
- while (const int character = *chars++) {
- RandomAccessIterator dst = dest;
- const unsigned char *s = font[character];
-
- const unsigned width = *s >> 4;
- unsigned h = *s++ & 0xF;
-
- while (h--) {
- RandomAccessIterator d = dst;
-
- unsigned line = *s++;
-
- if (width > 8)
- line |= *s++ << 8;
-
- while (line) {
- if (line & 1)
- fill(d, pitch);
-
- line >>= 1;
- ++d;
- }
-
- dst += pitch;
- }
-
- dest += width;
- }
-}
-}
-
-#endif
diff --git a/libgambatte/src/gambatte.cpp b/libgambatte/src/gambatte.cpp
index f54b62f33c..dcdf63b91d 100644
--- a/libgambatte/src/gambatte.cpp
+++ b/libgambatte/src/gambatte.cpp
@@ -24,27 +24,19 @@
#include
#include
-static const std::string itos(const int i) {
- std::stringstream ss;
- ss << i;
- return ss.str();
-}
-
namespace gambatte {
struct GB::Priv {
CPU cpu;
bool gbaCgbMode;
- gambatte::uint_least32_t *vbuff;
+ uint_least32_t vbuff[160*144];
- Priv() : gbaCgbMode(false), vbuff(0)
+ Priv() : gbaCgbMode(false)
{
- vbuff = new gambatte::uint_least32_t[160*144];
}
~Priv()
{
- delete[] vbuff;
}
};
diff --git a/output/dll/libgambatte.dll b/output/dll/libgambatte.dll
index 7dc868720e..e3a57dc706 100644
Binary files a/output/dll/libgambatte.dll and b/output/dll/libgambatte.dll differ