]> git.sesse.net Git - pistorm/blob - platforms/amiga/rtg/irtg_structs.h
iRTG initial implementation
[pistorm] / platforms / amiga / rtg / irtg_structs.h
1 struct P96Line {
2     int16_t     X, Y;
3     uint16_t    Length;
4     int16_t     dX, dY;
5     int16_t     sDelta, lDelta, twoSDminusLD;
6     uint16_t    LinePtrn;
7     uint16_t    PatternShift;
8     uint32_t    FgPen, BgPen;
9     uint16_t    Horizontal;
10     uint8_t     DrawMode;
11     int8_t      pad;
12     uint16_t    Xorigin, Yorigin;
13 };
14
15 struct MinNode_placeholder {
16     uint32_t _p_mln_Succ;
17     uint32_t _p_mln_Pred;
18 };
19
20 #pragma pack(2)
21 struct Node_placeholder {
22     uint32_t _p_ln_Succ;
23     uint32_t _p_ln_Pred;
24     uint8_t shit[2];
25     uint32_t _p_ln_Name;
26 };
27
28 struct MinList_placeholder {
29    uint32_t _p_mlh_Head;
30    uint32_t _p_mlh_Tail;
31    uint32_t _p_mlh_TailPred;
32 };
33
34 struct List_placeholder {
35    uint32_t _p_lh_Head;
36    uint32_t _p_lh_Tail;
37    uint32_t _p_lh_TailPred;
38    uint8_t lh_Type;
39    uint8_t l_pad;
40 };
41
42 struct SemaphoreRequest_placeholder {
43     struct MinNode_placeholder sr_Link;
44     uint32_t _p_sr_Waiter;
45 };
46
47 struct SignalSemaphore_placeholder {
48     struct Node_placeholder ss_Link;
49     int16_t ss_NestCount;
50     struct MinList_placeholder ss_WaitQueue;
51     struct SemaphoreRequest_placeholder ss_MultipleLink;
52     uint32_t _p_ss_Owner;
53     int16_t ss_QueueCount;
54 };
55
56 struct Interrupt_placeholder {
57     struct Node_placeholder is_Node;
58     uint32_t _p_is_Data;
59     uint32_t _p_is_Code;
60 };
61
62 struct MsgPort_placeholder {
63     struct Node_placeholder mp_Node;
64     uint8_t mp_Flags;
65     uint8_t mp_SigBit;
66     uint32_t _p_mp_SigTask;
67     struct List_placeholder mp_MsgList;
68 };
69
70 struct Rectangle {
71     int16_t MinX,MinY;
72     int16_t MaxX,MaxY;
73 };
74
75 struct CLUTEntry {
76     uint8_t Red;
77     uint8_t Green;
78     uint8_t Blue;
79 };
80
81 struct timeval_placeholder {
82     uint32_t tv_secs;
83     uint32_t tv_micro;
84 };
85
86 #define MAXMODES 5
87
88 struct ModeInfo_placeholder {
89     struct Node_placeholder Node;
90     int16_t OpenCount;
91     uint32_t Active;
92     uint16_t Width;
93     uint16_t Height;
94     uint8_t Depth;
95     uint8_t Flags;
96
97     uint16_t HorTotal;
98     uint16_t HorBlankSize;
99     uint16_t HorSyncStart;
100     uint16_t HorSyncSize;
101
102     uint8_t HorSyncSkew;
103     uint8_t HorEnableSkew;
104
105     uint16_t VerTotal;
106     uint16_t VerBlankSize;
107     uint16_t VerSyncStart;
108     uint16_t VerSyncSize;
109
110     union {
111         uint8_t Clock;
112         uint8_t Numerator;
113     } pll1;
114     union {
115         uint8_t ClockDivide;
116         uint8_t Denominator;
117     } pll2;
118     uint32_t PixelClock;
119 };
120
121 struct P96RenderInfo {
122         uint32_t _p_Memory;
123         int16_t BytesPerRow;
124         int16_t pad;
125         uint32_t RGBFormat;
126 };
127
128 struct P96BoardInfo{
129     uint32_t _p_RegisterBase, _p_MemoryBase, _p_MemoryIOBase;
130     uint32_t MemorySize;
131     uint32_t _p_BoardName;
132     int8_t VBIName[32];
133     uint32_t _p_CardBase;
134     uint32_t _p_ChipBase;
135     uint32_t _p_ExecBase;
136     uint32_t _p_UtilBase;
137     struct Interrupt_placeholder HardInterrupt;
138     struct Interrupt_placeholder SoftInterrupt;
139     struct SignalSemaphore_placeholder BoardLock;
140     struct MinList_placeholder ResolutionsList;
141     uint32_t BoardType;
142     uint32_t PaletteChipType;
143     uint32_t GraphicsControllerType;
144     uint16_t MoniSwitch;
145     uint16_t BitsPerCannon;
146     uint32_t Flags;
147     uint16_t SoftSpriteFlags;
148     uint16_t ChipFlags;
149     uint32_t CardFlags;
150
151     uint16_t BoardNum;
152     uint16_t RGBFormats;
153
154     uint16_t MaxHorValue[MAXMODES];
155     uint16_t MaxVerValue[MAXMODES];
156     uint16_t MaxHorResolution[MAXMODES];
157     uint16_t MaxVerResolution[MAXMODES];
158     uint32_t MaxMemorySize, MaxChunkSize;
159
160     uint32_t MemoryClock;
161
162     uint32_t PixelClockCount[MAXMODES];
163
164     uint32_t _p_AllocCardMem;
165     uint32_t _p_FreeCardMem;
166
167     uint32_t _p_SetSwitch;
168
169     uint32_t _p_SetColorArray;
170
171     uint32_t _p_SetDAC;
172     uint32_t _p_SetGC;
173     uint32_t _p_SetPanning;
174     uint32_t _p_CalculateBytesPerRow;
175     uint32_t _p_CalculateMemory;
176     uint32_t _p_GetCompatibleFormats;
177     uint32_t _p_SetDisplay;
178
179     uint32_t _p_ResolvePixelClock;
180     uint32_t _p_GetPixelClock;
181     uint32_t _p_SetClock;
182
183     uint32_t _p_SetMemoryMode;
184     uint32_t _p_SetWriteMask;
185     uint32_t _p_SetClearMask;
186     uint32_t _p_SetReadPlane;
187
188     uint32_t _p_WaitVerticalSync;
189     uint32_t _p_SetInterrupt;
190
191     uint32_t _p_WaitBlitter;
192
193     uint32_t _p_ScrollPlanar;
194     uint32_t _p_ScrollPlanarDefault;
195     uint32_t _p_UpdatePlanar;
196     uint32_t _p_UpdatePlanarDefault;
197     uint32_t _p_BlitPlanar2Chunky;
198     uint32_t _p_BlitPlanar2ChunkyDefault;
199
200     uint32_t _p_FillRect;
201     uint32_t _p_FillRectDefault;
202     uint32_t _p_InvertRect;
203     uint32_t _p_InvertRectDefault;
204     uint32_t _p_BlitRect;
205     uint32_t _p_BlitRectDefault;
206     uint32_t _p_BlitTemplate;
207     uint32_t _p_BlitTemplateDefault;
208     uint32_t _p_BlitPattern;
209     uint32_t _p_BlitPatternDefault;
210     uint32_t _p_DrawLine;
211     uint32_t _p_DrawLineDefault;
212     uint32_t _p_BlitRectNoMaskComplete;
213     uint32_t _p_BlitRectNoMaskCompleteDefault;
214     uint32_t _p_BlitPlanar2Direct;
215     uint32_t _p_BlitPlanar2DirectDefault;
216     uint32_t _p_EnableSoftSprite;
217     uint32_t _p_EnableSoftSpriteDefault;
218     uint32_t _p_AllocCardMemAbs;
219     uint32_t _p_SetSplitPosition;
220     uint32_t _p_ReInitMemory;
221     uint32_t _p_Reserved2Default;
222     uint32_t _p_Reserved3;
223     uint32_t _p_Reserved3Default;
224
225     uint32_t _p_WriteYUVRect;
226     uint32_t _p_WriteYUVRectDefault;
227
228     uint32_t _p_GetVSyncState;
229     uint32_t _p_GetVBeamPos;
230     uint32_t _p_SetDPMSLevel;
231     uint32_t _p_ResetChip;
232     uint32_t _p_GetFeatureAttrs;
233
234     uint32_t _p_AllocBitMap;
235     uint32_t _p_FreeBitMap;
236     uint32_t _p_GetBitMapAttr;
237     uint32_t _p_SetSprite;
238     uint32_t _p_SetSpritePosition;
239     uint32_t _p_SetSpriteImage;
240     uint32_t _p_SetSpriteColor;
241     uint32_t _p_CreateFeature;
242     uint32_t _p_SetFeatureAttrs;
243     uint32_t _p_DeleteFeature;
244     struct MinList_placeholder SpecialFeatures;
245
246     uint32_t _p_ModeInfo;
247     uint32_t RGBFormat;
248     int16_t XOffset;
249     int16_t YOffset;
250     uint8_t Depth;
251     uint8_t ClearMask;
252     uint16_t Border;
253     uint32_t Mask;
254     uint8_t CLUT[256 * 3];
255
256     uint32_t _p_ViewPort;
257     uint32_t _p_VisibleBitMap;
258     uint32_t _p_BitMapExtra;
259     struct MinList_placeholder BitMapList;
260     struct MinList_placeholder MemList;
261
262     int16_t MouseX;
263     int16_t MouseY;
264     uint8_t MouseWidth;
265     uint8_t MouseHeight;
266     uint8_t MouseXOffset;
267     uint8_t MouseYOffset;
268     uint32_t _p_MouseImage;
269     uint8_t MousePens[4];
270     struct Rectangle MouseRect;
271     uint32_t _p_MouseChunky;
272     uint32_t _p_MouseRendered;
273     uint32_t _p_MouseSaveBuffer;
274
275     uint32_t ChipData[16];
276     uint32_t CardData[16];
277
278     uint32_t _p_MemorySpaceBase;
279     uint32_t MemorySpaceSize;
280
281     uint32_t _p_DoubleBufferList;
282
283     struct timeval_placeholder SyncTime;
284     uint32_t SyncPeriod;
285     struct MsgPort_placeholder SoftVBlankPort;
286
287     struct MinList_placeholder WaitQ;
288     
289     int32_t EssentialFormats;
290     uint32_t _p_MouseImageBuffer;
291
292     uint32_t _p_backViewPort;
293     uint32_t _p_backBitMap;
294     uint32_t _p_backExtra;
295     int16_t YSplit;
296     uint32_t MaxPlanarMemory;
297     uint32_t MaxBMWidth;
298     uint32_t MaxBMHeight;
299 };