Как я могу запретить этому эмулятору GBA показывать поврежденные пиксели?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу запретить этому эмулятору GBA показывать поврежденные пиксели?

Сообщение Anonymous »

Я уже некоторое время работаю над этим проектом эмулятора GBA, и у меня есть окно SDL, которое нужно показать, а пиксели можно преобразовать и раскрасить, но по какой-то причине, когда я пытаюсь запустить программу, она просто показывает поврежденный экран со случайными цветными пикселями повсюду, как если бы некоторые телевизоры сломались. Это похоже на статическое телевидение, но цветное. Любая помощь или предложения? Кстати, извините за длинный код, я просто не уверен, в чем проблема. Кроме того, я пробовал это с версией Pokemon Firered, поэтому не уверен, что проблема именно в этом, но я бы очень признателен за любую помощь. Спасибо!
#include
#include
#include
#include
#include
#include
#include
#include

// Define GBA screen dimensions
const int SCREEN_WIDTH = 240;
const int SCREEN_HEIGHT = 160;
const int TILE_SIZE = 8;
const int TILE_BYTES = 32; // Each tile is 8x8 pixels, 4 bits per pixel (32 bytes)

// Debug flag
const bool DEBUG = true;

// Memory Class
class Memory {
public:
std::vector rom;
std::vector ram;
std::vector framebuffer;
std::vector palette;
uint32_t tile_base_address;

Memory() : ram(0x40000), framebuffer(SCREEN_WIDTH * SCREEN_HEIGHT, 0xFFFFFFFF), tile_base_address(0) {}

void load_rom(const std::string &rom_path) {
std::ifstream rom_file(rom_path, std::ios::binary | std::ios::ate);
if (!rom_file.is_open()) {
throw std::runtime_error("Failed to open ROM file");
}

std::streamsize rom_size = rom_file.tellg();
rom_file.seekg(0, std::ios::beg);

rom.resize(rom_size);
if (!rom_file.read(reinterpret_cast(rom.data()), rom_size)) {
throw std::runtime_error("Failed to read ROM file");
}
if (DEBUG) {
std::cout

Подробнее здесь: https://stackoverflow.com/questions/787 ... ted-pixels
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»