runs code in 1M wram, cell arrange, decode (untested)
[picodrive.git] / Pico / cd / Misc.c
CommitLineData
51a902ae 1
2
76276b0b 3unsigned char formatted_bram[4*0x10] =
51a902ae 4{
76276b0b 5#if 0
51a902ae 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,
76276b0b 10#endif
51a902ae 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,
76276b0b 15 // SEGA_CD_ROM.....RAM_CARTRIDGE___
51a902ae 16};
17
18
fa1e5e29 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