Idle skipping... maybe?

This commit is contained in:
2026-05-21 17:16:43 +02:00
parent 609fa2fb08
commit 366637aba3
7 changed files with 604 additions and 580 deletions
+24 -25
View File
@@ -4,33 +4,32 @@
#include <core/mmio/PIF.hpp>
namespace n64 {
struct SI {
SI();
void Reset();
[[nodiscard]] auto Read(u32) const -> u32;
void Write(u32, u32);
template <bool toDram>
void DMA();
void DMA();
union SIStatus {
u32 raw{};
struct {
unsigned dmaBusy : 1;
unsigned ioBusy : 1;
unsigned reserved : 1;
unsigned dmaErr : 1;
unsigned : 8;
unsigned intr : 1;
};
};
union Status {
u32 raw{};
struct {
unsigned dmaBusy : 1;
unsigned ioBusy : 1;
unsigned reserved : 1;
unsigned dmaErr : 1;
unsigned : 8;
unsigned intr : 1;
};
};
struct SI {
SI();
void Reset();
[[nodiscard]] auto Read(u32) const -> u32;
void Write(u32, u32);
template <bool toDram>
void DMA();
void DMA();
bool toDram = false;
SIStatus status{};
u32 dramAddr{};
u32 pifAddr{};
PIF pif;
bool toDram = false;
Status status{};
u32 dramAddr{};
u32 pifAddr{};
PIF pif;
};
#define SI_DMA_DELAY (65536 * 2)