Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/wonderswan/gfx.h
2 views
1
#ifndef __WSWAN_GFX_H
2
#define __WSWAN_GFX_H
3
4
#include "system.h"
5
6
namespace MDFN_IEN_WSWAN
7
{
8
9
class GFX
10
{
11
public:
12
GFX();
13
14
// TCACHE ====================================
15
void InvalidByAddr(uint32);
16
void SetVideo(int, bool);
17
void MakeTiles();
18
void GetTile(uint32 number,uint32 line,int flipv,int fliph,int bank);
19
// TCACHE/====================================
20
void Scanline(uint32 *target);
21
void SetPixelFormat();
22
23
void Init(bool color);
24
void Reset();
25
void Write(uint32 A, uint8 V);
26
uint8 Read(uint32 A);
27
void PaletteRAMWrite(uint32 ws_offset, uint8 data);
28
29
bool ExecuteLine(uint32 *surface, bool skip);
30
31
void SetLayerEnableMask(uint32 mask);
32
void SetBWPalette(const uint32 *colors);
33
void SetColorPalette(const uint32 *colors);
34
35
private:
36
// TCACHE ====================================
37
uint8 tiles[256][256][2][8];
38
uint8 wsTCache[512*64];
39
uint8 wsTCache2[512*64];
40
uint8 wsTCacheFlipped[512*64];
41
uint8 wsTCacheFlipped2[512*64];
42
uint8 wsTCacheUpdate[512];
43
uint8 wsTCacheUpdate2[512];
44
uint8 wsTileRow[8];
45
// TCACHE/====================================
46
int wsVMode;
47
48
uint32 wsMonoPal[16][4];
49
uint32 wsColors[8];
50
uint32 wsCols[16][16];
51
52
uint32 ColorMapG[16];
53
uint32 ColorMap[16*16*16];
54
uint32 LayerEnabled;
55
56
uint8 wsLine; /*current scanline*/
57
58
uint8 SpriteTable[0x80][4];
59
uint32 SpriteCountCache;
60
uint8 DispControl;
61
uint8 BGColor;
62
uint8 LineCompare;
63
uint8 SPRBase;
64
uint8 SpriteStart, SpriteCount;
65
uint8 FGBGLoc;
66
uint8 FGx0, FGy0, FGx1, FGy1;
67
uint8 SPRx0, SPRy0, SPRx1, SPRy1;
68
69
uint8 BGXScroll, BGYScroll;
70
uint8 FGXScroll, FGYScroll;
71
uint8 LCDControl, LCDIcons;
72
73
uint8 BTimerControl;
74
uint16 HBTimerPeriod;
75
uint16 VBTimerPeriod;
76
77
uint16 HBCounter, VBCounter;
78
uint8 VideoMode;
79
80
bool wsc; // mono / color
81
82
public:
83
System *sys;
84
template<bool isReader>void SyncState(NewState *ns);
85
};
86
87
}
88
89
#endif
90
91