OpenCores
URL https://opencores.org/ocsvn/diogenes/diogenes/trunk

Subversion Repositories diogenes

[/] [diogenes/] [trunk/] [video/] [dump2tga.c] - Blame information for rev 236

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 158 fellnhofer
#include <stdio.h>
2
 
3
 
4
 
5
unsigned char header[0x2A] = {
6
  0x00,0x01,0x01,0x00,0x00,0x08,0x00,0x18,
7
  0x00,0x00,0x00,0x00,0x80,0x02,0xE0,0x01,
8
  0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
9
  0x00,0xFF,0x00,0x00,0xFF,0xFF,0xC2,0x79,
10
  0x02,0xC2,0x5D,0xFC,0xFF,0xE8,0xA3,0xFF,
11
  0xFF,0xFF};
12
 
13
 
14
FILE *vram_dump = 0;
15
FILE *tgaout = 0;
16
 
17
 
18
unsigned char pcolor(int x, int y) {
19
   int addr;
20
 
21
   fseek(vram_dump, (x>>4) + ((y<<2) & 0xfffc0 ) , SEEK_SET);
22
 
23
   addr = fgetc(vram_dump);
24
   addr &= 0x37; // brauchma ned ?   
25
 
26
   addr = ((addr & 0x30) << 5) + ((y & 0x0e) << 5) + (1<<5) + ((addr & 0x07) << 2) + ((x&0xC) >> 2);
27
 
28
   fseek(vram_dump, addr , SEEK_SET);
29
 
30
   addr = fgetc(vram_dump);
31
 
32
 
33
 
34
   if(x & 0x02)
35
     return (addr & 0x0f);
36
   else
37
     return (addr & 0xf0) >> 4;
38
}
39
 
40
 
41
 
42
int main(int argc, char **argv) {
43
  int i; int x; int y;
44
 
45
  if(argc != 3)
46
    printf("usage: dump2tga [inputfile] [outputfile]\n");
47
 
48
 
49
  vram_dump = fopen(argv[1], "r");
50
 
51
  if(!vram_dump) {
52
    printf("input file");
53
    exit(1);
54
  }
55
 
56
  tgaout = fopen(argv[2], "w+");
57
 
58
  if(!tgaout)
59
    printf("output file");
60
    exit(1);
61
  }
62
 
63
  for(i = 0; i < 0x2A; i++) {
64
    fputc(header[i],tgaout);
65
  }
66
 
67
  for(y = 479; y >= 0; y --)
68
    for(x = 0; x < 640; x++)
69
      fputc(pcolor(x,y), tgaout);
70
 
71
  close(vram_dump);
72
  close(tgaout);
73
 
74
  return 0;
75
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.