Я уже некоторое время работаю над этим проектом эмулятора 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
Как я могу запретить этому эмулятору GBA показывать поврежденные пиксели? ⇐ C++
Программы на C++. Форум разработчиков
1720042479
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
Подробнее здесь: [url]https://stackoverflow.com/questions/78704115/how-can-i-stop-this-gba-emulator-from-showing-corrupted-pixels[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия