2012-04-29 06:16:44 +00:00
|
|
|
struct SA1 : Processor::R65816, public Coprocessor {
|
Update to v074r11 release.
byuu says:
Changelog:
- debugger compiles on all three profiles
- libsnes compiles on all three platforms (no API changes to libsnes)
- memory.cpp : namespace memory removed (wram -> cpu, apuram -> smp,
vram, oam, cgram -> ppu)
- sa1.cpp : namespace memory removed (SA-1 specific functions merged
inline to SA1::bus_read,write)
- GameBoy: added serial link support with interrupts and proper 8192hz
timing, but obviously it acts as if no other GB is connected to it
- GameBoy: added STAT OAM interrupt, and better STAT d1,d0 mode values
- UI: since Qt is dead, I've renamed the config files back to bsnes.cfg
and bsnes-geometry.cfg
- SA1: IRAM was not syncing to CPU on SA-1 side
- PPU/Accuracy and PPU/Performance needed Sprite oam renamed to Sprite
sprite; so that I could add uint8 oam[544]
- makes more sense anyway, OAM = object attribute memory, obj or
sprite are better names for Sprite rendering class
- more cleanup
2011-01-24 09:03:17 +00:00
|
|
|
#include "bus/bus.hpp"
|
2010-08-09 13:28:56 +00:00
|
|
|
#include "dma/dma.hpp"
|
|
|
|
#include "memory/memory.hpp"
|
|
|
|
#include "mmio/mmio.hpp"
|
|
|
|
|
|
|
|
struct Status {
|
|
|
|
uint8 tick_counter;
|
|
|
|
|
|
|
|
bool interrupt_pending;
|
|
|
|
|
|
|
|
uint16 scanlines;
|
|
|
|
uint16 vcounter;
|
|
|
|
uint16 hcounter;
|
|
|
|
} status;
|
|
|
|
|
2015-11-14 00:52:51 +00:00
|
|
|
static auto Enter() -> void;
|
2016-02-09 11:51:12 +00:00
|
|
|
auto main() -> void;
|
2015-11-14 00:52:51 +00:00
|
|
|
auto tick() -> void;
|
2016-02-16 09:32:49 +00:00
|
|
|
auto op_irq() -> void override;
|
2010-08-09 13:28:56 +00:00
|
|
|
|
2015-11-14 00:52:51 +00:00
|
|
|
alwaysinline auto trigger_irq() -> void;
|
2016-02-16 09:32:49 +00:00
|
|
|
alwaysinline auto last_cycle() -> void override;
|
|
|
|
alwaysinline auto interrupt_pending() -> bool override;
|
2010-08-09 13:28:56 +00:00
|
|
|
|
2015-11-14 00:52:51 +00:00
|
|
|
auto init() -> void;
|
|
|
|
auto load() -> void;
|
|
|
|
auto unload() -> void;
|
|
|
|
auto power() -> void;
|
|
|
|
auto reset() -> void;
|
2010-08-09 13:28:56 +00:00
|
|
|
|
2015-11-14 00:52:51 +00:00
|
|
|
auto serialize(serializer&) -> void;
|
|
|
|
|
|
|
|
MappedRAM rom;
|
|
|
|
MappedRAM iram;
|
|
|
|
MappedRAM bwram;
|
2010-08-09 13:28:56 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
extern SA1 sa1;
|