mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-02-24 15:12:23 +01:00
byuu says: Changelog: - added higan/emulator/platform.hpp (moved out Emulator::Platform from emulator/interface.hpp) - moved gmake build paramter to nall/GNUmakefile; both higan and icarus use it now - added build=profile mode - MD: added the region select I/O register - MD: started to add region selection support internally (still no external select or PAL support) - PCE: added cycle stealing when reading/writing to the VDC or VCE; and when using ST# instructions - PCE: cleaned up PSG to match the behavior of Mednafen (doesn't improve sound at all ;_;) - note: need to remove loadWaveSample, loadWavePeriod - HuC6280: ADC/SBC decimal mode consumes an extra cycle; does not set V flag - HuC6280: block transfer instructions were taking one cycle too many - icarus: added code to strip out PC Engine ROM headers - hiro: added options support to BrowserDialog The last one sure ended in failure. The plan was to put a region dropdown directly onto hiro::BrowserDialog, and I had all the code for it working. But I forgot one important detail: the system loads cartridges AFTER powering on, so even though I could technically change the system region post-boot, I'd rather not do so. So that means we have to know what region we want before we even select a game. Shit.
42 lines
1.0 KiB
C++
42 lines
1.0 KiB
C++
#pragma once
|
|
|
|
//license: GPLv3
|
|
//started: 2011-09-05
|
|
|
|
#include <emulator/emulator.hpp>
|
|
#include <emulator/thread.hpp>
|
|
#include <emulator/scheduler.hpp>
|
|
#include <emulator/cheat.hpp>
|
|
|
|
#include <processor/r6502/r6502.hpp>
|
|
|
|
namespace Famicom {
|
|
#define platform Emulator::platform
|
|
namespace File = Emulator::File;
|
|
using Scheduler = Emulator::Scheduler;
|
|
using Cheat = Emulator::Cheat;
|
|
extern Scheduler scheduler;
|
|
extern Cheat cheat;
|
|
|
|
struct Thread : Emulator::Thread {
|
|
auto create(auto (*entrypoint)() -> void, double frequency) -> void {
|
|
Emulator::Thread::create(entrypoint, frequency);
|
|
scheduler.append(*this);
|
|
}
|
|
|
|
inline auto synchronize(Thread& thread) -> void {
|
|
if(clock() >= thread.clock()) scheduler.resume(thread);
|
|
}
|
|
};
|
|
|
|
#include <fc/controller/controller.hpp>
|
|
#include <fc/system/system.hpp>
|
|
#include <fc/memory/memory.hpp>
|
|
#include <fc/cartridge/cartridge.hpp>
|
|
#include <fc/cpu/cpu.hpp>
|
|
#include <fc/apu/apu.hpp>
|
|
#include <fc/ppu/ppu.hpp>
|
|
}
|
|
|
|
#include <fc/interface/interface.hpp>
|