mirror of
https://github.com/Marat-Tanalin/bsnes-mt.git
synced 2025-04-02 10:21:42 -04:00
90 lines
2 KiB
C++
90 lines
2 KiB
C++
struct Cx4 {
|
|
auto power() -> void;
|
|
|
|
auto read(uint addr, uint8 data = 0) -> uint8;
|
|
auto write(uint addr, uint8 data) -> void;
|
|
|
|
auto serialize(serializer&) -> void;
|
|
|
|
uint8 ram[0x0c00];
|
|
uint8 reg[0x0100];
|
|
uint32 r0, r1, r2, r3, r4, r5, r6, r7,
|
|
r8, r9, r10, r11, r12, r13, r14, r15;
|
|
|
|
static const uint8 immediate_data[48];
|
|
static const uint16 wave_data[40];
|
|
static const uint32 sin_table[256];
|
|
|
|
static const int16 SinTable[512];
|
|
static const int16 CosTable[512];
|
|
|
|
int16 C4WFXVal, C4WFYVal, C4WFZVal, C4WFX2Val, C4WFY2Val, C4WFDist, C4WFScale;
|
|
int16 C41FXVal, C41FYVal, C41FAngleRes, C41FDist, C41FDistVal;
|
|
|
|
void C4TransfWireFrame();
|
|
void C4TransfWireFrame2();
|
|
void C4CalcWireFrame();
|
|
void C4DrawLine(int32 X1, int32 Y1, int16 Z1, int32 X2, int32 Y2, int16 Z2, uint8 Color);
|
|
void C4DrawWireFrame();
|
|
void C4DoScaleRotate(int row_padding);
|
|
|
|
public:
|
|
uint32 ldr(uint8 r);
|
|
void str(uint8 r, uint32 data);
|
|
void mul(uint32 x, uint32 y, uint32 &rl, uint32 &rh);
|
|
uint32 sin(uint32 rx);
|
|
uint32 cos(uint32 rx);
|
|
|
|
void transfer_data();
|
|
void immediate_reg(uint32 num);
|
|
|
|
void op00_00();
|
|
void op00_03();
|
|
void op00_05();
|
|
void op00_07();
|
|
void op00_08();
|
|
void op00_0b();
|
|
void op00_0c();
|
|
|
|
void op00();
|
|
void op01();
|
|
void op05();
|
|
void op0d();
|
|
void op10();
|
|
void op13();
|
|
void op15();
|
|
void op1f();
|
|
void op22();
|
|
void op25();
|
|
void op2d();
|
|
void op40();
|
|
void op54();
|
|
void op5c();
|
|
void op5e();
|
|
void op60();
|
|
void op62();
|
|
void op64();
|
|
void op66();
|
|
void op68();
|
|
void op6a();
|
|
void op6c();
|
|
void op6e();
|
|
void op70();
|
|
void op72();
|
|
void op74();
|
|
void op76();
|
|
void op78();
|
|
void op7a();
|
|
void op7c();
|
|
void op89();
|
|
|
|
uint8 readb(uint16 addr);
|
|
uint16 readw(uint16 addr);
|
|
uint32 readl(uint16 addr);
|
|
|
|
void writeb(uint16 addr, uint8 data);
|
|
void writew(uint16 addr, uint16 data);
|
|
void writel(uint16 addr, uint32 data);
|
|
};
|
|
|
|
extern Cx4 cx4;
|