trunk/src/mame/drivers/tmnt.c
| r31101 | r31102 | |
| 1961 | 1961 | /* 051960 interfaces */ |
| 1962 | 1962 | static const k051960_interface cuebrick_k051960_intf = |
| 1963 | 1963 | { |
| 1964 | | "gfx2", 1, |
| 1964 | "gfx2", 0, |
| 1965 | 1965 | REVERSE_PLANE_ORDER, |
| 1966 | 1966 | KONAMI_ROM_DEINTERLEAVE_NONE, |
| 1967 | 1967 | mia_sprite_callback |
| r31101 | r31102 | |
| 1969 | 1969 | |
| 1970 | 1970 | static const k051960_interface mia_k051960_intf = |
| 1971 | 1971 | { |
| 1972 | | "gfx2", 1, |
| 1972 | "gfx2", 0, |
| 1973 | 1973 | REVERSE_PLANE_ORDER, |
| 1974 | 1974 | KONAMI_ROM_DEINTERLEAVE_NONE, |
| 1975 | 1975 | mia_sprite_callback |
| r31101 | r31102 | |
| 1977 | 1977 | |
| 1978 | 1978 | static const k051960_interface tmnt_k051960_intf = |
| 1979 | 1979 | { |
| 1980 | | "gfx2", 1, |
| 1980 | "gfx2", 0, |
| 1981 | 1981 | REVERSE_PLANE_ORDER, |
| 1982 | 1982 | KONAMI_ROM_DEINTERLEAVE_2, |
| 1983 | 1983 | tmnt_sprite_callback |
| r31101 | r31102 | |
| 1985 | 1985 | |
| 1986 | 1986 | static const k051960_interface punkshot_k051960_intf = |
| 1987 | 1987 | { |
| 1988 | | "gfx2", 1, |
| 1988 | "gfx2", 0, |
| 1989 | 1989 | NORMAL_PLANE_ORDER, |
| 1990 | 1990 | KONAMI_ROM_DEINTERLEAVE_2, |
| 1991 | 1991 | punkshot_sprite_callback |
| r31101 | r31102 | |
| 1993 | 1993 | |
| 1994 | 1994 | static const k051960_interface thndrx2_k051960_intf = |
| 1995 | 1995 | { |
| 1996 | | "gfx2", 1, |
| 1996 | "gfx2", 0, |
| 1997 | 1997 | NORMAL_PLANE_ORDER, |
| 1998 | 1998 | KONAMI_ROM_DEINTERLEAVE_2, |
| 1999 | 1999 | thndrx2_sprite_callback |
| r31101 | r31102 | |
| 2909 | 2909 | ROM_LOAD( "963e20.g13", 0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) ) |
| 2910 | 2910 | |
| 2911 | 2911 | ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ |
| 2912 | | ROM_LOAD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 2913 | | ROM_LOAD( "963a29.k27", 0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 2912 | ROM_LOAD32_WORD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 2913 | ROM_LOAD32_WORD( "963a29.k27", 0x000002, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 2914 | 2914 | |
| 2915 | 2915 | ROM_REGION( 0x200000, "gfx2", 0 ) /* graphics (addressable by the main CPU) */ |
| 2916 | 2916 | ROM_LOAD( "963a17.h4", 0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) ) /* sprites */ |
| r31101 | r31102 | |
| 2943 | 2943 | ROM_LOAD( "963e20.g13", 0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) ) |
| 2944 | 2944 | |
| 2945 | 2945 | ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ |
| 2946 | | ROM_LOAD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 2947 | | ROM_LOAD( "963a29.k27", 0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 2946 | ROM_LOAD32_WORD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 2947 | ROM_LOAD32_WORD( "963a29.k27", 0x000002, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 2948 | 2948 | |
| 2949 | 2949 | ROM_REGION( 0x200000, "gfx2", 0 ) /* graphics (addressable by the main CPU) */ |
| 2950 | 2950 | ROM_LOAD( "963a17.h4", 0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) ) /* sprites */ |
| r31101 | r31102 | |
| 3011 | 3011 | ROM_LOAD( "963e20.g13", 0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) ) |
| 3012 | 3012 | |
| 3013 | 3013 | ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ |
| 3014 | | ROM_LOAD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 3015 | | ROM_LOAD( "963a29.k27", 0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 3014 | ROM_LOAD32_WORD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 3015 | ROM_LOAD32_WORD( "963a29.k27", 0x000002, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 3016 | 3016 | |
| 3017 | 3017 | ROM_REGION( 0x200000, "gfx2", 0 ) /* graphics (addressable by the main CPU) */ |
| 3018 | 3018 | ROM_LOAD( "963a17.h4", 0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) ) /* sprites */ |
| r31101 | r31102 | |
| 3045 | 3045 | ROM_LOAD( "963e20.g13", 0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) ) |
| 3046 | 3046 | |
| 3047 | 3047 | ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ |
| 3048 | | ROM_LOAD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 3049 | | ROM_LOAD( "963a29.k27", 0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 3048 | ROM_LOAD32_WORD( "963a28.h27", 0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) ) |
| 3049 | ROM_LOAD32_WORD( "963a29.k27", 0x000002, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) ) |
| 3050 | 3050 | |
| 3051 | 3051 | ROM_REGION( 0x200000, "gfx2", 0 ) /* graphics (addressable by the main CPU) */ |
| 3052 | 3052 | ROM_LOAD( "963a17.h4", 0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) ) /* sprites */ |
| r31101 | r31102 | |
| 3334 | 3334 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 3335 | 3335 | ROM_LOAD( "061f01.4e", 0x0000, 0x8000, CRC(ab9a2a57) SHA1(c92738b4d3754c2378cd1e6ae786faa0c5a65808) ) |
| 3336 | 3336 | |
| 3337 | // the tile and sprite ROMs are actually 16-bit ROMs on a 32-bit bus, but the data lines are |
| 3338 | // swapped so that D0-D7 and D16-D23 come from one ROM and D8-D15 and D24-D31 from the other |
| 3337 | 3339 | ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ |
| 3338 | 3340 | ROM_LOAD16_BYTE( "061d14.12l", 0x000000, 0x080000, CRC(b9440924) SHA1(d12763f1c999cfa4f2d6f685a73c8c20204f9cbb) ) |
| 3339 | 3341 | ROM_LOAD16_BYTE( "061d13.12k", 0x000001, 0x080000, CRC(9f999f0b) SHA1(f83e3e9e44d7d5ba4c72f72db1ab9f98a0e80fe2) ) |
| r31101 | r31102 | |
| 3364 | 3366 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 3365 | 3367 | ROM_LOAD( "061f01.4e", 0x0000, 0x8000, CRC(ab9a2a57) SHA1(c92738b4d3754c2378cd1e6ae786faa0c5a65808) ) |
| 3366 | 3368 | |
| 3369 | // the tile and sprite ROMs are actually 16-bit ROMs on a 32-bit bus, but the data lines are |
| 3370 | // swapped so that D0-D7 and D16-D23 come from one ROM and D8-D15 and D24-D31 from the other |
| 3367 | 3371 | ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ |
| 3368 | 3372 | ROM_LOAD16_BYTE( "061d14.12l", 0x000000, 0x080000, CRC(b9440924) SHA1(d12763f1c999cfa4f2d6f685a73c8c20204f9cbb) ) |
| 3369 | 3373 | ROM_LOAD16_BYTE( "061d13.12k", 0x000001, 0x080000, CRC(9f999f0b) SHA1(f83e3e9e44d7d5ba4c72f72db1ab9f98a0e80fe2) ) |
| r31101 | r31102 | |
| 3950 | 3954 | ROM_LOAD( "101c05.5e", 0x00000, 0x20000, CRC(02c3679f) SHA1(e6d878185e73baca24ac98891c647856be9353c4) ) // 1.bin |
| 3951 | 3955 | ROM_RELOAD( 0x10000, 0x20000 ) |
| 3952 | 3956 | |
| 3957 | // the tile and sprite ROMs are actually 16-bit ROMs on a 32-bit bus, but the data lines are |
| 3958 | // swapped so that D0-D7 and D16-D23 come from one ROM and D8-D15 and D24-D31 from the other |
| 3953 | 3959 | ROM_REGION( 0x080000, "k052109", 0 ) /* tiles */ |
| 3954 | 3960 | ROM_LOAD16_BYTE( "101a12.12l", 0x000000, 0x040000, CRC(33530d7f) SHA1(87859ad058fb79e357101675706373f83a3f23d4) ) |
| 3955 | 3961 | ROM_LOAD16_BYTE( "101a11.12k", 0x000001, 0x040000, CRC(7f773271) SHA1(0c6a62c6eb1897e88e893576f751e3d4fc788036) ) |
| r31101 | r31102 | |
| 3981 | 3987 | ROM_LOAD( "101c05.5e", 0x00000, 0x20000, CRC(02c3679f) SHA1(e6d878185e73baca24ac98891c647856be9353c4) ) |
| 3982 | 3988 | ROM_RELOAD( 0x10000, 0x20000 ) |
| 3983 | 3989 | |
| 3990 | // the tile and sprite ROMs are actually 16-bit ROMs on a 32-bit bus, but the data lines are |
| 3991 | // swapped so that D0-D7 and D16-D23 come from one ROM and D8-D15 and D24-D31 from the other |
| 3984 | 3992 | ROM_REGION( 0x080000, "k052109", 0 ) /* tiles */ |
| 3985 | 3993 | ROM_LOAD16_BYTE( "101a12.12l", 0x000000, 0x040000, CRC(33530d7f) SHA1(87859ad058fb79e357101675706373f83a3f23d4) ) |
| 3986 | 3994 | ROM_LOAD16_BYTE( "101a11.12k", 0x000001, 0x040000, CRC(7f773271) SHA1(0c6a62c6eb1897e88e893576f751e3d4fc788036) ) |
| r31101 | r31102 | |
| 4004 | 4012 | ROM_END |
| 4005 | 4013 | |
| 4006 | 4014 | |
| 4007 | | DRIVER_INIT_MEMBER(tmnt_state, mia) |
| 4015 | // MIA and TMNT have their graphics data (both tiles and sprites) stored in the ROMs in |
| 4016 | // the packed pixel format used by older Konami hardware such as Twin16. The data lines |
| 4017 | // from the ROMs to the custom chips are swapped so that the chips receive the data in |
| 4018 | // the planar format they expect. |
| 4019 | |
| 4020 | static void chunky_to_planar(memory_region *rgn) |
| 4008 | 4021 | { |
| 4009 | | UINT8 *gfxdata; |
| 4010 | | int len; |
| 4011 | | int i, j, k, A, B; |
| 4012 | | int bits[32]; |
| 4022 | UINT32 *ROM = reinterpret_cast<UINT32 *>(rgn->base()); |
| 4023 | int len = rgn->bytes() / 4; |
| 4013 | 4024 | |
| 4014 | | /* |
| 4015 | | MIA needs the bits to be shuffled around because the |
| 4016 | | ROMs are connected differently to the 051962 custom IC. |
| 4017 | | */ |
| 4018 | | gfxdata = memregion("k052109")->base(); |
| 4019 | | len = memregion("k052109")->bytes(); |
| 4020 | | for (i = 0; i < len; i += 4) |
| 4025 | for (int i = 0; i < len; i++) |
| 4021 | 4026 | { |
| 4022 | | for (j = 0; j < 4; j++) |
| 4023 | | for (k = 0; k < 8; k++) |
| 4024 | | bits[8 * j + k] = (gfxdata[i + j] >> k) & 1; |
| 4025 | | |
| 4026 | | for (j = 0; j < 4; j++) |
| 4027 | | { |
| 4028 | | gfxdata[i + j] = 0; |
| 4029 | | for (k = 0; k < 8; k++) |
| 4030 | | gfxdata[i + j] |= bits[j + 4 * k] << k; |
| 4031 | | } |
| 4027 | UINT32 data = LITTLE_ENDIANIZE_INT32(ROM[i]); |
| 4028 | data = BITSWAP32(data,31,27,23,19,15,11,7,3,30,26,22,18,14,10,6,2,29,25,21,17,13,9,5,1,28,24,20,16,12,8,4,0); |
| 4029 | ROM[i] = LITTLE_ENDIANIZE_INT32(data); |
| 4032 | 4030 | } |
| 4031 | } |
| 4033 | 4032 | |
| 4034 | | /* |
| 4035 | | MIA needs the bits to be shuffled around because the |
| 4036 | | ROMs are connected differently to the 051937 custom IC. |
| 4037 | | */ |
| 4038 | | gfxdata = memregion("gfx2")->base(); |
| 4039 | | len = memregion("gfx2")->bytes(); |
| 4040 | | for (i = 0; i < len; i += 4) |
| 4041 | | { |
| 4042 | | for (j = 0; j < 4; j++) |
| 4043 | | for (k = 0; k < 8; k++) |
| 4044 | | bits[8 * j + k] = (gfxdata[i + j] >> k) & 1; |
| 4045 | 4033 | |
| 4046 | | for (j = 0; j < 4; j++) |
| 4047 | | { |
| 4048 | | gfxdata[i + j] = 0; |
| 4049 | | for (k = 0; k < 8; k++) |
| 4050 | | gfxdata[i + j] |= bits[j + 4 * k] << k; |
| 4051 | | } |
| 4052 | | } |
| 4034 | DRIVER_INIT_MEMBER(tmnt_state, mia) |
| 4035 | { |
| 4036 | chunky_to_planar(memregion("k052109")); |
| 4037 | chunky_to_planar(memregion("gfx2")); |
| 4053 | 4038 | |
| 4054 | | dynamic_buffer temp(len); |
| 4055 | | memcpy(temp, gfxdata, len); |
| 4056 | | for (A = 0; A < len / 4; A++) |
| 4039 | // unscramble the sprite ROM address lines |
| 4040 | UINT32 *gfxdata = reinterpret_cast<UINT32 *>(memregion("gfx2")->base()); |
| 4041 | int len = memregion("gfx2")->bytes() / 4; |
| 4042 | dynamic_array<UINT32> temp(len); |
| 4043 | memcpy(temp, gfxdata, len * 4); |
| 4044 | for (int A = 0; A < len; A++) |
| 4057 | 4045 | { |
| 4058 | | /* the bits to scramble are the low 8 ones */ |
| 4059 | | for (i = 0; i < 8; i++) |
| 4060 | | bits[i] = (A >> i) & 0x01; |
| 4046 | // the bits to scramble are the low 8 ones |
| 4047 | int B = A & 0x3ff00; |
| 4061 | 4048 | |
| 4062 | | B = A & 0x3ff00; |
| 4063 | | |
| 4064 | 4049 | if ((A & 0x3c000) == 0x3c000) |
| 4065 | | { |
| 4066 | | B |= bits[3] << 0; |
| 4067 | | B |= bits[5] << 1; |
| 4068 | | B |= bits[0] << 2; |
| 4069 | | B |= bits[1] << 3; |
| 4070 | | B |= bits[2] << 4; |
| 4071 | | B |= bits[4] << 5; |
| 4072 | | B |= bits[6] << 6; |
| 4073 | | B |= bits[7] << 7; |
| 4074 | | } |
| 4050 | B |= BITSWAP8(A,7,6,4,2,1,0,5,3); |
| 4075 | 4051 | else |
| 4076 | | { |
| 4077 | | B |= bits[3] << 0; |
| 4078 | | B |= bits[5] << 1; |
| 4079 | | B |= bits[7] << 2; |
| 4080 | | B |= bits[0] << 3; |
| 4081 | | B |= bits[1] << 4; |
| 4082 | | B |= bits[2] << 5; |
| 4083 | | B |= bits[4] << 6; |
| 4084 | | B |= bits[6] << 7; |
| 4085 | | } |
| 4052 | B |= BITSWAP8(A,6,4,2,1,0,7,5,3); |
| 4086 | 4053 | |
| 4087 | | gfxdata[4 * A + 0] = temp[4 * B + 0]; |
| 4088 | | gfxdata[4 * A + 1] = temp[4 * B + 1]; |
| 4089 | | gfxdata[4 * A + 2] = temp[4 * B + 2]; |
| 4090 | | gfxdata[4 * A + 3] = temp[4 * B + 3]; |
| 4054 | gfxdata[A] = temp[B]; |
| 4091 | 4055 | } |
| 4092 | 4056 | } |
| 4093 | 4057 | |
| 4094 | 4058 | |
| 4095 | 4059 | DRIVER_INIT_MEMBER(tmnt_state, tmnt) |
| 4096 | 4060 | { |
| 4097 | | UINT8 *gfxdata; |
| 4098 | | const UINT8 *code_conv_table; |
| 4099 | | int len; |
| 4100 | | int i, j, k, A, B, entry; |
| 4101 | | int bits[32]; |
| 4061 | chunky_to_planar(memregion("k052109")); |
| 4062 | chunky_to_planar(memregion("gfx2")); |
| 4102 | 4063 | |
| 4103 | | /* |
| 4104 | | TMNT needs the bits to be shuffled around because the |
| 4105 | | ROMs are connected differently to the 051962 custom IC. |
| 4106 | | */ |
| 4107 | | gfxdata = memregion("k052109")->base(); |
| 4108 | | len = memregion("k052109")->bytes(); |
| 4109 | | for (i = 0; i < len; i += 4) |
| 4110 | | { |
| 4111 | | for (j = 0; j < 4; j++) |
| 4112 | | for (k = 0; k < 8; k++) |
| 4113 | | bits[8 * j + k] = (gfxdata[i + j] >> k) & 1; |
| 4064 | // unscramble the sprite ROM address lines |
| 4065 | const UINT8 *code_conv_table = memregion("proms")->base(); |
| 4066 | UINT32 *gfxdata = reinterpret_cast<UINT32 *>(memregion("gfx2")->base()); |
| 4067 | int len = memregion("gfx2")->bytes() / 4; |
| 4068 | dynamic_array<UINT32> temp(len); |
| 4069 | memcpy(temp, gfxdata, len * 4); |
| 4114 | 4070 | |
| 4115 | | for (j = 0; j < 4; j++) |
| 4116 | | { |
| 4117 | | gfxdata[i + j] = 0; |
| 4118 | | for (k = 0; k < 8; k++) |
| 4119 | | gfxdata[i + j] |= bits[j + 4 * k] << k; |
| 4120 | | } |
| 4121 | | } |
| 4122 | | |
| 4123 | | /* |
| 4124 | | TMNT needs the bits to be shuffled around because the |
| 4125 | | ROMs are connected differently to the 051937 custom IC. |
| 4126 | | */ |
| 4127 | | gfxdata = memregion("gfx2")->base(); |
| 4128 | | len = memregion("gfx2")->bytes(); |
| 4129 | | for (i = 0; i < len; i += 4) |
| 4071 | for (int A = 0; A < len; A++) |
| 4130 | 4072 | { |
| 4131 | | for (j = 0; j < 4; j++) |
| 4132 | | for (k = 0; k < 8; k++) |
| 4133 | | bits[8 * j + k] = (gfxdata[i + j] >> k) & 1; |
| 4134 | | |
| 4135 | | for (j = 0; j < 4; j++) |
| 4136 | | { |
| 4137 | | gfxdata[i + j] = 0; |
| 4138 | | for (k = 0; k < 8; k++) |
| 4139 | | gfxdata[i + j] |= bits[j + 4 * k] << k; |
| 4140 | | } |
| 4141 | | } |
| 4142 | | |
| 4143 | | dynamic_buffer temp(len); |
| 4144 | | memcpy(temp, gfxdata, len); |
| 4145 | | code_conv_table = &memregion("proms")->base()[0x0000]; |
| 4146 | | for (A = 0; A < len / 4; A++) |
| 4147 | | { |
| 4148 | 4073 | #define CA0 0 |
| 4149 | 4074 | #define CA1 1 |
| 4150 | 4075 | #define CA2 2 |
| r31101 | r31102 | |
| 4176 | 4101 | }; |
| 4177 | 4102 | |
| 4178 | 4103 | /* pick the correct entry in the PROM (top 8 bits of the address) */ |
| 4179 | | entry = code_conv_table[(A & 0x7f800) >> 11] & 7; |
| 4104 | int entry = code_conv_table[(A & 0x7f800) >> 11] & 7; |
| 4180 | 4105 | |
| 4106 | int bits[32]; |
| 4107 | |
| 4181 | 4108 | /* the bits to scramble are the low 10 ones */ |
| 4182 | | for (i = 0; i < 10; i++) |
| 4109 | for (int i = 0; i < 10; i++) |
| 4183 | 4110 | bits[i] = (A >> i) & 0x01; |
| 4184 | 4111 | |
| 4185 | | B = A & 0x7fc00; |
| 4112 | int B = A & 0x7fc00; |
| 4186 | 4113 | |
| 4187 | | for (i = 0; i < 10; i++) |
| 4114 | for (int i = 0; i < 10; i++) |
| 4188 | 4115 | B |= bits[bit_pick_table[i][entry]] << i; |
| 4189 | 4116 | |
| 4190 | | gfxdata[4 * A + 0] = temp[4 * B + 0]; |
| 4191 | | gfxdata[4 * A + 1] = temp[4 * B + 1]; |
| 4192 | | gfxdata[4 * A + 2] = temp[4 * B + 2]; |
| 4193 | | gfxdata[4 * A + 3] = temp[4 * B + 3]; |
| 4117 | gfxdata[A] = temp[B]; |
| 4194 | 4118 | } |
| 4195 | 4119 | } |
| 4196 | 4120 | |