runs code in 1M wram, cell arrange, decode (untested)
[picodrive.git] / Pico / cd / Misc.c
... / ...
CommitLineData
1
2
3unsigned char formatted_bram[4*0x10] =
4{
5#if 0
6 0x00, 0xd4, 0x63, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03,
7 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x53, 0xd2, 0xf5, 0x3a, 0x48, 0x50, 0x35, 0x0f,
8 0x47, 0x14, 0xf5, 0x7e, 0x5c, 0xd4, 0xf3, 0x03, 0x00, 0x03, 0x12, 0x00, 0x0a, 0xff, 0xca, 0xa6,
9 0xf5, 0x27, 0xed, 0x22, 0x47, 0xfa, 0x22, 0x96, 0x6c, 0xa5, 0x88, 0x14, 0x48, 0x48, 0x0a, 0xbb,
10#endif
11 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x40,
12 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
13 0x53, 0x45, 0x47, 0x41, 0x5f, 0x43, 0x44, 0x5f, 0x52, 0x4f, 0x4d, 0x00, 0x01, 0x00, 0x00, 0x00,
14 0x52, 0x41, 0x4d, 0x5f, 0x43, 0x41, 0x52, 0x54, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x5f, 0x5f,
15 // SEGA_CD_ROM.....RAM_CARTRIDGE___
16};
17
18
19// offs | 2Mbit | 1Mbit |
20// 0 | [ 2M | unused |
21// 128K | bit ] | bank0 |
22// 256K | unused | bank1 |
23
24void wram_2M_to_1M(unsigned char *m)
25{
26 unsigned short *m1M_b0, *m1M_b1;
27 unsigned int i, tmp, *m2M;
28
29 m2M = (unsigned int *) (m + 0x40000);
30 m1M_b0 = (unsigned short *) m2M;
31 m1M_b1 = (unsigned short *) (m + 0x60000);
32
33 for (i = 0x40000/4; i; i--)
34 {
35 tmp = *(--m2M);
36 *(--m1M_b0) = tmp;
37 *(--m1M_b1) = tmp >> 16;
38 }
39}
40
41void wram_1M_to_2M(unsigned char *m)
42{
43 unsigned short *m1M_b0, *m1M_b1;
44 unsigned int i, tmp, *m2M;
45
46 m2M = (unsigned int *) m;
47 m1M_b0 = (unsigned short *) (m + 0x20000);
48 m1M_b1 = (unsigned short *) (m + 0x40000);
49
50 for (i = 0x40000/4; i; i--)
51 {
52 tmp = *m1M_b0++ | (*m1M_b1++ << 16);
53 *m2M++ = tmp;
54 }
55}
56