Changing palette container

This commit is contained in:
Selim Mustafaev 2023-09-25 17:16:25 +03:00
parent 352c1588ae
commit d3eaacbe8a
3 changed files with 21 additions and 67 deletions

View File

@ -22,7 +22,7 @@ int main() {
}); });
device.connect(std::make_shared<SdlKeyboardController>()); device.connect(std::make_shared<SdlKeyboardController>());
//device.insertCartridge("/home/selim/Downloads/dk.nes"); //device.insertCartridge("/home/selim/Downloads/dk.nes");
device.insertCartridge("/Users/selim/Documents/smb.nes"); device.insertCartridge("/Users/20910606/Documents/smb.nes");
//device.insertCartridge("C:\\Users\\selim\\Documents\\nestest.nes"); //device.insertCartridge("C:\\Users\\selim\\Documents\\nestest.nes");
auto frameStart = std::chrono::steady_clock::now(); auto frameStart = std::chrono::steady_clock::now();

View File

@ -12,73 +12,26 @@ namespace nes {
_nameTable = std::make_unique<uint8_t[]>(1024); _nameTable = std::make_unique<uint8_t[]>(1024);
_nameTable2 = std::make_unique<uint8_t[]>(1024); _nameTable2 = std::make_unique<uint8_t[]>(1024);
_paletteTable = std::make_unique<uint8_t[]>(32); _paletteTable = std::make_unique<uint8_t[]>(32);
_palette = std::make_unique<Pixel[]>(64);
_oam = std::make_unique<Oam>(this); _oam = std::make_unique<Oam>(this);
_palette[0x00] = Pixel(84, 84, 84); _palette = {
_palette[0x01] = Pixel(0, 30, 116); {84, 84, 84}, {0, 30, 116}, {8, 16, 144}, {48, 0, 136},
_palette[0x02] = Pixel(8, 16, 144); {68, 0, 100}, {92, 0, 48}, {84, 4, 0}, {60, 24, 0},
_palette[0x03] = Pixel(48, 0, 136); {32, 42, 0}, {8, 58, 0}, {0, 64, 0}, {0, 60, 0},
_palette[0x04] = Pixel(68, 0, 100); {0, 50, 60}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
_palette[0x05] = Pixel(92, 0, 48); {152, 150, 152}, {8, 76, 196}, {48, 50, 236}, {92, 30, 228},
_palette[0x06] = Pixel(84, 4, 0); {136, 20, 176}, {160, 20, 100}, {152, 34, 32}, {120, 60, 0},
_palette[0x07] = Pixel(60, 24, 0); {84, 90, 0}, {40, 114, 0}, {8, 124, 0}, {0, 118, 40},
_palette[0x08] = Pixel(32, 42, 0); {0, 102, 120}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
_palette[0x09] = Pixel(8, 58, 0); {236, 238, 236}, {76, 154, 236}, {120, 124, 236}, {176, 98, 236},
_palette[0x0A] = Pixel(0, 64, 0); {228, 84, 236}, {236, 88, 180}, {236, 106, 100}, {212, 136, 32},
_palette[0x0B] = Pixel(0, 60, 0); {160, 170, 0}, {116, 196, 0}, {76, 208, 32}, {56, 204, 108},
_palette[0x0C] = Pixel(0, 50, 60); {56, 180, 204}, {60, 60, 60}, {0, 0, 0}, {0, 0, 0},
_palette[0x0D] = Pixel(0, 0, 0); {236, 238, 236}, {168, 204, 236}, {188, 188, 236}, {212, 178, 236},
_palette[0x0E] = Pixel(0, 0, 0); {236, 174, 236}, {236, 174, 212}, {236, 180, 176}, {228, 196, 144},
_palette[0x0F] = Pixel(0, 0, 0); {204, 210, 120}, {180, 222, 120}, {168, 226, 144}, {152, 226, 180},
_palette[0x10] = Pixel(152, 150, 152); {160, 214, 228}, {160, 162, 160}, {0, 0, 0}, {0, 0, 0}
_palette[0x11] = Pixel(8, 76, 196); };
_palette[0x12] = Pixel(48, 50, 236);
_palette[0x13] = Pixel(92, 30, 228);
_palette[0x14] = Pixel(136, 20, 176);
_palette[0x15] = Pixel(160, 20, 100);
_palette[0x16] = Pixel(152, 34, 32);
_palette[0x17] = Pixel(120, 60, 0);
_palette[0x18] = Pixel(84, 90, 0);
_palette[0x19] = Pixel(40, 114, 0);
_palette[0x1A] = Pixel(8, 124, 0);
_palette[0x1B] = Pixel(0, 118, 40);
_palette[0x1C] = Pixel(0, 102, 120);
_palette[0x1D] = Pixel(0, 0, 0);
_palette[0x1E] = Pixel(0, 0, 0);
_palette[0x1F] = Pixel(0, 0, 0);
_palette[0x20] = Pixel(236, 238, 236);
_palette[0x21] = Pixel(76, 154, 236);
_palette[0x22] = Pixel(120, 124, 236);
_palette[0x23] = Pixel(176, 98, 236);
_palette[0x24] = Pixel(228, 84, 236);
_palette[0x25] = Pixel(236, 88, 180);
_palette[0x26] = Pixel(236, 106, 100);
_palette[0x27] = Pixel(212, 136, 32);
_palette[0x28] = Pixel(160, 170, 0);
_palette[0x29] = Pixel(116, 196, 0);
_palette[0x2A] = Pixel(76, 208, 32);
_palette[0x2B] = Pixel(56, 204, 108);
_palette[0x2C] = Pixel(56, 180, 204);
_palette[0x2D] = Pixel(60, 60, 60);
_palette[0x2E] = Pixel(0, 0, 0);
_palette[0x2F] = Pixel(0, 0, 0);
_palette[0x30] = Pixel(236, 238, 236);
_palette[0x31] = Pixel(168, 204, 236);
_palette[0x32] = Pixel(188, 188, 236);
_palette[0x33] = Pixel(212, 178, 236);
_palette[0x34] = Pixel(236, 174, 236);
_palette[0x35] = Pixel(236, 174, 212);
_palette[0x36] = Pixel(236, 180, 176);
_palette[0x37] = Pixel(228, 196, 144);
_palette[0x38] = Pixel(204, 210, 120);
_palette[0x39] = Pixel(180, 222, 120);
_palette[0x3A] = Pixel(168, 226, 144);
_palette[0x3B] = Pixel(152, 226, 180);
_palette[0x3C] = Pixel(160, 214, 228);
_palette[0x3D] = Pixel(160, 162, 160);
_palette[0x3E] = Pixel(0, 0, 0);
_palette[0x3F] = Pixel(0, 0, 0);
} }
bool Ppu::tick() { bool Ppu::tick() {

View File

@ -12,6 +12,7 @@
#include <cstdint> #include <cstdint>
#include <memory> #include <memory>
#include <functional> #include <functional>
#include <vector>
namespace nes { namespace nes {
@ -142,7 +143,7 @@ namespace nes {
private: private:
std::unique_ptr<uint8_t[]> _nameTable; std::unique_ptr<uint8_t[]> _nameTable;
std::unique_ptr<uint8_t[]> _nameTable2; std::unique_ptr<uint8_t[]> _nameTable2;
std::unique_ptr<Pixel[]> _palette; std::vector<Pixel> _palette;
std::unique_ptr<uint8_t[]> _paletteTable; std::unique_ptr<uint8_t[]> _paletteTable;
std::unique_ptr<Oam> _oam; std::unique_ptr<Oam> _oam;