mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-02-24 07:02:27 +01:00
byuu says: Changelog: - emulator/interface: removed unused Region struct - gba/cpu: optimized CPU::step() as much as I could for a slight speedup¹ - gba/cpu: synchronize the APU better during FIFO updates - higan/md, icarus: add automatic region detection; make it the default option [hex\_usr] - picks NTSC-J if there's more than one match ... eventually, this will be a setting - higan/md, icarus: support all three combinations of SRAM (8-bit low, 8-bit high, 16-bit) - processor/arm7tdmi: fix bug when changing to THUMB mode via MSR [MerryMage] - tomoko: redesigned crash detector to only occur once for all three ruby drivers - this will reduce disk thrashing since the configuration file only needs to be written out one extra time - technically, it's twice ... but we should've always been writing one out on first run in case it crashes then - tomoko: defaulted back to the safest ruby drivers, given the optimal drivers have some stability concerns ¹: minor errata: spotted a typo saying `synchronize(cpu)` when the CPU is stopped, instead of `synchronize(ppu)`. This will be fixed in the v104 official 7zip archives. I'm kind of rushing here but, it's really good timing for me to push out a new official release. The blocking issues are resolved or close to it, and we need lots of testing of the new major changes. I'm going to consider this a semi-stable testing release and leave links to v103 just in case.
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
struct Cartridge {
|
|
auto pathID() const -> uint { return information.pathID; }
|
|
auto region() const -> string { return information.region; }
|
|
auto sha256() const -> string { return information.sha256; }
|
|
auto manifest() const -> string { return information.manifest; }
|
|
auto title() const -> string { return information.title; }
|
|
|
|
auto load() -> bool;
|
|
auto save() -> void;
|
|
auto unload() -> void;
|
|
auto power() -> void;
|
|
|
|
auto read(uint24 addr) -> uint16;
|
|
auto write(uint24 addr, uint16 data) -> void;
|
|
|
|
auto readIO(uint24 addr) -> uint16;
|
|
auto writeIO(uint24 addr, uint16 data) -> void;
|
|
|
|
//serialization.cpp
|
|
auto serialize(serializer&) -> void;
|
|
|
|
struct Information {
|
|
uint pathID = 0;
|
|
string region;
|
|
string sha256;
|
|
string manifest;
|
|
string title;
|
|
} information;
|
|
|
|
struct Memory {
|
|
uint16* data = nullptr;
|
|
uint size = 0;
|
|
uint mask = 0;
|
|
uint bits = 0;
|
|
};
|
|
|
|
Memory rom;
|
|
Memory ram;
|
|
|
|
uint1 ramEnable;
|
|
uint1 ramWritable;
|
|
uint6 bank[8];
|
|
};
|
|
|
|
extern Cartridge cartridge;
|