|
|
1.1 root 1: /*
2: * UAE - The U*nix Amiga Emulator
3: *
4: * Picasso96 Support Module Header
5: *
6: * Copyright 1997 Brian King <[email protected], [email protected]>
7: */
8:
9: #if defined PICASSO96_SUPPORTED
10:
11: #define PICASSO96
12:
13: #define JAM1 0
14: #define JAM2 1
15: #define COMP 2
16: #define INVERS 4
17:
1.1.1.4 ! root 18: typedef enum {
! 19: BLIT_FALSE,
! 20: BLIT_NOR,
! 21: BLIT_ONLYDST,
! 22: BLIT_NOTSRC,
! 23: BLIT_ONLYSRC,
! 24: BLIT_NOTDST,
! 25: BLIT_EOR,
! 26: BLIT_NAND,
! 27: BLIT_AND,
! 28: BLIT_NEOR,
! 29: BLIT_DST,
! 30: BLIT_NOTONLYSRC,
! 31: BLIT_SRC,
! 32: BLIT_NOTONLYDST,
! 33: BLIT_OR,
! 34: BLIT_TRUE,
! 35: BLIT_LAST
! 36: } BLIT_OPCODE;
! 37:
1.1 root 38: struct ScreenResolution
39: {
40: uae_u32 width; /* in pixels */
41: uae_u32 height; /* in pixels */
42: };
43:
44: #define MAX_PICASSO_MODES 64
45:
46: struct PicassoResolution
47: {
48: struct Resolutions *next;
49: struct ScreenResolution res;
50: int depth;
51: int refresh;
52: char name[25];
53: };
54: extern struct PicassoResolution DisplayModes[MAX_PICASSO_MODES];
55:
56:
57: /* Types for RGBFormat used */
58: typedef enum {
59: RGBFB_NONE, /* no valid RGB format (should not happen) */
60: RGBFB_CLUT, /* palette mode, set colors when opening screen using
61: tags or use SetRGB32/LoadRGB32(...) */
62: RGBFB_R8G8B8, /* TrueColor RGB (8 bit each) */
63: RGBFB_B8G8R8, /* TrueColor BGR (8 bit each) */
64: RGBFB_R5G6B5PC, /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
65: format: gggbbbbbrrrrrggg */
66: RGBFB_R5G5B5PC, /* HiColor15 (5 bit each), format: gggbbbbb0rrrrrgg */
67: RGBFB_A8R8G8B8, /* 4 Byte TrueColor ARGB (A unused alpha channel) */
68: RGBFB_A8B8G8R8, /* 4 Byte TrueColor ABGR (A unused alpha channel) */
69: RGBFB_R8G8B8A8, /* 4 Byte TrueColor RGBA (A unused alpha channel) */
70: RGBFB_B8G8R8A8, /* 4 Byte TrueColor BGRA (A unused alpha channel) */
71: RGBFB_R5G6B5, /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
72: format: rrrrrggggggbbbbb */
73: RGBFB_R5G5B5, /* HiColor15 (5 bit each), format: 0rrrrrgggggbbbbb */
74: RGBFB_B5G6R5PC, /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
75: format: gggrrrrrbbbbbggg */
76: RGBFB_B5G5R5PC, /* HiColor15 (5 bit each), format: gggrrrrr0bbbbbbgg */
77:
78: /* By now, the following formats are for use with a hardware window only
79: (bitmap operations may be implemented incompletely) */
80:
81: RGBFB_Y4U2V2, /* 2 Byte TrueColor YUV (CCIR recommendation CCIR601).
82: Each two-pixel unit is stored as one longword
83: containing luminance (Y) for each of the two pixels,
84: and chrominance (U,V) for alternate pixels.
85: The missing chrominance values are generated by
86: interpolation. (Y1-U0-Y0-V0) */
87: RGBFB_Y4U1V1, /* 1 Byte TrueColor ACCUPAK. Four adjacent pixels form
88: a packet of 5 bits Y (luminance) each pixel and 6 bits
89: U and V (chrominance) shared by the four pixels */
90:
91: RGBFB_MaxFormats
92: } RGBFTYPE;
93:
94: #define RGBFF_NONE (1<<RGBFB_NONE)
95: #define RGBFF_CLUT (1<<RGBFB_CLUT)
96: #define RGBFF_R8G8B8 (1<<RGBFB_R8G8B8)
97: #define RGBFF_B8G8R8 (1<<RGBFB_B8G8R8)
98: #define RGBFF_R5G6B5PC (1<<RGBFB_R5G6B5PC)
99: #define RGBFF_R5G5B5PC (1<<RGBFB_R5G5B5PC)
100: #define RGBFF_A8R8G8B8 (1<<RGBFB_A8R8G8B8)
101: #define RGBFF_A8B8G8R8 (1<<RGBFB_A8B8G8R8)
102: #define RGBFF_R8G8B8A8 (1<<RGBFB_R8G8B8A8)
103: #define RGBFF_B8G8R8A8 (1<<RGBFB_B8G8R8A8)
104: #define RGBFF_R5G6B5 (1<<RGBFB_R5G6B5)
105: #define RGBFF_R5G5B5 (1<<RGBFB_R5G5B5)
106: #define RGBFF_B5G6R5PC (1<<RGBFB_B5G6R5PC)
107: #define RGBFF_B5G5R5PC (1<<RGBFB_B5G5R5PC)
108: #define RGBFF_Y4U2V2 (1<<RGBFB_Y4U2V2)
109: #define RGBFF_Y4U1V1 (1<<RGBFB_Y4U1V1)
110:
1.1.1.2 root 111: #define RGBMASK_8BIT RGBFF_CLUT
112: #define RGBMASK_16BIT (RGBFF_R5G6B5PC | RGBFF_B5G6R5PC | RGBFF_R5G6B5)
113: #define RGBMASK_15BIT (RGBFF_R5G5B5PC | RGBFF_B5G5R5PC | RGBFF_R5G5B5)
114: #define RGBMASK_24BIT (RGBFF_R8G8B8 | RGBFF_B8G8R8)
115: #define RGBMASK_32BIT (RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8)
116:
1.1 root 117: /************************************************************************/
118:
119: #define RGBFF_PLANAR RGBFF_NONE
120: #define RGBFF_CHUNKY RGBFF_CLUT
121:
122: #define RGBFB_PLANAR RGBFB_NONE
123: #define RGBFB_CHUNKY RGBFB_CLUT
124:
125: /************************************************************************/
126:
1.1.1.2 root 127: enum {
1.1 root 128: PLANAR,
129: CHUNKY,
130: HICOLOR,
131: TRUECOLOR,
132: TRUEALPHA,
133: MAXMODES
134: };
135:
136: /************************************************************************/
137: struct MyCLUTEntry {
138: uae_u8 Red;
139: uae_u8 Green;
140: uae_u8 Blue;
141: uae_u8 Pad;
142: };
143:
144: struct ColorIndexMapping {
145: uae_u32 ColorMask;
146: uae_u32 Colors[256];
147: };
148:
149: struct CLUTEntry {
150: uae_u8 Red;
151: uae_u8 Green;
152: uae_u8 Blue;
153: };
154:
155: #define PSSO_BitMap_BytesPerRow 0
156: #define PSSO_BitMap_Rows 2
157: #define PSSO_BitMap_Flags 4
158: #define PSSO_BitMap_Depth 5
159: #define PSSO_BitMap_pad 6
160: #define PSSO_BitMap_Planes 8
161: #define PSSO_BitMap_sizeof 40
162:
163: struct BitMap
164: {
165: uae_u16 BytesPerRow;
166: uae_u16 Rows;
167: uae_u8 Flags;
168: uae_u8 Depth;
169: uae_u16 pad;
170: uae_u8 *Planes[8];
171: };
172:
173: /************************************************************************/
174:
175: #define SETTINGSNAMEMAXCHARS 30
1.1.1.2 root 176: #define BOARDNAMEMAXCHARS 30
1.1 root 177:
1.1.1.2 root 178: struct Settings {
1.1 root 179: uae_u32 BoardType;
180: /* a value discribing assignment to nth board local to boardtype
181: * to be used for reassignment when boards are added or removed. */
182: uae_u16 LocalOrdering;
183: uae_s16 LastSelected;
184: char NameField[SETTINGSNAMEMAXCHARS];
185: /* neu! */
186: char *BoardName;
187: };
188:
189: #define MAXRESOLUTIONNAMELENGTH 22
190:
191: /********************************
192: * only used within rtg.library *
193: ********************************/
194:
195: #define PSSO_LibResolution_P96ID 14
196: #define PSSO_LibResolution_Name 20
197: #define PSSO_LibResolution_DisplayID 42 /* Name + MAXRESOLUTIONNAMELENGTH */
198: #define PSSO_LibResolution_Width 46
199: #define PSSO_LibResolution_Height 48
200: #define PSSO_LibResolution_Flags 50
201: #define PSSO_LibResolution_Modes 52
202: #define PSSO_LibResolution_BoardInfo (52 + MAXMODES*4)
203: #define PSSO_LibResolution_sizeof (60 + MAXMODES*4)
204:
1.1.1.2 root 205: struct LibResolution {
1.1 root 206: char P96ID[6];
207: char Name[MAXRESOLUTIONNAMELENGTH];
208: uae_u32 DisplayID;
209: uae_u16 Width;
210: uae_u16 Height;
211: uae_u16 Flags;
212: uaecptr Modes[MAXMODES];
213: uaecptr BoardInfo;
214: };
215:
216: #define P96B_FAMILY 0 /* obsolete (Resolution is an entire family) */
217: #define P96B_PUBLIC 1 /* Resolution should be added to the public */
218: #define P96B_MONITOOL 2
219:
220: #define P96F_FAMILY (1<<P96B_FAMILY) /* obsolete */
221: #define P96F_PUBLIC (1<<P96B_PUBLIC)
222: #define P96F_MONITOOL (1<<P96B_MONITOOL)
223:
224: #define PSSO_ModeInfo_OpenCount 14
225: #define PSSO_ModeInfo_Active 16
226: #define PSSO_ModeInfo_Width 18
227: #define PSSO_ModeInfo_Height 20
228: #define PSSO_ModeInfo_Depth 22
229: #define PSSO_ModeInfo_Flags 23
230: #define PSSO_ModeInfo_HorTotal 24
231: #define PSSO_ModeInfo_HorBlankSize 26
232: #define PSSO_ModeInfo_HorSyncStart 28
233: #define PSSO_ModeInfo_HorSyncSize 30
234: #define PSSO_ModeInfo_HorSyncSkew 32
235: #define PSSO_ModeInfo_HorEnableSkew 33
236: #define PSSO_ModeInfo_VerTotal 34
237: #define PSSO_ModeInfo_VerBlankSize 36
238: #define PSSO_ModeInfo_VerSyncStart 38
239: #define PSSO_ModeInfo_VerSyncSize 40
240: #define PSSO_ModeInfo_first_union 42
241: #define PSSO_ModeInfo_second_union 43
242: #define PSSO_ModeInfo_PixelClock 44
243: #define PSSO_ModeInfo_sizeof 48
244:
245: #define PSSO_RenderInfo_Memory 0
246: #define PSSO_RenderInfo_BytesPerRow 4
247: #define PSSO_RenderInfo_pad 6
248: #define PSSO_RenderInfo_RGBFormat 8
1.1.1.3 root 249: #define PSSO_RenderInfo_sizeof 12
1.1 root 250:
251: struct RenderInfo {
252: uae_u8 *Memory;
253: uae_s16 BytesPerRow;
254: uae_s16 pad;
255: RGBFTYPE RGBFormat;
256: };
257:
258: #define PSSO_Pattern_Memory 0
259: #define PSSO_Pattern_XOffset 4
260: #define PSSO_Pattern_YOffset 6
261: #define PSSO_Pattern_FgPen 8
262: #define PSSO_Pattern_BgPen 12
263: #define PSSO_Pattern_Size 16
264: #define PSSO_Pattern_DrawMode 17
265: #define PSSO_Pattern_sizeof 18
266: struct Pattern {
267: char *Memory;
268: uae_u16 XOffset, YOffset;
269: uae_u32 FgPen, BgPen;
270: uae_u8 Size; /* Width: 16, Height: (1<<pat_Size) */
271: uae_u8 DrawMode;
272: };
273:
274: #define PSSO_Template_Memory 0
275: #define PSSO_Template_BytesPerRow 4
276: #define PSSO_Template_XOffset 6
277: #define PSSO_Template_DrawMode 7
278: #define PSSO_Template_FgPen 8
279: #define PSSO_Template_BgPen 12
280: #define PSSO_Template_sizeof 16
281:
282: struct Template {
1.1.1.2 root 283: char *Memory;
284: uae_s16 BytesPerRow;
285: uae_u8 XOffset;
286: uae_u8 DrawMode;
287: uae_u32 FgPen;
288: uae_u32 BgPen;
1.1 root 289: };
290:
291: #define PSSO_BoardInfo_MemoryBase 4
292: #define PSSO_BoardInfo_MemorySize 12
293: #define PSSO_BoardInfo_BoardName 16
294: #define PSSO_BoardInfo_VBIName 20
295: #define PSSO_BoardInfo_CardBase 52
296: #define PSSO_BoardInfo_ChipBase 56
297: #define PSSO_BoardInfo_ExecBase 60
298: #define PSSO_BoardInfo_UtilBase 64
299: #define PSSO_BoardInfo_HardInterrupt 68
300: #define PSSO_BoardInfo_SoftInterrupt 90
301: #define PSSO_BoardInfo_BoardLock 112
302: #define PSSO_BoardInfo_ResolutionsList 158
303: #define PSSO_BoardInfo_BoardType 170
304: #define PSSO_BoardInfo_PaletteChipType 174
305: #define PSSO_BoardInfo_GraphicsControllerType 178
306: #define PSSO_BoardInfo_MoniSwitch 182
307: #define PSSO_BoardInfo_BitsPerCannon 184
308: #define PSSO_BoardInfo_Flags 186
309: #define PSSO_BoardInfo_SoftSpriteFlags 190
310: #define PSSO_BoardInfo_ChipFlags 192
311: #define PSSO_BoardInfo_CardFlags 194
312: #define PSSO_BoardInfo_BoardNum 198
313: #define PSSO_BoardInfo_RGBFormats 200
314: #define PSSO_BoardInfo_MaxHorValue 202
315: #define PSSO_BoardInfo_MaxVerValue (202 + 2*MAXMODES)
316: #define PSSO_BoardInfo_MaxHorResolution (202 + 4*MAXMODES)
317: #define PSSO_BoardInfo_MaxVerResolution (202 + 6*MAXMODES)
318: #define PSSO_BoardInfo_MaxMemorySize (202 + 8*MAXMODES)
319: #define PSSO_BoardInfo_MaxChunkSize (202 + 8*MAXMODES + 4)
320: #define PSSO_BoardInfo_PixelClockArray (202 + 8*MAXMODES + 8)
321: #define PSSO_BoardInfo_PixelClockCount (202 + 8*MAXMODES + 12)
322: #define PSSO_BoardInfo_AllocCardMem (202 + 12*MAXMODES + 12)
323: #define PSSO_BoardInfo_SpecialFeatures (202 + 12*MAXMODES + 12 + 68*4)
324: #define PSSO_BoardInfo_ModeInfo (202 + 12*MAXMODES + 12 + 68*4 + 12)
325: #define PSSO_BoardInfo_CLUT (202 + 12*MAXMODES + 12 + 68*4 + 32)
326:
1.1.1.2 root 327: struct BoardInfo {
1.1 root 328: uae_u8 *RegisterBase, *MemoryBase, *MemoryIOBase;
329: uae_u32 MemorySize;
330: char *BoardName, VBIName[32];
331:
332: uae_u16 MoniSwitch;
333: uae_u16 BitsPerCannon;
334: uae_u32 Flags;
335: uae_u16 SoftSpriteFlags;
336: uae_u16 ChipFlags; /* private, chip specific, not touched by RTG */
337: uae_u32 CardFlags; /* private, card specific, not touched by RTG */
338:
339: uae_u16 BoardNum;
340: uae_s16 RGBFormats;
341:
342: uae_u16 MaxHorValue[MAXMODES];
343: uae_u16 MaxVerValue[MAXMODES];
344: uae_u16 MaxHorResolution[MAXMODES];
345: uae_u16 MaxVerResolution[MAXMODES];
346: uae_u32 MaxMemorySize, MaxChunkSize;
347: };
348:
349: /* BoardInfo flags */
350: /* 0-15: hardware flags */
351: /* 16-31: user flags */
352: #define BIB_HARDWARESPRITE 0 /* board has hardware sprite */
353: #define BIB_NOMEMORYMODEMIX 1 /* board does not support modifying planar bitmaps while displaying chunky and vice versa */
354: #define BIB_NEEDSALIGNMENT 2 /* bitmaps have to be aligned (not yet supported!) */
355: #define BIB_DBLSCANDBLSPRITEY 8 /* hardware sprite y position is doubled on doublescan display modes */
356: #define BIB_ILACEHALFSPRITEY 9 /* hardware sprite y position is halved on interlace display modes */
357: #define BIB_ILACEDBLROWOFFSET 10 /* doubled row offset in interlaced display modes needs additional horizontal bit */
358:
359: #define BIB_FLICKERFIXER 12 /* board can flicker fix Amiga RGB signal */
360: #define BIB_VIDEOCAPTURE 13 /* board can capture video data to a memory area */
361: #define BIB_VIDEOWINDOW 14 /* board can display a second mem area as a pip */
362: #define BIB_BLITTER 15 /* board has blitter */
363:
364: #define BIB_HIRESSPRITE 16 /* mouse sprite has double resolution */
365: #define BIB_BIGSPRITE 17 /* user wants big mouse sprite */
366: #define BIB_BORDEROVERRIDE 18 /* user wants to override system overscan border prefs */
367: #define BIB_BORDERBLANK 19 /* user wants border blanking */
368: #define BIB_INDISPLAYCHAIN 20 /* board switches Amiga signal */
369: #define BIB_QUIET 21 /* not yet implemented */
370: #define BIB_NOMASKBLITS 22 /* perform blits without taking care of mask */
371: #define BIB_NOC2PBLITS 23 /* use CPU for planar to chunky conversions */
372: #define BIB_NOBLITTER 24 /* disable all blitter functions */
373:
374: #define BIB_IGNOREMASK BIB_NOMASKBLITS
375:
376: #define BIF_HARDWARESPRITE (1<<BIB_HARDWARESPRITE)
377: #define BIF_NOMEMORYMODEMIX (1<<BIB_NOMEMORYMODEMIX)
378: #define BIF_NEEDSALIGNMENT (1<<BIB_NEEDSALIGNMENT)
379: #define BIF_DBLSCANDBLSPRITEY (1<<BIB_DBLSCANDBLSPRITEY)
380: #define BIF_ILACEHALFSPRITEY (1<<BIB_ILACEHALFSPRITEY)
381: #define BIF_ILACEDBLROWOFFSET (1<<BIB_ILACEDBLROWOFFSET)
382: #define BIF_FLICKERFIXER (1<<BIB_FLICKERFIXER)
383: #define BIF_VIDEOCAPTURE (1<<BIB_VIDEOCAPTURE)
384: #define BIF_VIDEOWINDOW (1<<BIB_VIDEOWINDOW)
385: #define BIF_BLITTER (1<<BIB_BLITTER)
386: #define BIF_HIRESSPRITE (1<<BIB_HIRESSPRITE)
387: #define BIF_BIGSPRITE (1<<BIB_BIGSPRITE)
388: #define BIF_BORDEROVERRIDE (1<<BIB_BORDEROVERRIDE)
389: #define BIF_BORDERBLANK (1<<BIB_BORDERBLANK)
390: #define BIF_INDISPLAYCHAIN (1<<BIB_INDISPLAYCHAIN)
391: #define BIF_QUIET (1<<BIB_QUIET)
392: #define BIF_NOMASKBLITS (1<<BIB_NOMASKBLITS)
393: #define BIF_NOC2PBLITS (1<<BIB_NOC2PBLITS)
394: #define BIF_NOBLITTER (1<<BIB_NOBLITTER)
395:
396: #define BIF_IGNOREMASK BIF_NOMASKBLITS
397:
398: /************************************************************************/
399: struct picasso96_state_struct
400: {
401: uae_u32 RGBFormat; /* true-colour, CLUT, hi-colour, etc. */
402: struct MyCLUTEntry CLUT[256]; /* Duh! */
403: uaecptr Address; /* Active screen address (Amiga-side) */
404: uaecptr Extent; /* End address of screen (Amiga-side) */
405: uae_u16 Width; /* Active display width (From SetGC) */
406: uae_u16 VirtualWidth;/* Total screen width (From SetPanning) */
407: uae_u16 BytesPerRow; /* Total screen width in bytes (From SetGC) */
408: uae_u16 Height; /* Active display height (From SetGC) */
409: uae_u16 VirtualHeight; /* Total screen height */
410: uae_u8 GC_Depth; /* From SetGC() */
411: uae_u8 GC_Flags; /* From SetGC() */
412: long XOffset; /* From SetPanning() */
413: long YOffset; /* From SetPanning() */
414: uae_u8 SwitchState; /* From SetSwitch() - 0 is Amiga, 1 is Picasso */
415: uae_u8 BytesPerPixel;
416: uae_u8 CardFound;
417: };
418:
419: extern void InitPicasso96 (void);
420:
421: extern uae_u32 picasso_SetDisplay (void);
422: extern uae_u32 picasso_WaitVerticalSync (void);
423: extern uae_u32 picasso_CalculateBytesPerRow (void);
424: extern uae_u32 picasso_FillRect (void);
425: extern uae_u32 picasso_BlitRect (void);
426: extern uae_u32 picasso_InvertRect (void);
427: extern uae_u32 picasso_SetPanning (void);
428: extern uae_u32 picasso_SetGC (void);
429: extern uae_u32 picasso_SetDAC (void);
430: extern uae_u32 picasso_SetColorArray (void);
431: extern uae_u32 picasso_SetSwitch (void);
432: extern uae_u32 picasso_SetSwitch (void);
433: extern uae_u32 picasso_FindCard (void);
434: extern uae_u32 picasso_InitCard (void);
435: extern uae_u32 picasso_BlitPlanar2Chunky (void);
436: extern uae_u32 picasso_BlitPlanar2Direct (void);
437: extern uae_u32 picasso_BlitTemplate (void);
438: extern uae_u32 picasso_BlitPattern (void);
439: extern uae_u32 picasso_BlitRectNoMaskComplete (void);
440:
441: extern uae_u32 gfxmem_mask;
442: extern uae_u8 *gfxmemory;
443:
444: extern int uaegfx_card_found;
445:
446: extern struct picasso96_state_struct picasso96_state;
447:
448: #ifdef _WIN32
449: extern unsigned int timer_id;
450: #endif
451:
1.1.1.2 root 452: extern int DX_FillRect (uaecptr mem, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height, uae_u32 Pen, uae_u8 Bpp);
453: extern void DX_BlitRect (struct RenderInfo *ri, uae_u16 srcx, uae_u16 srcy, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
454: extern void DX_BlitRectFromBuffer (struct RenderInfo *ri, uae_u8* buffer, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
455: extern void DX_InvertRect (struct RenderInfo *ri, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height);
456: extern void DX_SetPalette (int start, int count);
1.1 root 457: extern int DX_FillResolutions (uae_u16 *);
458: extern int DX_BitsPerCannon (void);
459: extern void DX_Invalidate (int first, int last);
460: extern void picasso_enablescreen (int on);
1.1.1.2 root 461: extern void picasso_refresh (void);
1.1.1.4 ! root 462: extern void picasso_handle_vsync (void);
1.1 root 463:
464: extern uae_u8 *gfxmemory;
465:
1.1.1.2 root 466: /* This structure describes the UAE-side framebuffer for the Picasso
467: * screen. */
1.1 root 468: struct picasso_vidbuf_description {
469: int width, height, depth;
470: int rowbytes, pixbytes;
471: int extra_mem; /* nonzero if there's a second buffer that must be updated */
1.1.1.2 root 472: uae_u32 rgbformat;
473: uae_u32 selected_rgbformat;
474: uae_u32 clut[256];
1.1 root 475: };
476:
477: extern struct picasso_vidbuf_description picasso_vidinfo;
478:
1.1.1.2 root 479: extern void gfx_set_picasso_modeinfo (int w, int h, int d, int rgbfmt);
1.1 root 480: extern void gfx_set_picasso_baseaddr (uaecptr);
481: extern void gfx_set_picasso_state (int on);
1.1.1.2 root 482: extern uae_u8 *gfx_lock_picasso (void);
483: extern void gfx_unlock_picasso (void);
1.1.1.4 ! root 484: extern int picasso_display_mode_index (uae_u32 x, uae_u32 y, uae_u32 d);
! 485: extern int picasso_nr_resolutions (void);
1.1 root 486:
487: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.