|
|
| version 1.2, 2003/10/18 00:35:35 | version 1.3, 2003/10/25 10:19:57 |
|---|---|
| Line 6 | Line 6 |
| #include "vram.h" | #include "vram.h" |
| // エンディアン修正しる! | |
| // C版EGCのみ ROPの回数を記録する | // C版EGCのみ ROPの回数を記録する |
| // #define LOG_EGCROP | // #define LOG_EGCROP |
| enum { | |
| EGCADDR_L = 0, | |
| EGCADDR_H = 1 | |
| }; | |
| #define EGCADDR(a) (a) | |
| static EGCQUAD egc_src; | static EGCQUAD egc_src; |
| static EGCQUAD data; | static EGCQUAD data; |
| Line 794 static void gdc_ope(UINT32 ad, UINT16 va | Line 800 static void gdc_ope(UINT32 ad, UINT16 va |
| } | } |
| break; | break; |
| default: | default: |
| #if defined(BYTESEX_LITTLE) | |
| data.w[0] = value; | data.w[0] = value; |
| data.w[1] = value; | data.w[1] = value; |
| data.w[2] = value; | data.w[2] = value; |
| data.w[3] = value; | data.w[3] = value; |
| #else | |
| data._b[0][0] = (BYTE)value; | |
| data._b[0][1] = (BYTE)(value >> 8); | |
| data.w[1] = data.w[0]; | |
| data.w[2] = data.w[0]; | |
| data.w[3] = data.w[0]; | |
| #endif | |
| break; | break; |
| } | } |
| } | } |
| Line 942 UINT16 MEMCALL egc_read_w(UINT32 addr) { | Line 956 UINT16 MEMCALL egc_read_w(UINT32 addr) { |
| if (!(egc.ope & 0x2000)) { | if (!(egc.ope & 0x2000)) { |
| int pl = (egc.fgbg >> 8) & 3; | int pl = (egc.fgbg >> 8) & 3; |
| if (!(egc.ope & 0x400)) { | if (!(egc.ope & 0x400)) { |
| return(egc_src.w[pl]); | return(LOADINTELWORD(egc_src._b[pl])); |
| } | } |
| else { | else { |
| return(LOADINTELWORD(mem + ad + planead[pl])); | return(LOADINTELWORD(mem + ad + planead[pl])); |