Previous 199869 Revisions Next

r26844 Tuesday 31st December, 2013 at 19:14:37 UTC by David Haywood
new clones
Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg) [ANY]

also "The Time in Japan is 4:12 AM Wednesday, January 1, 2014 (JST)" so Happy New Year
[src/emu/video]epic12.c* epic12.h* epic12_blit0.c* epic12_blit1.c* epic12_blit2.c* epic12_blit3.c* epic12_blit4.c* epic12_blit5.c* epic12_blit6.c* epic12_blit7.c* epic12_blit8.c* epic12in.inc* epic12pixel.inc* video.mak
[src/mame]mame.lst mame.mak
[src/mame/drivers]cv1k.c* toaplan2.c

trunk/src/mame/drivers/cv1k.c
r0r26844
1/*
2
3U2 flash rom note
4
5Cave often programmed the u2 roms onto defective flash chips, programming around the bad blocks.
6As a result these are highly suseptible to failure, blocks around the known bad blocks appear to
7decay at an alarming rate in some cases, and in others data has clearly been programmed over
8blocks that were already going bad. - this is why the same game often has different u2 roms
9in the different sets at the moment. - these will be reconstructed at some point.
10
11The flash roms do contain a 'bad block' table, so it should be possible to rebuild a 'clean'
12flash ROM for each game by comparing multiple dumps of each game and ensuring no other data has
13decayed.  Naturally this is not an ideal situation for the less common games!
14
15----
16
17Cave CV1000 hardware
18
19Games by Cave ID number:
20
21CA011  Mushihime-Sama
22CA012  Ibara
23CA012B Ibara Kuro Black Label
24CA013  Espgaluda II
25CA014  Pink Sweets: Ibara Sorekara
26CA015  Mushihime-Sama Futari
27CA015B Mushihime-Sama Futari Black Label
28CA016  Muchi Muchi Pork!
29CA017  Deathsmiles
30CA017B Deathsmiles Black Label
31CA019  Do-Don-Pachi Dai-Fukkatsu
32CA019B Do-Don-Pachi Dai-Fukkatsu Black Label
33CA021  Akai Katana
34
35CMDL01 Medal Mahjong Moukari Bancho
36
37Note: CA018 - Deathsmiles II: Makai no Merry Christmas on unknown custom platform
38      CA020 - Do-Don-Pachi Dai-ou-jou Tamashii on PGM2 platform
39
40PCB CV1000-B / CV1000-D
41+--------------------------------------------+
42|                                            |
43|                                            |
44|                                            |
45|                 VOL                        |
46|                                            |
47+-+        +-----+ +-----+       X3          |
48  |        | U24 | | U23 |                   |
49+-+        +-----+ +-----+    +------+       |
50|                             |Yamaha|       |
51|            U25*    U26*     |YMZ770|       |
52|                             |      |       |
53|J  D5                        +------+       |
54|A  D2                                       |
55|M  D3                    +-----+ +-----+    |
56|M  D4         P2*        | U7  | | U6  |    |
57|A  D1                    +-----+ +-----+    |
58|          +-------+                         |
59|C         |P4 JTAG|                         |
60|o         +-------+       +-------+         |
61|n                         |Altera |  +--+   |
62|n          D6             |Cyclone|  |  |   |
63|e     X1      S1          |       |  |U1|   |
64|c    S3 +---------+       +-------+  |  |   |
65|t       |         |                  +--+   |
66|e       | Hitachi |                         |
67|r       |         |     S2                  |
68|        |   SH3   |   +-----------------+   |
69|        |         |   |       P3        |   |
70|        +---------+   +-----------------+   |
71+-+    X2                                    |
72  |       +--+  +--+    +---+  U27           |
73+-+       |  |  |  |    |U13|                |
74|+-+      |U2|  |U4|    +---+                |
75||P|      |  |  |  |                 __      |
76||8| U12* +--+  +--+     U10        /  \     |
77|+-+                               |C126|    |
78|     P5* P7*                       \__/     |
79+--------------------------------------------+
80
81* Denotes not populated
82
83  CPU: Hitachi 6417709S SH3 clocked at 102.4MHz (12.800MHz * 8)
84Sound: Yamaha YMZ770C-F clocked at 16.384MHz
85Other: Altera Cyclone EPIC12 FPGA
86       Altera EPM7032 (MAX 7000 Series) at U13
87
88OSC:
89 X1 12.800MHz (SH3 clock derived from this)
90 X2 32.768kHz (Used by the RTC)
91 X3 16.384MHz (Yamaha YMZ770C-F clock)
92
93Memory:
94 U6 (SDRAM)  MT46V16M16 ? 4 MBit x 16 x 4 banks, RAM (256 MBit)
95 U7 (SDRAM)  MT46V16M16 ? 4 MBit x 16 x 4 banks, RAM (256 MBit)
96 U1 (SDRAM)  MT48LC2M32 ? 512K x 32 x 4 banks, (64 MBit) for CV1000-B
97 U1 (SDRAM)  IS42S32400 - 1024K x 32 x 4 banks, (128 MBit) for CV1000-D
98
99Roms:
100      U4 (FLASH)  29LV160BB 16M-Bit CMOS 3.0V, Boot device, FPGA bit file, main program code for CV1000-B
101      U4 (FLASH)  S29JL032H 32M-Bit CMOS 3.0V, Boot device, FPGA bit file, main program code for CV1000-D
102      U2 (FLASH)  K9F1G08U0M 128M x 8 Bit / 64M x 16 Bit NAND. Graphics data.
103 U23-U24 (FLASH)  MBM 29DL321, 32M-Bit CMOS 3.0V. Sound data.
104 U25-U26 (FLASH)  MBM 29DL321, not populated
105
106Battery:
107 C126 CR2450, Powers the RTC (Real Time Clock) U10. Look at the garden clock in Ibara. NOT present on CV1000-D
108
109Dipswitches & Push Buttons:
110 S1 (DIL SWITCH) Half Pitch DIL Switch x 1, function unknown
111 S2 (DIL SWITCH) Half Pitch DIL Switch x 4, SW1=Setup, other switches unknown
112 S3 (MICRO PUSH BUTTON) Test switch, same as on the JAMMA connector
113.
114Connectors:
115 P2 (IDC CONNECTOR 20 PIN) function unknown, P2 is not always mounted
116 P4 (IDC CONNECTOR 14 PIN) JTAG connector
117 P8 (IDC CONNECTOR 10 PIN) Advanced User Debugger
118 P3 (CONNECTOR) Most likely an expansion port, P3 is not always mounted
119 P5 (CONNECTOR) D9 serial connector. Used for the mahjong Touchscreen titles.  Also mounted on early Mushihime-Sama PCB's
120 P7 (CONNECTOR) Network port pinout. Never seen mounted on any PCB.
121
122Misc:
123   U27 (SUPERVISOR) MAX 690S 3.0V Microprocessor Supervisory Circuit.
124   U10 (RTC & EEPROM) RTC 9701, Serial RTC Module with EEPROM 4 kbit (256x16 bit), controlled by Altera EPM7032 U13.
125   U12 (RS-232 TRANCEIVER) MAX 3244E RS-232 Tranceiver, only mounted when P5 is mounted.
126 D1-D6 (LED) Status LED's. D6 lights up at power on then shuts off, D2 indicates coinage.
127
128Note: * The Altera EPM7032 usually stamped / labeled with the Cave game ID number as listed above.
129      * Actual flash ROMs will vary by manufacturer but will be compatible with flash ROM listed.
130      * The CV1000-D revision PCB has double the RAM at U1, double the ROM at U4 and no battery.
131        The CV1000-D is used for Dodonpachi Daifukkatsu and later games. Commonly referred to as SH3B PCB.
132
133Information by The Sheep, rtw, Ex-Cyber, BrianT & Guru
134
135------------------------------------------------------
136
137 To enter service mode in most cases hold down 0 (Service 2) for a few seconds
138  (I believe it's the test button on the PCB)
139 Some games also use the test dipswitch as an alternative method.
140
141ToDo:
142
143Improve Blending precision?
144 - I'm not sure what precision the original HW mixes with, source data is 555 RGB with 1 bit transparency (16-bits)
145   and the real VRAM is also clearly in this format.  The Alpha values supplied however are 8bpp, and the 'Tint'
146   values use 0x20 for 'normal' (not 0x1f)
147
148Overall screen brightness / contrast (see test mode)
149 - Could convert ram back to 16-bit and use a palette lookup at the final blit.. probably easiest / quickest.
150
151Touchscreen
152 - Used for mmmbanc, needs SH3 serial support.
153
154Remaining Video issues
155 - mmpork startup screen flicker - the FOR USE IN JAPAN screen doesn't appear on the real PCB until after the graphics are fully loaded, it still displays 'please wait' until that point.
156 - is the use of the 'scroll' registers 100% correct? (related to above?)
157 - Sometimes the 'sprites' in mushisam lag by a frame vs the 'backgrounds' is this a timing problem, does the real game do it?
158
159Speedups
160 - Blitter is already tightly optimized
161 - Need SH3 recompiler?
162
163Blitter Timing
164 - Correct slowdown emulation and flags (depends on blit mode, and speed of RAM) - could do with the recompiler or alt idle skips on the busy flag wait looops
165 - End of Blit IRQ? (one game has a valid irq routine that looks like it was used for profiling, but nothing depends on it)
166
167*/
168
169#include "emu.h"
170#include "cpu/sh4/sh4.h"
171#include "cpu/sh4/sh3comn.h"
172#include "profiler.h"
173#include "machine/rtc9701.h"
174#include "sound/ymz770.h"
175#include "video/epic12.h"
176#include "machine/serflash.h"
177
178
179
180class cv1k_state : public driver_device
181{
182public:
183   cv1k_state(const machine_config &mconfig, device_type type, const char *tag)
184      : driver_device(mconfig, type, tag),
185      m_maincpu(*this, "maincpu"),
186      m_blitter(*this, "blitter"),
187      m_serflash(*this, "game"),
188      m_eeprom(*this, "eeprom"),
189      cv1k_ram(*this, "mainram") { }
190
191   required_device<legacy_cpu_device> m_maincpu;
192   required_device<epic12_device> m_blitter;
193   required_device<serflash_device> m_serflash;
194   required_device<rtc9701_device> m_eeprom;
195
196   required_shared_ptr<UINT64> cv1k_ram;
197
198   DECLARE_READ8_MEMBER(cv1k_flash_io_r);
199   DECLARE_WRITE8_MEMBER(cv1k_flash_io_w);
200   DECLARE_READ8_MEMBER(serial_rtc_eeprom_r);
201   DECLARE_WRITE8_MEMBER(serial_rtc_eeprom_w);
202   DECLARE_READ64_MEMBER(cv1k_flash_port_e_r);
203
204   INTERRUPT_GEN_MEMBER(cv1k_interrupt);
205   UINT32 screen_update_cv1k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
206   
207   DECLARE_MACHINE_RESET( cv1k );
208
209   /* game specific */
210    DECLARE_READ64_MEMBER(mushisam_speedup_r);
211    DECLARE_READ64_MEMBER(mushisama_speedup_r);
212    DECLARE_READ64_MEMBER(espgal2_speedup_r);
213    DECLARE_DRIVER_INIT(mushisam);
214    DECLARE_DRIVER_INIT(mushisama);
215    DECLARE_DRIVER_INIT(espgal2);
216};
217
218/***************************************************************************
219                                Video Hardware
220***************************************************************************/
221
222
223
224UINT32 cv1k_state::screen_update_cv1k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
225{
226   epic12_device::set_delay_scale(m_blitter, screen.machine().root_device().ioport(":BLITRATE")->read());
227
228   m_blitter->draw_screen(bitmap,cliprect);
229   return 0;
230}
231
232
233// FLASH interface
234
235READ64_MEMBER( cv1k_state::cv1k_flash_port_e_r )
236{
237   return   ((m_serflash->flash_ready_r(space, offset) ? 0x20 : 0x00)) | 0xdf;
238}
239
240
241READ8_MEMBER( cv1k_state::cv1k_flash_io_r )
242{
243   switch (offset)
244   {
245      default:
246      case 0x01:
247      case 0x02:
248      case 0x03:
249      case 0x04:
250      case 0x05:
251      case 0x06:
252      case 0x07:
253
254      //  logerror("cv1k_flash_io_r offset %04x\n", offset);
255         return 0xff;
256
257      case 0x00:
258         return m_serflash->flash_io_r(space,offset);
259   }
260}
261
262WRITE8_MEMBER( cv1k_state::cv1k_flash_io_w )
263{
264   switch (offset)
265   {
266      default:
267      case 0x03:
268         logerror("unknown cv1k_flash_io_w offset %04x data %02x\n", offset, data); // 03 enable/disable fgpa access?
269         break;
270
271      case 0x00:
272         m_serflash->flash_data_w(space, offset, data);
273         break;
274
275      case 0x01:
276         m_serflash->flash_cmd_w(space, offset, data);
277         break;
278
279      case 0x2:
280         m_serflash->flash_addr_w(space, offset, data);
281         break;
282   }
283}
284
285
286
287// ibarablk uses the rtc to render the clock in the first attract demo
288// if this code returns bad values it has gfx corruption.  the ibarablka set doesn't do this?!
289READ8_MEMBER( cv1k_state::serial_rtc_eeprom_r )
290{
291   switch (offset)
292   {
293      case 1:
294         return 0xfe | m_eeprom->read_bit();
295
296      default:
297         return 0;
298   }
299}
300
301WRITE8_MEMBER( cv1k_state::serial_rtc_eeprom_w )
302{
303   switch (offset)
304   {
305      case 0x01:
306         space.machine().root_device().ioport("EEPROMOUT")->write(data, 0xff);
307         break;
308      case 0x03:
309         m_serflash->flash_enab_w(space,offset,data);
310         return;
311      default:
312         logerror("unknown serial_rtc_eeprom_w access offset %02x data %02x\n",offset, data);
313      break;
314   }
315}
316
317
318static ADDRESS_MAP_START( cv1k_map, AS_PROGRAM, 64, cv1k_state )
319   AM_RANGE(0x00000000, 0x003fffff) AM_ROM AM_REGION("maincpu", 0) AM_WRITENOP // mmmbanc writes here on startup for some reason..
320   AM_RANGE(0x0c000000, 0x0c7fffff) AM_RAM AM_SHARE("mainram") AM_MIRROR(0x800000) // work RAM
321   AM_RANGE(0x10000000, 0x10000007) AM_READWRITE8(cv1k_flash_io_r, cv1k_flash_io_w, U64(0xffffffffffffffff))
322   AM_RANGE(0x10400000, 0x10400007) AM_DEVWRITE8("ymz770", ymz770_device, write, U64(0xffffffffffffffff))
323   AM_RANGE(0x10C00000, 0x10C00007) AM_READWRITE8(serial_rtc_eeprom_r, serial_rtc_eeprom_w, U64(0xffffffffffffffff))
324//   AM_RANGE(0x18000000, 0x18000057) // blitter, installed on reset
325   AM_RANGE(0xf0000000, 0xf0ffffff) AM_RAM // mem mapped cache (sh3 internal?)
326ADDRESS_MAP_END
327
328static ADDRESS_MAP_START( cv1k_d_map, AS_PROGRAM, 64, cv1k_state )
329   AM_RANGE(0x00000000, 0x003fffff) AM_ROM AM_REGION("maincpu", 0) AM_WRITENOP // mmmbanc writes here on startup for some reason..
330   AM_RANGE(0x0c000000, 0x0cffffff) AM_RAM AM_SHARE("mainram") // work RAM
331   AM_RANGE(0x10000000, 0x10000007) AM_READWRITE8(cv1k_flash_io_r, cv1k_flash_io_w, U64(0xffffffffffffffff))
332   AM_RANGE(0x10400000, 0x10400007) AM_DEVWRITE8("ymz770", ymz770_device, write, U64(0xffffffffffffffff))
333   AM_RANGE(0x10C00000, 0x10C00007) AM_READWRITE8(serial_rtc_eeprom_r, serial_rtc_eeprom_w, U64(0xffffffffffffffff))
334//   AM_RANGE(0x18000000, 0x18000057) // blitter, installed on reset
335   AM_RANGE(0xf0000000, 0xf0ffffff) AM_RAM // mem mapped cache (sh3 internal?)
336ADDRESS_MAP_END
337
338static ADDRESS_MAP_START( cv1k_port, AS_IO, 64, cv1k_state )
339   AM_RANGE(SH3_PORT_C, SH3_PORT_C+7) AM_READ_PORT("PORT_C")
340   AM_RANGE(SH3_PORT_D, SH3_PORT_D+7) AM_READ_PORT("PORT_D")
341   AM_RANGE(SH3_PORT_E, SH3_PORT_E+7) AM_READ( cv1k_flash_port_e_r )
342   AM_RANGE(SH3_PORT_F, SH3_PORT_F+7) AM_READ_PORT("PORT_F")
343   AM_RANGE(SH3_PORT_L, SH3_PORT_L+7) AM_READ_PORT("PORT_L")
344   AM_RANGE(SH3_PORT_J, SH3_PORT_J+7) AM_DEVREADWRITE( "blitter", epic12_device, epic12_device_fpga_r, epic12_device_fpga_w )
345ADDRESS_MAP_END
346
347
348static INPUT_PORTS_START( cv1k )
349   PORT_START("DSW")      // 18000050.l (18000050.b + 3 i.e. MSB + 3, is shown as DIPSW)
350//  PORT_BIT(        0xfcfffffc, IP_ACTIVE_LOW, IPT_UNKNOWN )
351   PORT_DIPNAME(    0x00000002, 0x00000000, DEF_STR( Unknown ) )
352   PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) )
353   PORT_DIPSETTING( 0x00000002, DEF_STR( On ) )
354   PORT_SERVICE(    0x00000001, IP_ACTIVE_HIGH )
355
356   PORT_START("PORT_C")
357   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )   // Service coin
358   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )   // Test button copied here
359   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1  )   // IMPLEMENT COIN ERROR!
360   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2  )
361   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
362   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
363   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
364
365   PORT_START("PORT_D")
366   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_PLAYER(1)
367   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_PLAYER(1)
368   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_PLAYER(1)
369   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
370   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1        ) PORT_PLAYER(1)
371   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2        ) PORT_PLAYER(1)
372   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3        ) PORT_PLAYER(1)
373   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4        ) PORT_PLAYER(1)
374
375   PORT_START("PORT_F")
376   PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_SERVICE2 )   // Test Push Button
377   PORT_BIT( 0xfd, IP_ACTIVE_LOW,  IPT_UNKNOWN )
378
379   PORT_START("PORT_L")   // 4000134.b, 4000136.b
380   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_PLAYER(2)
381   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_PLAYER(2)
382   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_PLAYER(2)
383   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
384   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1        ) PORT_PLAYER(2)
385   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2        ) PORT_PLAYER(2)
386   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3        ) PORT_PLAYER(2)
387   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4        ) PORT_PLAYER(2)
388
389   PORT_START( "EEPROMOUT" )
390   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", rtc9701_device, write_bit)
391   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", rtc9701_device, set_clock_line)
392   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", rtc9701_device, set_cs_line)
393
394   PORT_START("BLITCFG") // the Blitter Delay code isn't threadsafe, DO NOT turn on by default
395   PORT_CONFNAME( 0x0001,  0x0000, "Use (unsafe) Blitter Delay (requires reset)" )
396   PORT_CONFSETTING(       0x0000, DEF_STR( No ) )
397   PORT_CONFSETTING(       0x0001, DEF_STR( Yes ) )
398
399   PORT_START("BLITRATE")
400   PORT_ADJUSTER(50, "Blitter Delay")
401INPUT_PORTS_END
402
403
404
405#define CAVE_CPU_CLOCK 12800000 * 8
406#define CAVE_CPU_CLOCK_D 166666666
407
408
409// none of this is verified
410// (the sh3 is different to the sh4 anyway, should be changed)
411static const struct sh4_config sh4cpu_config = {
412   0, // md2 (clock divders)
413   0, // md1 (clock divders)
414   0, // md0 (clock divders)
415   0,
416   0,
417   0,
418   1,
419   1, // md7 (master?)
420   0,
421   CAVE_CPU_CLOCK // influences music sequencing in ddpdfk at least
422};
423
424
425
426INTERRUPT_GEN_MEMBER(cv1k_state::cv1k_interrupt)
427{
428   m_maincpu->set_input_line(2, HOLD_LINE);
429}
430
431MACHINE_RESET_MEMBER( cv1k_state, cv1k )
432{
433   epic12_device::set_rambase (m_blitter, reinterpret_cast<UINT16 *>(cv1k_ram.target()));
434   epic12_device::set_cpu_device (m_blitter, m_maincpu );
435   epic12_device::set_is_unsafe(m_blitter, machine().root_device().ioport(":BLITCFG")->read());
436   m_blitter->install_handlers( 0x18000000, 0x18000057 );
437   m_blitter->reset();
438}
439
440static MACHINE_CONFIG_START( cv1k, cv1k_state )
441   /* basic machine hardware */
442   MCFG_CPU_ADD("maincpu", SH3BE, CAVE_CPU_CLOCK)
443   MCFG_CPU_CONFIG(sh4cpu_config)
444   MCFG_CPU_PROGRAM_MAP(cv1k_map)
445   MCFG_CPU_IO_MAP(cv1k_port)
446   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cv1k_state, cv1k_interrupt)
447
448   MCFG_RTC9701_ADD("eeprom")
449   MCFG_SERFLASH_ADD("game")
450
451   /* video hardware */
452   MCFG_SCREEN_ADD("screen", RASTER)
453   MCFG_SCREEN_REFRESH_RATE(60)
454   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
455   MCFG_SCREEN_SIZE(0x200, 0x200)
456   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1)
457
458   MCFG_PALETTE_LENGTH(0x10000)
459
460   MCFG_SCREEN_UPDATE_DRIVER(cv1k_state, screen_update_cv1k)
461
462   MCFG_MACHINE_RESET_OVERRIDE(cv1k_state, cv1k)
463
464   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
465    MCFG_YMZ770_ADD("ymz770", 16384000)
466   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
467   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
468
469   MCFG_EPIC12_ADD("blitter")
470   MCFG_EPIC12_SET_MAINRAMSIZE(0x800000)
471MACHINE_CONFIG_END
472
473static MACHINE_CONFIG_DERIVED( cv1k_d, cv1k )
474   MCFG_DEVICE_REMOVE("maincpu")
475
476   MCFG_CPU_ADD("maincpu", SH3BE, CAVE_CPU_CLOCK)
477   MCFG_CPU_CONFIG(sh4cpu_config)
478   MCFG_CPU_PROGRAM_MAP(cv1k_d_map)
479   MCFG_CPU_IO_MAP(cv1k_port)
480   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cv1k_state, cv1k_interrupt)
481
482   MCFG_DEVICE_MODIFY("blitter")
483   MCFG_EPIC12_SET_MAINRAMSIZE(0x1000000)
484MACHINE_CONFIG_END
485
486/* unused code, alt idct32 functions from metallic */
487#if 0 // variable free version
488
489#define fast_sincos__sin_15pi_div_64_ ( 0.6715589548)
490#define   fast_sincos__cos_15pi_div_64_ ( 0.7409511254)
491#define fast_sincos__cos_13pi_div_64_ ( 0.8032075315)
492#define   fast_sincos__sin_13pi_div_64_ ( 0.5956993045)
493#define fast_sincos__cos_11pi_div_64_ ( 0.8577286100)
494#define   fast_sincos__sin_11pi_div_64_ ( 0.5141027442)
495#define fast_sincos__cos_9pi_div_64_  ( 0.9039892931)
496#define   fast_sincos__sin_9pi_div_64_  ( 0.4275550934)
497#define fast_sincos__cos_7pi_div_64_  ( 0.9415440652)
498#define   fast_sincos__sin_7pi_div_64_  ( 0.3368898534)
499#define fast_sincos__sin_5pi_div_64_  ( 0.2429801799)
500#define   fast_sincos__cos_5pi_div_64_  ( 0.9700312532)
501#define fast_sincos__cos_3pi_div_64_  ( 0.9891765100)
502#define   fast_sincos__sin_3pi_div_64_  ( 0.1467304745)
503#define fast_sincos__cos_pi_div_64_   ( 0.9987954562)
504#define   fast_sincos__sin_pi_div_64_   ( 0.0490676743)
505#define fast_sincos__sin_7pi_div_32_  ( 0.6343932842)
506#define   fast_sincos__cos_7pi_div_32_  ( 0.7730104534)
507#define fast_sincos__sin_5pi_div_32_  ( 0.4713967368)
508#define   fast_sincos__cos_5pi_div_32_  ( 0.8819212643)
509#define fast_sincos__sin_3pi_div_32_  ( 0.2902846773)
510#define   fast_sincos__cos_3pi_div_32_  ( 0.9569403357)
511#define fast_sincos__sin_pi_div_32_   ( 0.0980171403)
512#define   fast_sincos__cos_pi_div_32_   ( 0.9951847267)
513#define fast_sincos__cos_3pi_div_16_  ( 0.8314696123)
514#define   fast_sincos__sin_3pi_div_16_  ( 0.5555702330)
515#define fast_sincos__sin_pi_div_16_   ( 0.1950903220)
516#define   fast_sincos__cos_pi_div_16_   ( 0.9807852804)
517#define fast_sincos__sin_pi_div_8_    ( 0.3826834324)
518#define   fast_sincos__cos_pi_div_8_    ( 0.9238795325)
519#define fast_sincos__sin_pi_div_4_    ( 0.7071067812)
520
521
522#define SPLIT( var2, base, diff) \
523   var2 = base - diff; \
524
525void mpeg_audio::idct32(const double *src, double *dst)
526{
527   dst[7] = (((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) * fast_sincos__cos_pi_div_8_ + ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_))) * fast_sincos__sin_pi_div_8_) + (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) * fast_sincos__sin_pi_div_8_ - ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_))) * fast_sincos__cos_pi_div_8_);
528   dst[9] = (((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) * fast_sincos__cos_pi_div_8_ + ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_))) * fast_sincos__sin_pi_div_8_) - (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) * fast_sincos__sin_pi_div_8_ - ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_))) * fast_sincos__cos_pi_div_8_);
529   dst[23] = (((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) * fast_sincos__sin_pi_div_8_ - ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_))) * fast_sincos__cos_pi_div_8_) + (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) * fast_sincos__cos_pi_div_8_ + ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_))) * fast_sincos__sin_pi_div_8_);
530   dst[25] = (((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) * fast_sincos__sin_pi_div_8_ - ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_))) * fast_sincos__cos_pi_div_8_) - (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) * fast_sincos__cos_pi_div_8_ + ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) - (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_))) * fast_sincos__sin_pi_div_8_);
531   dst[15] = ((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) - ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) + (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_))))*fast_sincos__sin_pi_div_4_) + ((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) - ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) + (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_))))*fast_sincos__sin_pi_div_4_);
532   dst[17] = ((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) - ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) + (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_))))*fast_sincos__sin_pi_div_4_) - ((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) - ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) + (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_))))*fast_sincos__sin_pi_div_4_);
533   dst[31] = ((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_))) + ((((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) + (((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)));;
534   dst[1] = ((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) + ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) + ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_))) + ((((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) + ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) + (((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) + ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)));
535
536   dst[11] = (((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) + ((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_)) + (((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) - ((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_));
537   dst[13] = (((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) + ((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_)) - (((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) - ((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_));
538   dst[19] = (((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) - ((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_)) + (((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) + ((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_));
539   dst[21] = (((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) - ((((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_)) - (((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) + ((((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) - ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_));
540   dst[27] = (((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_) + ((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__cos_pi_div_16_)) + (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) + ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_));
541   dst[29] = (((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_) + ((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__cos_pi_div_16_)) - (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__sin_pi_div_16_) + ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_));
542   dst[3] = (((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_) + ((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__sin_pi_div_16_)) + (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) + ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_));
543   dst[5] = (((((src[2] - src[29]) * fast_sincos__cos_5pi_div_64_ + (src[13] - src[18]) * fast_sincos__sin_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__sin_11pi_div_64_ + (src[5] - src[26]) * fast_sincos__cos_11pi_div_64_)) * fast_sincos__sin_3pi_div_16_ + (((src[14] - src[17]) * fast_sincos__sin_3pi_div_64_ + (src[1] - src[30]) * fast_sincos__cos_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__cos_13pi_div_64_ + (src[9] - src[22]) * fast_sincos__sin_13pi_div_64_)) * fast_sincos__cos_3pi_div_16_) + ((((src[0] - src[31]) * fast_sincos__cos_pi_div_64_ + (src[15] - src[16]) * fast_sincos__sin_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__sin_15pi_div_64_ + (src[7] - src[24]) * fast_sincos__cos_15pi_div_64_)) * fast_sincos__cos_pi_div_16_ + (((src[12] - src[19]) * fast_sincos__sin_7pi_div_64_ + (src[3] - src[28]) * fast_sincos__cos_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__cos_9pi_div_64_ + (src[11] - src[20]) * fast_sincos__sin_9pi_div_64_)) * fast_sincos__sin_pi_div_16_)) - (((((src[0] - src[31]) * fast_sincos__sin_pi_div_64_ - (src[15] - src[16]) * fast_sincos__cos_pi_div_64_) - ((src[8] - src[23]) * fast_sincos__cos_15pi_div_64_ - (src[7] - src[24]) * fast_sincos__sin_15pi_div_64_)) * fast_sincos__sin_pi_div_16_ - (((src[12] - src[19]) * fast_sincos__cos_7pi_div_64_ - (src[3] - src[28]) * fast_sincos__sin_7pi_div_64_) - ((src[4] - src[27]) * fast_sincos__sin_9pi_div_64_ - (src[11] - src[20]) * fast_sincos__cos_9pi_div_64_)) * fast_sincos__cos_pi_div_16_) + ((((src[2] - src[29]) * fast_sincos__sin_5pi_div_64_ - (src[13] - src[18]) * fast_sincos__cos_5pi_div_64_) - ((src[10] - src[21]) * fast_sincos__cos_11pi_div_64_ - (src[5] - src[26]) * fast_sincos__sin_11pi_div_64_)) * fast_sincos__cos_3pi_div_16_ - (((src[14] - src[17]) * fast_sincos__cos_3pi_div_64_ - (src[1] - src[30]) * fast_sincos__sin_3pi_div_64_) - ((src[6] - src[25]) * fast_sincos__sin_13pi_div_64_ - (src[9] - src[22]) * fast_sincos__cos_13pi_div_64_)) * fast_sincos__sin_3pi_div_16_));
544
545   dst[0] = ((((src[0] + src[31]) + (src[15] + src[16])) + ((src[7] + src[24]) + (src[8] + src[23]))) + (((src[3] + src[28]) + (src[12] + src[19])) + ((src[4] + src[27]) + (src[11] + src[20])))) + ((((src[1] + src[30]) + (src[14] + src[17])) + ((src[6] + src[25]) + (src[9] + src[22]))) + (((src[2] + src[29]) + (src[13] + src[18])) + ((src[5] + src[26]) + (src[10] + src[21]))));
546   dst[16]   = (((((src[0] + src[31]) + (src[15] + src[16])) + ((src[7] + src[24]) + (src[8] + src[23]))) + (((src[3] + src[28]) + (src[12] + src[19])) + ((src[4] + src[27]) + (src[11] + src[20])))) - ((((src[1] + src[30]) + (src[14] + src[17])) + ((src[6] + src[25]) + (src[9] + src[22]))) + (((src[2] + src[29]) + (src[13] + src[18])) + ((src[5] + src[26]) + (src[10] + src[21])))))*fast_sincos__sin_pi_div_4_;
547   dst[8] = ((((src[0] + src[31]) + (src[15] + src[16])) + ((src[7] + src[24]) + (src[8] + src[23]))) - (((src[3] + src[28]) + (src[12] + src[19])) + ((src[4] + src[27]) + (src[11] + src[20])))) * fast_sincos__cos_pi_div_8_ + ((((src[1] + src[30]) + (src[14] + src[17])) + ((src[6] + src[25]) + (src[9] + src[22]))) - (((src[2] + src[29]) + (src[13] + src[18])) + ((src[5] + src[26]) + (src[10] + src[21])))) * fast_sincos__sin_pi_div_8_;
548   dst[24] = ((((src[0] + src[31]) + (src[15] + src[16])) + ((src[7] + src[24]) + (src[8] + src[23]))) - (((src[3] + src[28]) + (src[12] + src[19])) + ((src[4] + src[27]) + (src[11] + src[20])))) * fast_sincos__sin_pi_div_8_ - ((((src[1] + src[30]) + (src[14] + src[17])) + ((src[6] + src[25]) + (src[9] + src[22]))) - (((src[2] + src[29]) + (src[13] + src[18])) + ((src[5] + src[26]) + (src[10] + src[21])))) * fast_sincos__cos_pi_div_8_;
549   dst[12] = ((((((src[0] + src[31]) + (src[15] + src[16])) - ((src[7] + src[24]) + (src[8] + src[23]))) * fast_sincos__cos_pi_div_16_ + (((src[3] + src[28]) + (src[12] + src[19])) - ((src[4] + src[27]) + (src[11] + src[20]))) * fast_sincos__sin_pi_div_16_) - ((((src[2] + src[29]) + (src[13] + src[18])) - ((src[5] + src[26]) + (src[10] + src[21]))) * fast_sincos__sin_3pi_div_16_ + (((src[1] + src[30]) + (src[14] + src[17])) - ((src[6] + src[25]) + (src[9] + src[22]))) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) + ((((((src[0] + src[31]) + (src[15] + src[16])) - ((src[7] + src[24]) + (src[8] + src[23]))) * fast_sincos__sin_pi_div_16_ - (((src[3] + src[28]) + (src[12] + src[19])) - ((src[4] + src[27]) + (src[11] + src[20]))) * fast_sincos__cos_pi_div_16_) - ((((src[2] + src[29]) + (src[13] + src[18])) - ((src[5] + src[26]) + (src[10] + src[21]))) * fast_sincos__cos_3pi_div_16_ - (((src[1] + src[30]) + (src[14] + src[17])) - ((src[6] + src[25]) + (src[9] + src[22]))) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_);
550   dst[20] = ((((((src[0] + src[31]) + (src[15] + src[16])) - ((src[7] + src[24]) + (src[8] + src[23]))) * fast_sincos__cos_pi_div_16_ + (((src[3] + src[28]) + (src[12] + src[19])) - ((src[4] + src[27]) + (src[11] + src[20]))) * fast_sincos__sin_pi_div_16_) - ((((src[2] + src[29]) + (src[13] + src[18])) - ((src[5] + src[26]) + (src[10] + src[21]))) * fast_sincos__sin_3pi_div_16_ + (((src[1] + src[30]) + (src[14] + src[17])) - ((src[6] + src[25]) + (src[9] + src[22]))) * fast_sincos__cos_3pi_div_16_))*fast_sincos__sin_pi_div_4_) - ((((((src[0] + src[31]) + (src[15] + src[16])) - ((src[7] + src[24]) + (src[8] + src[23]))) * fast_sincos__sin_pi_div_16_ - (((src[3] + src[28]) + (src[12] + src[19])) - ((src[4] + src[27]) + (src[11] + src[20]))) * fast_sincos__cos_pi_div_16_) - ((((src[2] + src[29]) + (src[13] + src[18])) - ((src[5] + src[26]) + (src[10] + src[21]))) * fast_sincos__cos_3pi_div_16_ - (((src[1] + src[30]) + (src[14] + src[17])) - ((src[6] + src[25]) + (src[9] + src[22]))) * fast_sincos__sin_3pi_div_16_))*fast_sincos__sin_pi_div_4_);
551   dst[4] = ((((src[0] + src[31]) + (src[15] + src[16])) - ((src[7] + src[24]) + (src[8] + src[23]))) * fast_sincos__cos_pi_div_16_ + (((src[3] + src[28]) + (src[12] + src[19])) - ((src[4] + src[27]) + (src[11] + src[20]))) * fast_sincos__sin_pi_div_16_) + ((((src[2] + src[29]) + (src[13] + src[18])) - ((src[5] + src[26]) + (src[10] + src[21]))) * fast_sincos__sin_3pi_div_16_ + (((src[1] + src[30]) + (src[14] + src[17])) - ((src[6] + src[25]) + (src[9] + src[22]))) * fast_sincos__cos_3pi_div_16_);
552   dst[28] = ((((src[0] + src[31]) + (src[15] + src[16])) - ((src[7] + src[24]) + (src[8] + src[23]))) * fast_sincos__sin_pi_div_16_ - (((src[3] + src[28]) + (src[12] + src[19])) - ((src[4] + src[27]) + (src[11] + src[20]))) * fast_sincos__cos_pi_div_16_) + ((((src[2] + src[29]) + (src[13] + src[18])) - ((src[5] + src[26]) + (src[10] + src[21]))) * fast_sincos__cos_3pi_div_16_ - (((src[1] + src[30]) + (src[14] + src[17])) - ((src[6] + src[25]) + (src[9] + src[22]))) * fast_sincos__sin_3pi_div_16_);
553
554   dst[6] = (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) * fast_sincos__cos_pi_div_8_ + ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_)) * fast_sincos__sin_pi_div_8_) + (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) * fast_sincos__sin_pi_div_8_ - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_)) * fast_sincos__cos_pi_div_8_);
555   dst[10] = (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) * fast_sincos__cos_pi_div_8_ + ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_)) * fast_sincos__sin_pi_div_8_) - (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) * fast_sincos__sin_pi_div_8_ - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_)) * fast_sincos__cos_pi_div_8_);
556   dst[22] = (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) * fast_sincos__sin_pi_div_8_ - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_)) * fast_sincos__cos_pi_div_8_) + (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) * fast_sincos__cos_pi_div_8_ + ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_)) * fast_sincos__sin_pi_div_8_);
557   dst[26] = (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) * fast_sincos__sin_pi_div_8_ - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_)) * fast_sincos__cos_pi_div_8_) - (((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) - (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) * fast_sincos__cos_pi_div_8_ + ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) - (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_)) * fast_sincos__sin_pi_div_8_);
558   dst[30] = ((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) + (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) + ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) + (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_));
559   dst[2] = ((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) + (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) + ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) + (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_));
560   dst[14] =  ((((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) + (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) + (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_)))*fast_sincos__sin_pi_div_4_) + ((((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) + (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) + (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_)))*fast_sincos__sin_pi_div_4_);
561   dst[18] =  ((((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__cos_pi_div_32_ + ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__sin_pi_div_32_) + (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__sin_7pi_div_32_ + ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__cos_7pi_div_32_)) - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__sin_3pi_div_32_ + ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__cos_3pi_div_32_) + (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__cos_5pi_div_32_ + ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__sin_5pi_div_32_)))*fast_sincos__sin_pi_div_4_) - ((((((src[0] + src[31]) - (src[15] + src[16])) * fast_sincos__sin_pi_div_32_ - ((src[7] + src[24]) - (src[8] + src[23])) * fast_sincos__cos_pi_div_32_) + (((src[4] + src[27]) - (src[11] + src[20])) * fast_sincos__cos_7pi_div_32_ - ((src[3] + src[28]) - (src[12] + src[19])) * fast_sincos__sin_7pi_div_32_)) - ((((src[6] + src[25]) - (src[9] + src[22])) * fast_sincos__cos_3pi_div_32_ - ((src[1] + src[30]) - (src[14] + src[17])) * fast_sincos__sin_3pi_div_32_) + (((src[2] + src[29]) - (src[13] + src[18])) * fast_sincos__sin_5pi_div_32_ - ((src[5] + src[26]) - (src[10] + src[21])) * fast_sincos__cos_5pi_div_32_)))*fast_sincos__sin_pi_div_4_);
562}
563#endif
564
565#if 0 // optimized for compiler version
566const double fast_sincos[] = {
567   0.6715589548 /*sin15pi/64*/   , 0.7409511254, /*cos*/
568   0.8032075315 /*cos13pi/64*/   , 0.5956993045, /*sin*/
569   0.8577286100 /*cos11pi/64*/   , 0.5141027442, /*sin*/
570   0.9039892931 /*cos9pi/64*/   , 0.4275550934, /*sin*/
571   0.9415440652 /*cos7pi/64*/   , 0.3368898534, /*sin*/
572   0.2429801799 /*sin5pi/64*/   , 0.9700312532, /*cos*/
573   0.9891765100 /*cos3pi/64*/   , 0.1467304745, /*sin*/
574   0.9987954562 /*cospi/64*/   , 0.0490676743, /*sin*/
575   0.6343932842 /*sin7pi/32*/   , 0.7730104534, /*cos*/
576   0.4713967368 /*sin5pi/32*/   , 0.8819212643, /*cos*/
577   0.2902846773 /*sin3pi/32*/   , 0.9569403357, /*cos*/
578   0.0980171403 /*sinpi/32*/   , 0.9951847267, /*cos*/
579   0.8314696123 /*cos3pi/16*/   , 0.5555702330, /*sin*/
580   0.1950903220 /*sinpi/16*/   , 0.9807852804, /*cos*/
581   0.3826834324 /*sinpi/8*/   , 0.9238795325, /*cos*/
582   0.7071067812 /*sinpi/4*/,
583};
584const UINT32 _sin_15pi_div_64 = 0,  _cos_15pi_div_64 = 1;
585const UINT32 _cos_13pi_div_64 = 2,  _sin_13pi_div_64 = 3;
586const UINT32 _cos_11pi_div_64 = 4,  _sin_11pi_div_64 = 5;
587const UINT32 _cos_9pi_div_64  = 6,  _sin_9pi_div_64  = 7;
588const UINT32 _cos_7pi_div_64  = 8,  _sin_7pi_div_64  = 9;
589const UINT32 _sin_5pi_div_64  = 10, _cos_5pi_div_64  = 11;
590const UINT32 _cos_3pi_div_64  = 12, _sin_3pi_div_64  = 13;
591const UINT32 _cos_pi_div_64   = 14, _sin_pi_div_64   = 15;
592const UINT32 _sin_7pi_div_32  = 16, _cos_7pi_div_32  = 17;
593const UINT32 _sin_5pi_div_32  = 18, _cos_5pi_div_32  = 19;
594const UINT32 _sin_3pi_div_32  = 20, _cos_3pi_div_32  = 21;
595const UINT32 _sin_pi_div_32   = 22, _cos_pi_div_32   = 23;
596const UINT32 _cos_3pi_div_16  = 24, _sin_3pi_div_16  = 25;
597const UINT32 _sin_pi_div_16   = 26, _cos_pi_div_16   = 27;
598const UINT32 _sin_pi_div_8    = 28, _cos_pi_div_8    = 29;
599const UINT32 _sin_pi_div_4    = 30;
600
601
602#define SPLIT( var1, var2, base, diff) \
603   var1 = base + diff; \
604   var2 = base - diff; \
605
606// from MetalliC
607void mpeg_audio::idct32(const double *src, double *dst)
608{
609   double l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15;
610   double r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15;
611
612   // input
613   SPLIT( l0, r0, src[0], src[31] );
614   SPLIT( l1, r1, src[1], src[30] );
615   SPLIT( l2, r2, src[2], src[29] );
616   SPLIT( l3, r3, src[3], src[28] );
617   SPLIT( l4, r4, src[4], src[27] );
618   SPLIT( l5, r5, src[5], src[26] );
619   SPLIT( l6, r6, src[6], src[25] );
620   SPLIT( l7, r7, src[7], src[24] );
621   SPLIT( l8, r8, src[8], src[23] );
622   SPLIT( l9, r9, src[9], src[22] );
623   SPLIT(l10, r10, src[10], src[21] );
624   SPLIT(l11, r11, src[11], src[20] );
625   SPLIT(l12, r12, src[12], src[19] );
626   SPLIT(l13, r13, src[13], src[18] );
627   SPLIT(l14, r14, src[14], src[17] );
628   SPLIT(l15, r15, src[15], src[16] );
629
630   // process
631   double temp3  = l0 + l15;
632   double temp2  = l0 - l15;
633
634   double temp0  = l1 + l14;
635   double temp1  = l1 - l14;
636
637   l0   = l2 + l13;
638   l2  = l2 - l13;
639
640   l1   = l3 + l12;
641   l3 = l3 - l12;
642
643   l14   = l4 + l11;
644   l4  = l4 - l11;
645
646   l15   = l5 + l10;
647   l5  = l5 - l10;
648
649   double temp5   = l6 + l9;
650   l6 = l6 - l9;
651
652   double temp6   = l7 + l8;
653   l7  = l7 - l8;
654
655   l8  = temp3 + temp6;
656   temp3  = temp3 - temp6;
657
658   l9  = temp0 + temp5;
659   temp0  = temp0 - temp5;
660
661   l10 = l0 + l15;
662   double temp4 = l0 - l15;
663
664   l11 = l1 + l14;
665   l13  = l1 - l14;
666
667   l0   = l8 + l11;
668   l8  = l8 - l11;
669
670   l1   = l9 + l10;
671   l9  = l9 - l10;
672
673   ////
674
675   l10 = l0 + l1;
676
677   l1   = (l0 - l1)*fast_sincos[_sin_pi_div_4];
678   l14   = l8 * fast_sincos[_cos_pi_div_8] + l9 * fast_sincos[_sin_pi_div_8];
679   l8  = l8 * fast_sincos[_sin_pi_div_8] - l9 * fast_sincos[_cos_pi_div_8];
680   l9  = temp3 * fast_sincos[_cos_pi_div_16] + l13 * fast_sincos[_sin_pi_div_16];
681   temp3  = temp3 * fast_sincos[_sin_pi_div_16] - l13 * fast_sincos[_cos_pi_div_16];
682   l13  = temp4 * fast_sincos[_sin_3pi_div_16] + temp0 * fast_sincos[_cos_3pi_div_16];
683   temp0  = temp4 * fast_sincos[_cos_3pi_div_16] - temp0 * fast_sincos[_sin_3pi_div_16];
684   l15   = l9 + l13;
685   temp5   = (l9 - l13)*fast_sincos[_sin_pi_div_4];
686   l13  = temp3 + temp0;
687   temp6   = (temp3 - temp0)*fast_sincos[_sin_pi_div_4];
688   temp0  = temp5 + temp6;
689   l9  = temp5 - temp6;
690   temp5   = temp2 * fast_sincos[_cos_pi_div_32] + l7 * fast_sincos[_sin_pi_div_32];
691   temp2  = temp2 * fast_sincos[_sin_pi_div_32] - l7 * fast_sincos[_cos_pi_div_32];
692   temp6   = l6 * fast_sincos[_sin_3pi_div_32] + temp1 * fast_sincos[_cos_3pi_div_32];
693   temp1  = l6 * fast_sincos[_cos_3pi_div_32] - temp1 * fast_sincos[_sin_3pi_div_32];
694   double temp7   = l2 * fast_sincos[_cos_5pi_div_32] + l5 * fast_sincos[_sin_5pi_div_32];
695   l2  = l2 * fast_sincos[_sin_5pi_div_32] - l5 * fast_sincos[_cos_5pi_div_32];
696   l5  = l4 * fast_sincos[_sin_7pi_div_32] + l3 * fast_sincos[_cos_7pi_div_32];
697   l3 = l4 * fast_sincos[_cos_7pi_div_32] - l3 * fast_sincos[_sin_7pi_div_32];
698   l4  = temp5 + l5;
699   temp3  = temp5 - l5;
700   l5  = temp6 + temp7;
701   l7  = temp6 - temp7;
702   temp5   = l4 + l5;
703   temp6   = (l4 - l5)*fast_sincos[_sin_pi_div_4];
704   temp7   = temp3 * fast_sincos[_cos_pi_div_8] + l7 * fast_sincos[_sin_pi_div_8];
705   temp3  = temp3 * fast_sincos[_sin_pi_div_8] - l7 * fast_sincos[_cos_pi_div_8];
706   double temp8   = temp2 + l3;
707   temp2  = temp2 - l3;
708   l3 = temp1 + l2;
709   temp1  = temp1 - l2;
710   l2  = temp8 + l3;
711   l7  = (temp8 - l3)*fast_sincos[_sin_pi_div_4];
712   l3 = temp2 * fast_sincos[_cos_pi_div_8] + temp1 * fast_sincos[_sin_pi_div_8];
713   temp2  = temp2 * fast_sincos[_sin_pi_div_8] - temp1 * fast_sincos[_cos_pi_div_8];
714   temp1  = temp7 + temp2;
715   l5  = temp7 - temp2;
716   temp2  = temp6 + l7;
717   l4  = temp6 - l7;
718   l7  = temp3 + l3;
719   temp3  = temp3 - l3;
720   temp6   = r0 * fast_sincos[_cos_pi_div_64] + r15 * fast_sincos[_sin_pi_div_64];
721   r0 = r0 * fast_sincos[_sin_pi_div_64] - r15 * fast_sincos[_cos_pi_div_64];
722   temp7   = r14 * fast_sincos[_sin_3pi_div_64] + r1 * fast_sincos[_cos_3pi_div_64];
723   r1 = r14 * fast_sincos[_cos_3pi_div_64] - r1 * fast_sincos[_sin_3pi_div_64];
724   r14 = r2 * fast_sincos[_cos_5pi_div_64] + r13 * fast_sincos[_sin_5pi_div_64];
725   r2 = r2 * fast_sincos[_sin_5pi_div_64] - r13 * fast_sincos[_cos_5pi_div_64];
726   r13 = r12 * fast_sincos[_sin_7pi_div_64] + r3 * fast_sincos[_cos_7pi_div_64];
727   r3 = r12 * fast_sincos[_cos_7pi_div_64] - r3 * fast_sincos[_sin_7pi_div_64];
728   r12 = r4 * fast_sincos[_cos_9pi_div_64] + r11 * fast_sincos[_sin_9pi_div_64];
729   r4 = r4 * fast_sincos[_sin_9pi_div_64] - r11 * fast_sincos[_cos_9pi_div_64];
730   r11 = r10 * fast_sincos[_sin_11pi_div_64] + r5 * fast_sincos[_cos_11pi_div_64];
731   r5 = r10 * fast_sincos[_cos_11pi_div_64] - r5 * fast_sincos[_sin_11pi_div_64];
732   r10 = r6 * fast_sincos[_cos_13pi_div_64] + r9 * fast_sincos[_sin_13pi_div_64];
733   r6 = r6 * fast_sincos[_sin_13pi_div_64] - r9 * fast_sincos[_cos_13pi_div_64];
734   r9 = r8 * fast_sincos[_sin_15pi_div_64] + r7 * fast_sincos[_cos_15pi_div_64];
735   r7 = r8 * fast_sincos[_cos_15pi_div_64] - r7 * fast_sincos[_sin_15pi_div_64];
736   r8 = temp6 + r9;
737   l3 = temp6 - r9;
738   r9 = temp7 + r10;
739   r15 = temp7 - r10;
740   temp6   = r14 + r11;
741   r14 = r14 - r11;
742   temp7   = r13 + r12;
743   r13 = r13 - r12;
744   r12 = r8 + temp7;
745   r8 = r8 - temp7;
746   r11 = r9 + temp6;
747   r9 = r9 - temp6;
748   temp6   = r12 + r11;
749   temp7   = (r12 - r11)*fast_sincos[_sin_pi_div_4];
750   r11 = r8 * fast_sincos[_cos_pi_div_8] + r9 * fast_sincos[_sin_pi_div_8];
751   r8 = r8 * fast_sincos[_sin_pi_div_8] - r9 * fast_sincos[_cos_pi_div_8];
752   r9 = l3 * fast_sincos[_cos_pi_div_16] + r13 * fast_sincos[_sin_pi_div_16];
753   l3 = l3 * fast_sincos[_sin_pi_div_16] - r13 * fast_sincos[_cos_pi_div_16];
754   r13 = r14 * fast_sincos[_sin_3pi_div_16] + r15 * fast_sincos[_cos_3pi_div_16];
755   r15 = r14 * fast_sincos[_cos_3pi_div_16] - r15 * fast_sincos[_sin_3pi_div_16];
756   r14 = r13 + r9;
757   temp8   = (r9 - r13)*fast_sincos[_sin_pi_div_4];
758   r13 = r15 + l3;
759   l3 = (l3 - r15)*fast_sincos[_sin_pi_div_4];
760   r15 = temp8 + l3;
761   r9 = temp8 - l3;
762   temp8   = r0 + r7;
763   r0 = r0 - r7;
764   r7 = r1 + r6;
765   r1 = r1 - r6;
766   r6 = r2 + r5;
767   r2 = r2 - r5;
768   r5 = r3 + r4;
769   r3 = r3 - r4;
770   r4 = temp8 + r5;
771   l3 = temp8 - r5;
772   temp8   = r7 + r6;
773   r7 = r7 - r6;
774   r6 = r4 + temp8;
775   r4 = (r4 - temp8)*fast_sincos[_sin_pi_div_4];
776   r5 = l3 * fast_sincos[_cos_pi_div_8] + r7 * fast_sincos[_sin_pi_div_8];
777   l3 = l3 * fast_sincos[_sin_pi_div_8] - r7 * fast_sincos[_cos_pi_div_8];
778   r7 = r0 * fast_sincos[_cos_pi_div_16] + r3 * fast_sincos[_sin_pi_div_16];
779   r0 = r0 * fast_sincos[_sin_pi_div_16] - r3 * fast_sincos[_cos_pi_div_16];
780   r3 = r2 * fast_sincos[_sin_3pi_div_16] + r1 * fast_sincos[_cos_3pi_div_16];
781   r1 = r2 * fast_sincos[_cos_3pi_div_16] - r1 * fast_sincos[_sin_3pi_div_16];
782   temp8   = r7 + r3;
783   r7 = (r7 - r3)*fast_sincos[_sin_pi_div_4];
784   r3 = r0 + r1;
785   r0 = (r0 - r1)*fast_sincos[_sin_pi_div_4];
786   r1 = r7 + r0;
787   r7 = r7 - r0;
788   r0 = r14 + r3;
789   r14 = r14 - r3;
790
791   r3 = r11 + l3;
792   r11 = r11 - l3;
793
794   l3 = r15 + r7;
795   r15 = r15 - r7;
796
797   r7 = temp7 + r4;
798   r12 = temp7 - r4;
799
800   r4 = r9 + r1;
801   r9 = r9 - r1;
802
803   r1 = r8 + r5;
804   r8 = r8 - r5;
805   r5 = r13 + temp8;
806   r13 = r13 - temp8;
807   
808   // output
809
810   dst[0] = l10;
811   dst[1] = temp6;
812   dst[2] = temp5;
813   dst[3] = r0;
814   dst[4] = l15;
815   dst[5] = r14;
816   dst[6] = temp1;
817   dst[7] = r3;
818   dst[8] = l14;
819   dst[9] = r11;
820   dst[10] = l5;
821   dst[11] = l3;
822   dst[12] = temp0;
823   dst[13] = r15;
824   dst[14] = temp2;
825   dst[15] = r7;
826   dst[16]   = l1;
827   dst[17] = r12;
828   dst[18] = l4;
829   dst[19] = r4;
830   dst[20] = l9;
831   dst[21] = r9;
832   dst[22] = l7;
833   dst[23] = r1;
834   dst[24] = l8;
835   dst[25] = r8;
836   dst[26] = temp3;
837   dst[27] = r5;
838   dst[28] = l13;
839   dst[29] = r13;
840   dst[30] = l2;
841   dst[31] = r6;
842}
843#endif
844
845
846/**************************************************
847
848All roms are flash roms with no labels, so keep the
849 version numbers attached to the roms that differ
850 - roms which differ have also been prefixed with
851   the MAME set names to aid readability and prevent
852   accidental misloading of sets with the wrong
853   CRCs which causes issues with the speedups.
854
855**************************************************/
856
857ROM_START( mushisam )
858   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
859   ROM_LOAD16_WORD_SWAP("mushisam_u4", 0x000000, 0x200000, CRC(15321b30) SHA1(d2cd714ff2299eeab6f9a7c219dfb559c8f98b45) ) /* (2004/10/12.MASTER VER.) */
860   ROM_RELOAD(0x200000,0x200000)
861
862   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
863   ROM_LOAD("mushisam_u2", 0x000000, 0x8400000, CRC(4f0a842a) SHA1(33f3550ec676a7088b6348cd72c16cc6594afb84) ) /* (2004/10/12.MASTER VER.) */
864
865   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
866   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(138e2050) SHA1(9e86489a4e65af5efb5495adf6d4b3e01d5b2816) )
867   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(e3d05c9f) SHA1(130c3d62317da1729c85bd178bd51500edd73ada) )
868ROM_END
869
870
871ROM_START( mushisama )
872   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
873   ROM_LOAD16_WORD_SWAP("mushisama_u4", 0x000000, 0x200000, CRC(0b5b30b2) SHA1(35fd1bb1561c30b311b4325bc8f4628f2fccd20b) ) /* (2004/10/12 MASTER VER.) */
874   ROM_RELOAD(0x200000,0x200000)
875
876   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
877   //ROM_LOAD("mushisama_u2", 0x000000, 0x8400000, CRC(b1f826dc) SHA1(c287bd9f571d0df03d7fcbcf3c57c74ce564ab05) ) /* (2004/10/12 MASTER VER.) */
878   ROM_LOAD("mushisama_u2", 0x000000, 0x8400000, CRC(f1e0cf65) SHA1(d00d950422309fdf08efe1e2d5f040beb45ee6fb) ) /* (2004/10/12 MASTER VER.) */
879
880   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
881   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(138e2050) SHA1(9e86489a4e65af5efb5495adf6d4b3e01d5b2816) )
882   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(e3d05c9f) SHA1(130c3d62317da1729c85bd178bd51500edd73ada) )
883ROM_END
884
885ROM_START( mushisamb )
886   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
887   ROM_LOAD16_WORD_SWAP("mushisamb_u4", 0x000000, 0x200000, CRC(9f1c7f51) SHA1(f82ae72ec03687904ca7516887080be92365a5f3) ) /* (2004/10/12 MASTER VER) */
888   ROM_RELOAD(0x200000,0x200000)
889
890   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
891//   ROM_LOAD("mushisamb_u2", 0x000000, 0x8400000, CRC(2cd13810) SHA1(40e45e201b60e63a060b68d4cc767eb64cfb99c2) ) /* (2004/10/12 MASTER VER) */
892   ROM_LOAD("mushisamb_u2", 0x000000, 0x8400000, CRC(6cc9d1a9) SHA1(17907798dce1defadd10354cec6c8d364e045570) ) /* (2004/10/12 MASTER VER) */
893     
894   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
895   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(138e2050) SHA1(9e86489a4e65af5efb5495adf6d4b3e01d5b2816) )
896   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(e3d05c9f) SHA1(130c3d62317da1729c85bd178bd51500edd73ada) )
897ROM_END
898
899ROM_START( espgal2 )
900   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
901   ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(09c908bb) SHA1(7d6031fd3542b3e1d296ff218feb40502fd78694) ) /* (2005/11/14 MASTER VER) */
902   ROM_RELOAD(0x200000,0x200000)
903
904   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
905   ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(222f58c7) SHA1(d47a5085a1debd9cb8c61d88cd39e4f5036d1797) ) /* (2005/11/14 MASTER VER) */
906
907   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
908   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(b9a10c22) SHA1(4561f95c6018c9716077224bfe9660e61fb84681) )
909   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(c76b1ec4) SHA1(b98a53d41a995d968e0432ed824b0b06d93dcea8) )
910ROM_END
911
912ROM_START( mushitam )
913   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
914   ROM_LOAD16_WORD_SWAP("mushitam_u4", 0x000000, 0x200000, CRC(c49eb6b1) SHA1(c40ee5de89e3f1cb49ac19687657dd2b42a88d81) ) /* (2005/09/09.MASTER VER) */
915   ROM_RELOAD(0x200000,0x200000)
916
917   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
918   ROM_LOAD("mushitam_u2", 0x000000, 0x8400000, CRC(8ba498ab) SHA1(459c0b4ab831bbe019bdd5b0ac56955948b9e3a6) ) /* (2005/09/09.MASTER VER) */
919
920   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
921   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(701a912a) SHA1(85c198946fb693d99928ea2595c84ba4d9dc8157) )
922   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(6feeb9a1) SHA1(992711c80e660c32f97b343c2ce8184fddd7364e) )
923ROM_END
924
925ROM_START( mushitama )
926   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
927   ROM_LOAD16_WORD_SWAP("mushitama_u4", 0x000000, 0x200000, CRC(4a23e6c8) SHA1(d44c287bb88e6d413a8d35d75bc1b4928ad52cdf) ) /* (2005/09/09 MASTER VER) */
928   ROM_RELOAD(0x200000,0x200000)
929
930   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
931   ROM_LOAD("mushitama_u2", 0x000000, 0x8400000, CRC(3f93ff82) SHA1(6f6c250aa7134016ffb288d056bc937ea311f538) ) /* (2005/09/09 MASTER VER) */
932
933   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
934   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(701a912a) SHA1(85c198946fb693d99928ea2595c84ba4d9dc8157) )
935   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(6feeb9a1) SHA1(992711c80e660c32f97b343c2ce8184fddd7364e) )
936ROM_END
937
938
939ROM_START( futari15 )
940   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
941   ROM_LOAD16_WORD_SWAP("futari15_u4", 0x000000, 0x200000, CRC(e8c5f128) SHA1(45fb8066fdbecb83fdc2e14555c460d0c652cd5f) ) /* (2006/12/8.MAST VER. 1.54.) */
942   ROM_RELOAD(0x200000,0x200000)
943
944   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
945   ROM_LOAD("futari15_u2", 0x000000, 0x8400000, CRC(b9eae1fc) SHA1(410f8e7cfcbfd271b41fb4f8d049a13a3191a1f9) ) /* (2006/12/8.MAST VER. 1.54.) */
946
947   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
948   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(39f1e1f4) SHA1(53d12f59a56df35c705408c76e6e02118da656f1) )
949   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(c631a766) SHA1(8bb6934a2f5b8a9841c3dcf85192b1743773dd8b) )
950ROM_END
951
952ROM_START( futari15a )
953   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
954   ROM_LOAD16_WORD_SWAP("futari15a_u4", 0x000000, 0x200000, CRC(a609cf89) SHA1(56752fae9f42fa852af8ee2eae79e25ec7f17953) ) /* (2006/12/8 MAST VER 1.54) */
955   ROM_RELOAD(0x200000,0x200000)
956
957   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
958   ROM_LOAD("futari15a_u2", 0x000000, 0x8400000, CRC(b9d815f9) SHA1(6b6f668b0bbb087ffac65e4f0d8bd9d5b28eeb28) ) /* (2006/12/8 MAST VER 1.54) */
959
960   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
961   ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(39f1e1f4) SHA1(53d12f59a56df35c705408c76e6e02118da656f1) )
962   ROM_LOAD16_WORD_SWAP("u24", 0x400000, 0x400000, CRC(c631a766) SHA1(8bb6934a2f5b8a9841c3dcf85192b1743773dd8b) )
963ROM_END
964
965ROM_START( futari10 )
966   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
967   ROM_LOAD16_WORD_SWAP( "futari10_u4", 0x000000, 0x200000, CRC(b127dca7) SHA1(e1f518bc72fc1cdf69aefa89eafa4edaf4e84778) ) /* (2006/10/23 MASTER VER.) */
968   ROM_RELOAD(0x200000,0x200000)
969
970   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
971   ROM_LOAD( "futari10_u2", 0x000000, 0x8400000, CRC(78ffcd0c) SHA1(0e2937edec15ce3f5741b72ebd3bbaaefffb556e) ) /* (2006/10/23 MASTER VER.) */
972
973   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
974   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(39f1e1f4) SHA1(53d12f59a56df35c705408c76e6e02118da656f1) )
975   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(c631a766) SHA1(8bb6934a2f5b8a9841c3dcf85192b1743773dd8b) )
976ROM_END
977
978ROM_START( futaribl )
979   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
980   ROM_LOAD16_WORD_SWAP( "futariblk_u4", 0x000000, 0x200000, CRC(6db13c62) SHA1(6a53ce7f70b754936ccbb3a4674d4b2f03979644) ) /* (2007/12/11 BLACK LABEL VER) */
981   ROM_RELOAD(0x200000,0x200000)
982
983   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
984   ROM_LOAD( "futariblk_u2", 0x000000, 0x8400000, CRC(08c6fd62) SHA1(e1fc386b2b0e41906c724287cbf82304297e0150) ) /* (2007/12/11 BLACK LABEL VER) */
985
986   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
987   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(39f1e1f4) SHA1(53d12f59a56df35c705408c76e6e02118da656f1) )
988   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(c631a766) SHA1(8bb6934a2f5b8a9841c3dcf85192b1743773dd8b) )
989ROM_END
990
991ROM_START( ibara )
992   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
993   ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(8e6c155d) SHA1(38ac2107dc7824836e2b4e04c7180d5ae43c9b79) ) /* (2005/03/22 MASTER VER..) */
994   ROM_RELOAD(0x200000,0x200000)
995
996   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
997   ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(55840976) SHA1(4982bdce84f9603adfed7a618f18bc80359ab81e) ) /* (2005/03/22 MASTER VER..) */
998
999   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1000   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(ee5e585d) SHA1(7eeba4ee693060e927f8c46b16e39227c6a62392) )
1001   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(f0aa3cb6) SHA1(f9d137cd879e718811b2d21a0af2a9c6b7dca2f9) )
1002ROM_END
1003
1004ROM_START( ibarablk ) /* Title screen shows (c) 2005 despite the 2006 "master" date */
1005   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1006   ROM_LOAD16_WORD_SWAP( "ibarablk_u4", 0x000000, 0x200000, CRC(ee1f1f77) SHA1(ac276f3955aa4dde2544af4912819a7ae6bcf8dd) ) /* (2006/02/06. MASTER VER.) */
1007   ROM_RELOAD(0x200000,0x200000)
1008
1009   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1010   ROM_LOAD( "ibarablk_u2", 0x000000, 0x8400000, CRC(5e46be44) SHA1(bed5f1bf452f2cac58747ecabec3c4392566a3a7) ) /* (2006/02/06. MASTER VER.) */
1011
1012   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1013   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(a436bb22) SHA1(0556e771cc02638bf8814315ba671c2d442594f1) ) /* (2006/02/06 MASTER VER.) */
1014   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(d11ab6b6) SHA1(2132191cbe847e2560423e4545c969f21f8ff825) ) /* (2006/02/06 MASTER VER.) */
1015ROM_END
1016
1017ROM_START( ibarablka ) /* Title screen shows (c) 2005 despite the 2006 "master" date */
1018   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1019   ROM_LOAD16_WORD_SWAP( "ibarablka_u4", 0x000000, 0x200000, CRC(a9d43839) SHA1(507696e616608c05893c7ac2814b3365e9cb0720) ) /* (2006/02/06 MASTER VER.) */
1020   ROM_RELOAD(0x200000,0x200000)
1021
1022   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1023   ROM_LOAD( "ibarablka_u2", 0x000000, 0x8400000, CRC(33400d96) SHA1(09c22b5431ac3726bf88c56efd970f56793f825a) ) /* (2006/02/06 MASTER VER.) */
1024
1025   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1026   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(a436bb22) SHA1(0556e771cc02638bf8814315ba671c2d442594f1) ) /* (2006/02/06 MASTER VER.) */
1027   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(d11ab6b6) SHA1(2132191cbe847e2560423e4545c969f21f8ff825) ) /* (2006/02/06 MASTER VER.) */
1028ROM_END
1029
1030ROM_START( deathsml )
1031   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1032   ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(1a7b98bf) SHA1(07798a4a846e5802756396b34df47d106895c1f1) ) /* (2007/10/09 MASTER VER) */
1033   ROM_RELOAD(0x200000,0x200000)
1034
1035   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1036//   ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(d45b0698) SHA1(7077b9445f5ed4749c7f683191ccd312180fac38) ) /* (2007/10/09 MASTER VER) */ // one bad asset?
1037   ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(59ef5d78) SHA1(426e506b6d88948aa55aec71c0db6e91da3d490d) ) /* (2007/10/09 MASTER VER) */
1038
1039   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1040   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(aab718c8) SHA1(0e636c46d06151abd6f73232bc479dafcafe5327) )
1041   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(83881d84) SHA1(6e2294b247dfcbf0ced155dc45c706f29052775d) )
1042ROM_END
1043
1044ROM_START( mmpork )
1045   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1046   ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(d06cfa42) SHA1(5707feb4b3e5265daf5926f38c38612b24106f1f) ) /* (2007/ 4/17 MASTER VER.) */
1047   ROM_RELOAD(0x200000,0x200000)
1048
1049   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1050   ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(1ee961b8) SHA1(81a2eba704ac1cf7fc44fa7c6a3f50e3570c104f) ) /* (2007/ 4/17 MASTER VER.) */
1051
1052   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1053   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4a4b36df) SHA1(5db5ce6fa47e5ca3263d4bd19315890c6d29df66) )
1054   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(ce83d07b) SHA1(a5947467c8f5b7c4b0ad8e32df2ee29b787e355f) )
1055ROM_END
1056
1057ROM_START( mmmbanc )
1058   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1059   ROM_LOAD16_WORD_SWAP( "u4", 0x0000, 0x200000, CRC(5589d8c6) SHA1(43fbdb0effe2bc0e7135698757b6ee50200aecde) ) /* (2007/06/05 MASTER VER.) */
1060   ROM_RELOAD(0x200000,0x200000)
1061
1062   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1063   ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(f3b50c30) SHA1(962327798081b292b2d3fd3b7845c0197f9f2d8a) ) /* (2007/06/05 MASTER VER.) */
1064
1065   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1066   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4caaa1bf) SHA1(9b92c13eac05601da4d9bb3eb727c156974e9f0c) )
1067   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(8e3a51ba) SHA1(e34cf9acb13c3d8ca6cd1306b060b1d429872abd) )
1068ROM_END
1069
1070ROM_START( pinkswts )
1071   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1072   ROM_LOAD16_WORD_SWAP( "pinkswts_u4", 0x0000, 0x200000, CRC(5d812c9e) SHA1(db821ec3892fd150513749d64a8b60bf147f3275) ) /* (2006/04/06 MASTER VER....) */
1073   ROM_RELOAD(0x200000,0x200000)
1074
1075   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1076   ROM_LOAD( "pinkswts_u2", 0x000000, 0x8400000, CRC(92d3243a) SHA1(e9d20c62f642fb2f62ef83ed5caeee6b3f67fef9) ) /* (2006/04/06 MASTER VER....) */
1077
1078   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1079   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
1080   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(e93f0627) SHA1(6f5ec0ade87f7fc42a58a8f125557a4d1f3f187d) )
1081ROM_END
1082
1083ROM_START( pinkswtsa )
1084   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1085   ROM_LOAD16_WORD_SWAP( "pnkswtsa_u4", 0x0000, 0x200000, CRC(ee3339b2) SHA1(995988d370731a7074b49ce8752525dadf06a954) ) /* (2006/04/06 MASTER VER...) */
1086   ROM_RELOAD(0x200000,0x200000)
1087
1088   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1089   ROM_LOAD( "pnkswtsa_u2", 0x000000, 0x8400000, CRC(829a862e) SHA1(8c0ee2a0eb33b68869252fd68aed74820a904287) ) /* (2006/04/06 MASTER VER...) */
1090
1091   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1092   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
1093   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(e93f0627) SHA1(6f5ec0ade87f7fc42a58a8f125557a4d1f3f187d) )
1094ROM_END
1095
1096ROM_START( pinkswtsb )
1097   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1098   ROM_LOAD16_WORD_SWAP( "pnkswtsb_u4", 0x0000, 0x200000, CRC(68bcc009) SHA1(2fef544b93c61161a37365f868b431d8262e4b21) ) /* (2006/04/06 MASTER VER.) */
1099   ROM_RELOAD(0x200000,0x200000)
1100
1101   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1102   ROM_LOAD( "pnkswtsb_u2", 0x000000, 0x8400000, CRC(a5666ed9) SHA1(682e06c84990225bc6bb0c9f38b5f46c4e36b430) ) /* (2006/04/06 MASTER VER.) */
1103
1104   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1105   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
1106   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(e93f0627) SHA1(6f5ec0ade87f7fc42a58a8f125557a4d1f3f187d) )
1107ROM_END
1108
1109ROM_START( pinkswtsx )
1110   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1111   ROM_LOAD16_WORD_SWAP( "pnkswtsx_u4", 0x0000, 0x200000, CRC(8fe05bf0) SHA1(5cd45ac0e74690787c83d3fb383a65ed7cd47104) ) // (2006/xx/xx MASTER VER.)
1112   ROM_RELOAD(0x200000,0x200000)
1113
1114   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1115   ROM_LOAD( "pnkswtsx_u2", 0x000000, 0x8400000, CRC(91e4deb2) SHA1(893cb10d6f805df7cb4a1bb709a3ea6de147b7e9) ) // (2006/xx/xx MASTER VER.)
1116
1117   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1118   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
1119   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(e93f0627) SHA1(6f5ec0ade87f7fc42a58a8f125557a4d1f3f187d) )
1120ROM_END
1121
1122ROM_START( ddpdfk )
1123   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1124   ROM_LOAD16_WORD_SWAP( "(__ddpdfk)u4", 0x0000, 0x400000, CRC(9976d699) SHA1(9dfe9d1daf6f638cafce8cdc5230209e2bcb7522) )
1125
1126   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1127   ROM_LOAD( "(__ddpdfk)u2", 0x000000, 0x8400000, CRC(84a51a4f) SHA1(291a6279c0746d2eb8630e7d6d886043f0cfdd94) )
1128//   ROM_LOAD( "u2_bad1", 0x000000, 0x8400000, CRC(05e5d333) SHA1(3324fc3b092cbb56d3cfb539c8fd919f55abe910) ) // 1 corrupted image
1129//   ROM_LOAD( "u2_bad2", 0x000000, 0x8400000, CRC(ce641eab) SHA1(fd86e141a049cc12c7169ad43b5ebe068ea61402) ) // 8 corrupted image(s)
1130
1131   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1132   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(27032cde) SHA1(5b58d0140d72b91db4e763ca4af93060d36ac74d) )
1133   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(a6178c2c) SHA1(7742ad1de2e4b0d0206ad11d467ea35da36352df) )
1134ROM_END
1135
1136
1137
1138ROM_START( ddpdfk10 )
1139   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1140   ROM_LOAD16_WORD_SWAP( "(__ddpdfk10)u4", 0x0000, 0x400000, CRC(a3d650b2) SHA1(46a7551760e18c2cecd372c3f4be16f6600efc2c) )
1141
1142   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1143   ROM_LOAD( "(__ddpdfk10)u2", 0x000000, 0x8400000, CRC(d349cb2a) SHA1(c364c36b69b93f8f62390f185d044f51056669ff) )
1144
1145   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1146   ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(27032cde) SHA1(5b58d0140d72b91db4e763ca4af93060d36ac74d) )
1147   ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(a6178c2c) SHA1(7742ad1de2e4b0d0206ad11d467ea35da36352df) )
1148ROM_END
1149
1150ROM_START( dsmbl )
1151   ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
1152   ROM_LOAD16_WORD_SWAP( "(__dsmbl)u4", 0x000000, 0x400000, CRC(77fc5ad1) SHA1(afe044fc16e9494143c876879b033caccd08cf22) )
1153
1154   ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
1155   ROM_LOAD( "(__dsmbl)u2", 0x000000, 0x8400000, CRC(d6b85b7a) SHA1(4674f6ad07f6a03904ca3d05060816b8fe061add) )
1156
1157   ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
1158   ROM_LOAD16_WORD_SWAP( "(__dsmbl)u23", 0x000000, 0x400000, CRC(a9536a6a) SHA1(4b9dcaf6803b1fcfdf73ae9daabc4508fec71631) )
1159   ROM_LOAD16_WORD_SWAP( "(__dsmbl)u24", 0x400000, 0x400000, CRC(3b673326) SHA1(1ae847eb4e752fef1d72081d82344f0ad0537c31) )
1160ROM_END
1161
1162
1163
1164READ64_MEMBER( cv1k_state::mushisam_speedup_r )
1165{
1166   int pc = m_maincpu->pc();
1167   if ( pc == 0xc04a0aa ) m_maincpu->spin_until_time( attotime::from_usec(10)); // mushisam
1168   else if (pc == 0xc04a0da)  m_maincpu->spin_until_time( attotime::from_usec(10)); // mushitam
1169//  else printf("read %08x\n", m_maincpu->pc());
1170   return cv1k_ram[0x0022f0/8];
1171}
1172
1173DRIVER_INIT_MEMBER(cv1k_state,mushisam)
1174{
1175    m_maincpu->space(AS_PROGRAM).install_read_handler(0xc0022f0, 0xc0022f7, read64_delegate(FUNC(cv1k_state::mushisam_speedup_r),this));
1176}
1177
1178READ64_MEMBER( cv1k_state::mushisama_speedup_r )
1179{
1180   if (m_maincpu->pc()== 0xc04a2aa ) m_maincpu->spin_until_time( attotime::from_usec(10)); // mushisam
1181//  else printf("read %08x\n", m_maincpu->pc());
1182   return cv1k_ram[0x00024d8/8];
1183}
1184
1185DRIVER_INIT_MEMBER(cv1k_state,mushisama)
1186{
1187    m_maincpu->space(AS_PROGRAM).install_read_handler(0xc0024d8, 0xc0024df, read64_delegate(FUNC(cv1k_state::mushisama_speedup_r),this));
1188}
1189
1190READ64_MEMBER( cv1k_state::espgal2_speedup_r )
1191{
1192   int pc = m_maincpu->pc();
1193
1194   if ( pc == 0xc05177a ) m_maincpu->spin_until_time( attotime::from_usec(10)); // espgal2
1195   if ( pc == 0xc05176a ) m_maincpu->spin_until_time( attotime::from_usec(10)); // futari15 / futari15a / futari10 / futariblk / ibarablk / ibarablka / mmpork / mmmbanc
1196   if ( pc == 0xc0519a2 ) m_maincpu->spin_until_time( attotime::from_usec(10)); // deathsml
1197   if ( pc == 0xc1d1346 ) m_maincpu->spin_until_time( attotime::from_usec(10)); // dpddfk
1198//   else printf("read %08x\n", m_maincpu->pc());
1199   return cv1k_ram[0x002310/8];
1200}
1201
1202DRIVER_INIT_MEMBER(cv1k_state,espgal2)
1203{
1204    m_maincpu->space(AS_PROGRAM).install_read_handler(0xc002310, 0xc002317, read64_delegate(FUNC(cv1k_state::espgal2_speedup_r),this));
1205}
1206
1207
1208// The black label versions are intentionally not set as clones, they were re-releases with different game codes, not bugfixes.
1209
1210// CA011  Mushihime-Sama
1211GAME( 2004, mushisam,   0,        cv1k, cv1k, cv1k_state, mushisama, ROT270, "Cave", "Mushihime-Sama (2004/10/12.MASTER VER.)",                          0 )
1212GAME( 2004, mushisama,  mushisam, cv1k, cv1k, cv1k_state, mushisam,  ROT270, "Cave", "Mushihime-Sama (2004/10/12 MASTER VER.)",                          0 )
1213GAME( 2004, mushisamb,  mushisam, cv1k, cv1k, cv1k_state, mushisama, ROT270, "Cave", "Mushihime-Sama (2004/10/12 MASTER VER)",                           0 )
1214
1215// CA012  Ibara
1216GAME( 2005, ibara,      0,        cv1k, cv1k, cv1k_state, mushisam,  ROT270, "Cave", "Ibara (2005/03/22 MASTER VER..)",                                   0 )
1217
1218// CA012B Ibara Kuro Black Label
1219GAME( 2006, ibarablk,   0,        cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Ibara Kuro Black Label (2006/02/06. MASTER VER.)",                 0 )
1220GAME( 2006, ibarablka,  ibarablk, cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Ibara Kuro Black Label (2006/02/06 MASTER VER.)",                  0 )
1221
1222// CA013  Espgaluda II
1223GAME( 2005, espgal2,    0,        cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Espgaluda II (2005/11/14 MASTER VER)",                             0 )
1224
1225// CA???  Puzzle! Mushihime-Tama
1226GAME( 2005, mushitam,   0,        cv1k, cv1k, cv1k_state, mushisam,  ROT0,   "Cave", "Puzzle! Mushihime-Tama (2005/09/09.MASTER VER)",                   0 )
1227GAME( 2005, mushitama,  mushitam, cv1k, cv1k, cv1k_state, mushisam,  ROT0,   "Cave", "Puzzle! Mushihime-Tama (2005/09/09 MASTER VER)",                   0 )
1228
1229// CA014  Pink Sweets: Ibara Sorekara
1230GAME( 2006, pinkswts,   0,        cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER....)",          0 )
1231GAME( 2006, pinkswtsa,  pinkswts, cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER...)",           0 )
1232GAME( 2006, pinkswtsb,  pinkswts, cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER.)",             0 )
1233GAME( 2006, pinkswtsx,  pinkswts, cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Pink Sweets: Ibara Sorekara (2006/xx/xx MASTER VER.)",             0 ) // defaults to freeplay, possibly bootlegged from show/dev version?
1234
1235// CA015  Mushihime-Sama Futari
1236GAME( 2006, futari15,   0,        cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Mushihime-Sama Futari Ver 1.5 (2006/12/8.MASTER VER. 1.54.)",      0 )
1237GAME( 2006, futari15a,  futari15, cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Mushihime-Sama Futari Ver 1.5 (2006/12/8 MASTER VER 1.54)",        0 )
1238GAME( 2006, futari10,   futari15, cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Mushihime-Sama Futari Ver 1.0 (2006/10/23 MASTER VER.)",           0 )
1239
1240// CA016  Muchi Muchi Pork!
1241GAME( 2007, mmpork,     0,        cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Muchi Muchi Pork! (2007/ 4/17 MASTER VER.)",                       0 )
1242
1243// CA015B Mushihime-Sama Futari Black Label
1244GAME( 2007, futaribl,   0,        cv1k, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "Mushihime-Sama Futari Black Label (2007/12/11 BLACK LABEL VER)",   0 )
1245
1246// CA017  Deathsmiles
1247GAME( 2007, deathsml,   0,        cv1k, cv1k, cv1k_state, espgal2,   ROT0,   "Cave", "Deathsmiles (2007/10/09 MASTER VER)",                              0 )
1248
1249// CA017B Deathsmiles Black Label
1250GAME( 2008, dsmbl,      0,        cv1k_d, cv1k, cv1k_state, espgal2,   ROT0,   "Cave", "Deathsmiles MegaBlack Label (2008/10/06 MEGABLACK LABEL VER)",   0 )
1251
1252// CA019  Do-Don-Pachi Dai-Fukkatsu
1253GAME( 2008, ddpdfk,     0,        cv1k_d, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "DoDonPachi Dai-Fukkatsu Ver 1.5 (2008/06/23  MASTER VER 1.5)",   0 )
1254GAME( 2008, ddpdfk10,   ddpdfk,   cv1k_d, cv1k, cv1k_state, espgal2,   ROT270, "Cave", "DoDonPachi Dai-Fukkatsu Ver 1.0 (2008/05/16  MASTER VER)",       0 )
1255
1256// CMDL01 Medal Mahjong Moukari Bancho
1257GAME( 2007, mmmbanc,    0,        cv1k, cv1k, cv1k_state, espgal2,   ROT0,   "Cave", "Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.)",             GAME_NOT_WORKING )
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
Property changes on: trunk/src/mame/drivers/cv1k.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mame/drivers/toaplan2.c
r26843r26844
46194619   ROM_LOAD( "rom4", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) )
46204620ROM_END
46214621
4622ROM_START( snowbro2b ) // seems to be the same data as the main set, but with the extra user1 rom and different rom layout
4623   ROM_REGION( 0x080000, "maincpu", 0 )            /* Main 68K code */
4624   ROM_LOAD16_BYTE( "sb2-prg1.U39", 0x000000, 0x040000, CRC(e1fec8a2) SHA1(30c1a351070d784da9ba0dca68be8a262dba2045) )
4625   ROM_LOAD16_BYTE( "sb2-prg0.u23", 0x000001, 0x040000, CRC(b473cd57) SHA1(331130faa9de01b3ca93845174e8c3684bd269c7) )
46224626
4627   ROM_REGION( 0x400000, "gfx1", 0 ) // one of these seems badly read, check
4628   ROM_LOAD( "sb2-gfx.u177", 0x000000, 0x200000, BAD_DUMP CRC(ebeec910) SHA1(e179f393b98135caa8419b68cd979038ab47a413) )
4629   ROM_LOAD( "sb2-gfx.u175", 0x200000, 0x200000, BAD_DUMP CRC(72622795) SHA1(03f041e30b78da2c554b70ed0e5dae7f0214103d) )
4630
4631   ROM_REGION( 0x80000, "oki", 0 )         /* ADPCM Samples */
4632   ROM_LOAD( "sb2-snd.4", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) )
4633
4634   ROM_REGION( 0x8000, "user1", 0 )            /* ??? Some sort of table - same as other bootleg boards */
4635   ROM_LOAD( "sb2-unk.u100", 0x0000, 0x8000, CRC(456dd16e) SHA1(84779ee64d3ea33ba1ba4dee39b504a81c6811a1) )
4636ROM_END
4637
46234638/* -------------------------- Raizing games ------------------------- */
46244639
46254640
r26843r26844
53165331GAME( 1995, othldrby,   0,        othldrby, othldrby,driver_device,    0,       ROT0,   "Sunwise",  "Othello Derby (Japan)", 0 )
53175332
53185333GAME( 1994, snowbro2,   0,        snowbro2, snowbro2, driver_device,   0,       ROT0,   "Hanafram", "Snow Bros. 2 - With New Elves / Otenki Paradise", GAME_SUPPORTS_SAVE )
5334GAME( 1994, snowbro2b,  snowbro2, snowbro2, snowbro2, driver_device,   0,       ROT0,   "bootleg", "Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg)", GAME_SUPPORTS_SAVE )
53195335
53205336GAME( 1993, sstriker,   0,        mahoudai, sstriker, driver_device,   0,       ROT270, "Raizing", "Sorcer Striker (set 1)" , GAME_SUPPORTS_SAVE ) // verified on two different PCBs
53215337GAME( 1993, sstrikera,  sstriker, mahoudai, sstrikera, driver_device,  0,       ROT270, "Raizing", "Sorcer Striker (set 2)" , GAME_SUPPORTS_SAVE ) // from Korean board
trunk/src/mame/mame.lst
r26843r26844
26542654batsuguna       // TP-030 (c) 1993 Toaplan
26552655batsugunsp      // TP-??? (c) 1993 Toaplan
26562656snowbro2        // TP-??? (c) 1994 Hanafram
2657snowbro2b      //
26572658pwrkick         // (c) 1994 Sunwise
26582659sstriker        // (c) 1993 Raizing
26592660sstrikera       // (c) 1993 Raizing
r26843r26844
27742775crusherm        // (c) 1999 Takumi
27752776tjumpman        // (c) 1999 Namco
27762777
2778mushisam
2779mushisama
2780mushisamb
2781espgal2
2782ibara   
2783ibarablk
2784ibarablka
2785mushitam
2786mushitama
2787futari15
2788futari15a 
2789futari10
2790futaribl
2791pinkswts
2792pinkswtsa
2793pinkswtsb
2794pinkswtsx
2795deathsml 
2796mmpork   
2797mmmbanc
2798ddpdfk
2799ddpdfk10
2800dsmbl
2801
27772802// Kyugo games
27782803// Kyugo only made four games: Repulse, Flash Gal, SRD Mission and Air Wolf.
27792804// Gyrodine was made by Crux. Crux was antecedent of Toa Plan, and spin-off from Orca.
trunk/src/mame/mame.mak
r26843r26844
280280#VIDEOS += DL1416
281281VIDEOS += DM9368
282282#VIDEOS += EF9340_1
283VIDEOS += EPIC12
283284VIDEOS += FIXFREQ
284285VIDEOS += H63484
285286#VIDEOS += HD44102
r26843r26844
321322VIDEOS += V9938
322323VIDEOS += VOODOO
323324
325
324326#-------------------------------------------------
325327# specify available machine cores
326328#-------------------------------------------------
r26843r26844
20512053   $(DRIVERS)/castle.o \
20522054   $(DRIVERS)/cave.o $(VIDEO)/cave.o \
20532055   $(DRIVERS)/cavepc.o \
2056   $(DRIVERS)/cv1k.o \
20542057   $(DRIVERS)/cb2001.o \
20552058   $(DRIVERS)/cdi.o $(VIDEO)/mcd212.o $(MACHINE)/cdi070.o $(MACHINE)/cdislave.o $(MACHINE)/cdicdic.o \
20562059   $(DRIVERS)/cesclass.o \
trunk/src/emu/video/epic12in.inc
r0r26844
1
2
3
4const void epic12_device::FUNCNAME(BLIT_PARAMS)
5{
6
7
8   UINT32* gfx2;
9   int y, yf;
10
11#if REALLY_SIMPLE == 0
12   colour_t s_clr;
13#endif
14
15#if BLENDED == 1
16   colour_t d_clr;
17
18#if _SMODE == 2
19#if _DMODE != 0
20   colour_t clr0;
21#endif
22#elif _SMODE == 0
23#if _DMODE != 0
24#if _DMODE != 5
25#if _DMODE != 1
26   colour_t clr0;
27#endif
28#endif
29#endif
30#else
31   colour_t clr0;
32#endif
33
34
35#endif
36
37#if REALLY_SIMPLE == 1
38#if TRANSPARENT == 1
39   UINT32 pen;
40#endif
41#else
42   UINT32 pen;
43#endif
44   UINT32 *bmp;
45
46#if FLIPX == 1
47   src_x += (dimx-1);
48#endif
49
50   if (flipy)   {   yf = -1;   src_y += (dimy-1);   }
51   else      {   yf = +1;                  }
52
53   int starty = 0;
54   const int dst_y_end = dst_y_start+dimy;
55
56   if (dst_y_start < clip->min_y)
57      starty = clip->min_y - dst_y_start;
58
59   if (dst_y_end > clip->max_y)
60      dimy -= (dst_y_end-1) - clip->max_y;
61
62   // check things are safe to draw (note, if the source would wrap round an edge of the 0x2000*0x1000 vram we don't draw.. not sure what the hw does anyway)
63   // ddpdfk triggers this on boss explosions so it needs fixing
64#if FLIPX == 1
65   if ((src_x &0x1fff) < ((src_x-(dimx-1))&0x1fff))
66   {
67   //   popmessage("sprite gets clipped off src_x %04x dimx %04x\n", src_x, dimx);
68      return;
69   }
70#else
71   if ((src_x &0x1fff) > ((src_x+(dimx-1))&0x1fff))
72   {
73   //   popmessage("sprite gets clipped off src_x %04x dimx %04x\n", src_x, dimx);
74      return;
75   }
76#endif
77
78   int startx = 0;
79   const int dst_x_end = dst_x_start+dimx;
80
81   if (dst_x_start < clip->min_x)
82      startx = clip->min_x - dst_x_start;
83
84   if (dst_x_end > clip->max_x)
85      dimx -= (dst_x_end-1) - clip->max_x;
86
87// wrong/unsafe slowdown sim
88   if (dimy > starty && dimx > startx)
89   {
90      epic12_device_blit_delay += (dimy - starty)*(dimx - startx);
91
92      //printf("delay is now %d\n", epic12_device_blit_delay);
93   }
94
95#if BLENDED == 1
96#if _SMODE == 0
97#if _DMODE == 0
98   const UINT8* salpha_table = epic12_device_colrtable[s_alpha];
99   const UINT8* dalpha_table = epic12_device_colrtable[d_alpha];
100#endif
101
102#if _DMODE == 5
103   const UINT8* salpha_table = epic12_device_colrtable[s_alpha];
104#endif
105#if _DMODE == 1
106   const UINT8* salpha_table = epic12_device_colrtable[s_alpha];
107#endif
108
109#endif
110
111#if _SMODE == 2
112#if _DMODE == 0
113
114   const UINT8* dalpha_table = epic12_device_colrtable[d_alpha];
115#endif
116#endif
117#endif
118
119
120
121   for (y = starty; y < dimy; y++)
122   {
123      bmp = &bitmap->pix(dst_y_start + y, dst_x_start+startx);
124      const int ysrc_index =  ((src_y + yf * y) & 0x0fff) * 0x2000;
125      gfx2 = gfx + ysrc_index;
126
127      #if FLIPX == 1
128         gfx2 += (src_x-startx);
129      #else
130         gfx2 += (src_x+startx);
131      #endif
132
133#if 1
134      const UINT32* end = bmp+(dimx-startx);
135#else
136      // maybe we can do some SSE type optimizations on larger blocks? right now this just results in more code and slower compiling tho.
137
138      const int width = dimx-startx;
139      const UINT32* end = bmp+(width);
140
141      if (width<0) return;
142
143      int bigblocks = width>>3;
144
145      while (bigblocks)
146      {
147         #include "epic12pixel.inc"
148         #include "epic12pixel.inc"
149         #include "epic12pixel.inc"
150         #include "epic12pixel.inc"
151         #include "epic12pixel.inc"
152         #include "epic12pixel.inc"
153         #include "epic12pixel.inc"
154         #include "epic12pixel.inc"
155
156         bigblocks--;
157      }
158#endif
159      while (bmp<end)
160      {
161         #include "epic12pixel.inc"
162      }
163
164   }
165
166//  g_profiler.stop();
167}
168
169#undef LOOP_INCREMENTS
Property changes on: trunk/src/emu/video/epic12in.inc
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit1.c
r0r26844
1#define REALLY_SIMPLE 0
2/* Non-Flipped, Non-Tinted, Non-Transparent */
3#define FLIPX 0
4#define TINT 0
5#define TRANSPARENT 0
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f0_ti0_tr0_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f0_ti0_tr0_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f0_ti0_tr0_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f0_ti0_tr0_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f0_ti0_tr0_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f0_ti0_tr0_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f0_ti0_tr0_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f0_ti0_tr0_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f0_ti0_tr0_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
Property changes on: trunk/src/emu/video/epic12_blit1.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit5.c
r0r26844
1#define REALLY_SIMPLE 0
2/* Non-Flipped, Tinted, Non-Transparent */
3#define FLIPX 0
4#define TINT 1
5#define TRANSPARENT 0
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f0_ti1_tr0_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f0_ti1_tr0_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f0_ti1_tr0_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f0_ti1_tr0_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f0_ti1_tr0_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f0_ti1_tr0_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f0_ti1_tr0_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f0_ti1_tr0_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f0_ti1_tr0_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
Property changes on: trunk/src/emu/video/epic12_blit5.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit2.c
r0r26844
1#define REALLY_SIMPLE 0
2/* X-Flipped, Non-Tinted, Transparent */
3#define FLIPX 1
4#define TINT 0
5#define TRANSPARENT 1
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f1_ti0_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f1_ti0_tr1_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f1_ti0_tr1_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f1_ti0_tr1_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f1_ti0_tr1_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f1_ti0_tr1_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f1_ti0_tr1_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f1_ti0_tr1_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f1_ti0_tr1_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
No newline at end of file
Property changes on: trunk/src/emu/video/epic12_blit2.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit6.c
r0r26844
1#define REALLY_SIMPLE 0
2/* X-Flipped, Tinted, Transparent */
3#define FLIPX 1
4#define TINT 1
5#define TRANSPARENT 1
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f1_ti1_tr1_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f1_ti1_tr1_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f1_ti1_tr1_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f1_ti1_tr1_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f1_ti1_tr1_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f1_ti1_tr1_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f1_ti1_tr1_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f1_ti1_tr1_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f1_ti1_tr1_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
557
558
Property changes on: trunk/src/emu/video/epic12_blit6.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/video/epic12pixel.inc
r0r26844
1/* This is the inner-most loop code (per-pixel) and thus the most performance sensitive part */
2
3#if FLIPX == 1
4#define LOOP_INCREMENTS \
5         bmp++;  \
6         gfx2--; \
7
8#else
9
10#define LOOP_INCREMENTS \
11         bmp++;  \
12         gfx2++; \
13
14#endif
15
16
17/*************** REALLY SIMPLE INNER LOOP, NON-BLENDED, NON-TINTED, SIMPLEST CASE ****************/
18#if REALLY_SIMPLE == 1
19
20#if TRANSPARENT == 1
21         pen = *gfx2;
22         if (pen & 0x20000000)
23         {
24         *bmp = pen;
25#else
26         *bmp = *gfx2;
27#endif
28
29/*************** REGULAR INNER LOOPS ****************/
30#else // NOT REALLY_SIMPLE
31
32         pen = *gfx2;
33
34#if TRANSPARENT == 1
35         if (pen & 0x20000000)
36         {
37#endif
38
39         // convert source to clr
40         pen_to_clr(pen, &s_clr.trgb);
41         //s_clr.u32 = (pen >> 3); // using the union is actually significantly slower than our pen_to_clr to function!
42         // source * intesity and clamp
43
44#if TINT == 1
45         clr_mul(&s_clr.trgb, tint_clr);
46#endif
47
48         #if BLENDED == 1
49
50            // convert destination to clr
51            pen_to_clr(*bmp, &d_clr.trgb);
52                //d_clr.u32 = *bmp >> 3; // using the union is actually significantly slower than our pen_to_clr to function!
53            #if _SMODE == 0
54            //g_profiler.start(PROFILER_USER7);
55
56
57               #if _DMODE == 0
58               //g_profiler.start(PROFILER_USER1);
59               // this is used extensively in the games (ingame, futari title screens etc.)
60
61               s_clr.trgb.r = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.r)]][dalpha_table[(d_clr.trgb.r)]];
62               s_clr.trgb.g = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.g)]][dalpha_table[(d_clr.trgb.g)]];
63               s_clr.trgb.b = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.b)]][dalpha_table[(d_clr.trgb.b)]];
64               #elif _DMODE == 1
65               //g_profiler.start(PROFILER_USER2);
66               // futari ~7%
67               s_clr.trgb.r = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.r)]][epic12_device_colrtable[(s_clr.trgb.r)][(d_clr.trgb.r)]];
68               s_clr.trgb.g = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.g)]][epic12_device_colrtable[(s_clr.trgb.g)][(d_clr.trgb.g)]];
69               s_clr.trgb.b = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.b)]][epic12_device_colrtable[(s_clr.trgb.b)][(d_clr.trgb.b)]];
70               #elif _DMODE == 2
71               //g_profiler.start(PROFILER_USER3);
72               clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb);
73               clr_add_with_clr_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
74               #elif _DMODE == 3
75               //g_profiler.start(PROFILER_USER4);
76               clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb);
77               clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
78
79               #elif _DMODE == 4
80               //g_profiler.start(PROFILER_USER5);
81               clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb);
82               clr_add_with_clr_mul_fixed_rev(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb);
83               #elif _DMODE == 5
84               // futari black character select ~13%
85               //g_profiler.start(PROFILER_USER6);
86               s_clr.trgb.r =  epic12_device_colrtable_add[salpha_table[(s_clr.trgb.r)]][epic12_device_colrtable_rev[(s_clr.trgb.r)][(d_clr.trgb.r)]];
87               s_clr.trgb.g =  epic12_device_colrtable_add[salpha_table[(s_clr.trgb.g)]][epic12_device_colrtable_rev[(s_clr.trgb.g)][(d_clr.trgb.g)]];
88               s_clr.trgb.b =  epic12_device_colrtable_add[salpha_table[(s_clr.trgb.b)]][epic12_device_colrtable_rev[(s_clr.trgb.b)][(d_clr.trgb.b)]];
89
90               #elif _DMODE == 6
91               //g_profiler.start(PROFILER_USER7);
92               clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb);
93               clr_add_with_clr_mul_rev_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
94               #elif _DMODE == 7
95               //g_profiler.start(PROFILER_USER8);
96               clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb);
97               clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
98               #endif
99
100            //g_profiler.stop();
101            #elif _SMODE == 1
102            //g_profiler.start(PROFILER_USER6);
103            clr_square(&clr0.trgb, &s_clr.trgb);
104
105            #elif _SMODE == 2
106         //  g_profiler.start(PROFILER_USER4);
107               #if _DMODE == 0
108               // this is used heavily on espgal2 highscore screen (~28%) optimized to avoid use of temp clr0 variable
109               s_clr.trgb.r = epic12_device_colrtable_add[epic12_device_colrtable[(d_clr.trgb.r)][(s_clr.trgb.r)]][dalpha_table[(d_clr.trgb.r)]];
110               s_clr.trgb.g = epic12_device_colrtable_add[epic12_device_colrtable[(d_clr.trgb.g)][(s_clr.trgb.g)]][dalpha_table[(d_clr.trgb.g)]];
111               s_clr.trgb.b = epic12_device_colrtable_add[epic12_device_colrtable[(d_clr.trgb.b)][(s_clr.trgb.b)]][dalpha_table[(d_clr.trgb.b)]];
112               #elif _DMODE == 1
113               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
114               clr_add_with_clr_mul_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb);
115               #elif _DMODE == 2
116               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
117               clr_add_with_clr_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
118               #elif _DMODE == 3
119               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
120               clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
121
122               #elif _DMODE == 4
123               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
124               clr_add_with_clr_mul_fixed_rev(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb);
125               #elif _DMODE == 5
126               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
127               clr_add_with_clr_mul_rev_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb);
128               #elif _DMODE == 6
129               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
130               clr_add_with_clr_mul_rev_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
131               #elif _DMODE == 7
132               clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
133               clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
134               #endif
135            //g_profiler.stop();
136
137            #elif _SMODE == 3
138            //g_profiler.start(PROFILER_USER1);
139            clr_copy(&clr0.trgb, &s_clr.trgb);
140
141            #elif _SMODE == 4
142            //g_profiler.start(PROFILER_USER2);
143            clr_mul_fixed_rev(&clr0.trgb, s_alpha, &s_clr.trgb);
144            #elif _SMODE == 5
145            //g_profiler.start(PROFILER_USER3);
146            clr_mul_rev_square(&clr0.trgb, &s_clr.trgb);
147            #elif _SMODE == 6
148            //g_profiler.start(PROFILER_USER4);
149            clr_mul_rev_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb);
150            #elif _SMODE == 7
151            //g_profiler.start(PROFILER_USER5);
152            clr_copy(&clr0.trgb, &s_clr.trgb);
153            #endif
154
155
156// smode 0/2 cases are already split up and handled above.
157#if _SMODE != 2
158#if _SMODE != 0
159
160            #if _DMODE == 0
161            clr_add_with_clr_mul_fixed(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb);
162            #elif _DMODE == 1
163            clr_add_with_clr_mul_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb);
164            #elif _DMODE == 2
165            clr_add_with_clr_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
166            #elif _DMODE == 3
167            clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
168
169            #elif _DMODE == 4
170            clr_add_with_clr_mul_fixed_rev(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb);
171            #elif _DMODE == 5
172            clr_add_with_clr_mul_rev_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb);
173            #elif _DMODE == 6
174            clr_add_with_clr_mul_rev_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
175            #elif _DMODE == 7
176            clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb);
177            #endif
178
179            //g_profiler.stop();
180#endif
181#endif
182
183
184         #endif
185
186         // write result
187         *bmp = clr_to_pen(&s_clr.trgb)|(pen&0x20000000);
188         //*bmp = (s_clr.u32<<3)|(pen&0x20000000); // using the union is actually significantly slower than our clr_to_pen function!
189
190#endif // END NOT REALLY SIMPLE
191
192#if TRANSPARENT == 1
193         }
194#endif
195         LOOP_INCREMENTS
196
Property changes on: trunk/src/emu/video/epic12pixel.inc
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit3.c
r0r26844
1#define REALLY_SIMPLE 0
2/* X-Flipped, Non-Tinted, Non-Transparent */
3#define FLIPX 1
4#define TINT 0
5#define TRANSPARENT 0
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f1_ti0_tr0_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f1_ti0_tr0_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f1_ti0_tr0_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f1_ti0_tr0_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f1_ti0_tr0_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f1_ti0_tr0_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f1_ti0_tr0_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f1_ti0_tr0_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f1_ti0_tr0_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
No newline at end of file
Property changes on: trunk/src/emu/video/epic12_blit3.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit7.c
r0r26844
1#define REALLY_SIMPLE 0
2/* X-Flipped, Tinted, Non-Transparent */
3#define FLIPX 1
4#define TINT 1
5#define TRANSPARENT 0
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f1_ti1_tr0_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f1_ti1_tr0_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f1_ti1_tr0_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f1_ti1_tr0_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f1_ti1_tr0_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f1_ti1_tr0_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f1_ti1_tr0_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f1_ti1_tr0_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f1_ti1_tr0_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
557
558
Property changes on: trunk/src/emu/video/epic12_blit7.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/video/epic12.c
r0r26844
1/* emulation of Altera Cyclone EPIC12 FPGA programmed as a blitter */
2
3#include "emu.h"
4#include "epic12.h"
5
6
7
8const device_type EPIC12 = &device_creator<epic12_device>;
9
10epic12_device::epic12_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
11   : device_t(mconfig, EPIC12, "epic12_device", tag, owner, clock, "epic12", __FILE__),
12      device_video_interface(mconfig, *this)
13{
14   m_is_unsafe = 0;
15   m_delay_scale = 0;
16   m_maincpu = 0;
17   queue = 0;
18   blitter_request = 0;
19   epic12_device_blitter_delay_timer = 0;
20   blitter_busy = 0;
21   use_ram = 0;
22   epic12_device_ram16 = 0;
23   epic12_device_gfx_addr = 0;
24   epic12_device_gfx_scroll_0_x = 0;
25   epic12_device_gfx_scroll_0_y = 0;
26   epic12_device_gfx_scroll_1_x = 0;
27   epic12_device_gfx_scroll_1_y = 0;
28   epic12_device_gfx_size = 0;
29   epic12_device_gfx_addr_shadowcopy = 0;
30   epic12_device_gfx_scroll_0_x_shadowcopy = 0;
31   epic12_device_gfx_scroll_0_y_shadowcopy = 0;
32   epic12_device_gfx_scroll_1_x_shadowcopy = 0;
33   epic12_device_gfx_scroll_1_y_shadowcopy = 0;
34   epic12_device_ram16_copy = 0;
35   epic12_device_blit_delay = 0;
36
37}
38
39TIMER_CALLBACK_MEMBER( epic12_device::epic12_device_blitter_delay_callback )
40{
41   blitter_busy = 0;
42}
43
44// static
45 void epic12_device::set_rambase(device_t &device, UINT16* rambase)
46{
47   epic12_device &dev = downcast<epic12_device &>(device);
48   dev.epic12_device_ram16 = rambase;
49}
50
51
52void epic12_device::set_delay_scale(device_t &device, int delay_scale)
53{
54   epic12_device &dev = downcast<epic12_device &>(device);
55   dev.m_delay_scale = delay_scale;
56}
57
58void epic12_device::set_is_unsafe(device_t &device, int is_unsafe)
59{
60   epic12_device &dev = downcast<epic12_device &>(device);
61   dev.m_is_unsafe = is_unsafe;
62
63}
64
65void epic12_device::set_cpu_device(device_t &device, legacy_cpu_device* maincpu)
66{
67   epic12_device &dev = downcast<epic12_device &>(device);
68   dev.m_maincpu = maincpu;
69}
70
71
72void epic12_device::device_start()
73{
74   epic12_device_gfx_size = 0x2000 * 0x1000;
75   epic12_device_bitmaps = auto_bitmap_rgb32_alloc(machine(), 0x2000, 0x1000);
76   epic12_device_clip = epic12_device_bitmaps->cliprect();
77
78   epic12_device_ram16_copy = auto_alloc_array(machine(), UINT16, m_main_ramsize/2);
79
80
81
82   epic12_device_blitter_delay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(epic12_device::epic12_device_blitter_delay_callback),this));
83   epic12_device_blitter_delay_timer->adjust(attotime::never);
84
85
86}
87
88void epic12_device::device_reset()
89{
90
91   if (m_is_unsafe)
92   {
93      use_ram = epic12_device_ram16;
94      queue = osd_work_queue_alloc(WORK_QUEUE_FLAG_HIGH_FREQ|WORK_QUEUE_FLAG_MULTI);
95   }
96   else
97   {
98      use_ram = epic12_device_ram16_copy; // slow mode
99      queue = osd_work_queue_alloc(WORK_QUEUE_FLAG_HIGH_FREQ);
100   }
101
102
103   // cache table to avoid divides in blit code, also pre-clamped
104   int x,y;
105   for (y=0;y<0x40;y++)
106   {
107      for (x=0;x<0x20;x++)
108      {
109         epic12_device_colrtable[x][y] = (x*y) / 0x1f;
110         if (epic12_device_colrtable[x][y]>0x1f) epic12_device_colrtable[x][y] = 0x1f;
111
112         epic12_device_colrtable_rev[x^0x1f][y] = (x*y) / 0x1f;
113         if (epic12_device_colrtable_rev[x^0x1f][y]>0x1f) epic12_device_colrtable_rev[x^0x1f][y] = 0x1f;
114      }
115   }
116
117   // preclamped add table
118   for (y=0;y<0x20;y++)
119   {
120      for (x=0;x<0x20;x++)
121      {
122         epic12_device_colrtable_add[x][y] = (x+y);
123         if (epic12_device_colrtable_add[x][y]>0x1f) epic12_device_colrtable_add[x][y] = 0x1f;
124      }
125   }
126
127   blitter_busy = 0;
128
129}
130
131// todo, get these into the device class without ruining performance
132UINT8 epic12_device_colrtable[0x20][0x40];
133UINT8 epic12_device_colrtable_rev[0x20][0x40];
134UINT8 epic12_device_colrtable_add[0x20][0x20];
135UINT64 epic12_device_blit_delay;
136
137inline UINT16 epic12_device::READ_NEXT_WORD(offs_t *addr)
138{
139//  UINT16 data = space.read_word(*addr); // going through the memory system is 'more correct' but noticably slower
140   UINT16 data =  use_ram[((*addr&(m_main_rammask))>>1)^3]; // this probably needs to be made endian safe tho
141   *addr += 2;
142
143//  printf("data %04x\n", data);
144   return data;
145}
146
147inline UINT16 epic12_device::COPY_NEXT_WORD(address_space &space, offs_t *addr)
148{
149//  UINT16 data = space.read_word(*addr); // going through the memory system is 'more correct' but noticably slower
150   UINT16 data =  epic12_device_ram16[((*addr&(m_main_rammask))>>1)^3]; // this probably needs to be made endian safe tho
151   epic12_device_ram16_copy[((*addr&(m_main_rammask))>>1)^3] = data;
152
153   *addr += 2;
154
155//  printf("data %04x\n", data);
156   return data;
157}
158
159
160inline void epic12_device::epic12_device_gfx_upload_shadow_copy(address_space &space, offs_t *addr)
161{
162   UINT32 x,y, dimx,dimy;
163   COPY_NEXT_WORD(space, addr);
164   COPY_NEXT_WORD(space, addr);
165   COPY_NEXT_WORD(space, addr);
166   COPY_NEXT_WORD(space, addr);
167   COPY_NEXT_WORD(space, addr);
168   COPY_NEXT_WORD(space, addr);
169
170   dimx = (COPY_NEXT_WORD(space, addr) & 0x1fff) + 1;
171   dimy = (COPY_NEXT_WORD(space, addr) & 0x0fff) + 1;
172
173   for (y = 0; y < dimy; y++)
174   {
175      for (x = 0; x < dimx; x++)
176      {
177         COPY_NEXT_WORD(space, addr);
178      }
179   }
180}
181
182inline void epic12_device::epic12_device_gfx_upload(offs_t *addr)
183{
184   UINT32 x,y, dst_p,dst_x_start,dst_y_start, dimx,dimy;
185   UINT32 *dst;
186
187   // 0x20000000
188   READ_NEXT_WORD(addr);
189   READ_NEXT_WORD(addr);
190
191   // 0x99999999
192   READ_NEXT_WORD(addr);
193   READ_NEXT_WORD(addr);
194
195   dst_x_start = READ_NEXT_WORD(addr);
196   dst_y_start = READ_NEXT_WORD(addr);
197
198   dst_p = 0;
199   dst_x_start &= 0x1fff;
200   dst_y_start &= 0x0fff;
201
202   dimx = (READ_NEXT_WORD(addr) & 0x1fff) + 1;
203   dimy = (READ_NEXT_WORD(addr) & 0x0fff) + 1;
204
205   logerror("GFX COPY: DST %02X,%02X,%03X DIM %02X,%03X\n", dst_p,dst_x_start,dst_y_start, dimx,dimy);
206
207   for (y = 0; y < dimy; y++)
208   {
209      dst = &epic12_device_bitmaps->pix(dst_y_start + y, 0);
210      dst += dst_x_start;
211
212      for (x = 0; x < dimx; x++)
213      {
214         UINT16 pendat = READ_NEXT_WORD(addr);
215         // real hw would upload the gfxword directly, but our VRAM is 32-bit, so convert it.
216         //dst[dst_x_start + x] = pendat;
217         *dst++ = ((pendat&0x8000)<<14) | ((pendat&0x7c00)<<9) | ((pendat&0x03e0)<<6) | ((pendat&0x001f)<<3);  // --t- ---- rrrr r--- gggg g--- bbbb b---  format
218         //dst[dst_x_start + x] = ((pendat&0x8000)<<14) | ((pendat&0x7c00)<<6) | ((pendat&0x03e0)<<3) | ((pendat&0x001f)<<0);  // --t- ---- ---r rrrr ---g gggg ---b bbbb  format
219
220
221      }
222   }
223}
224
225#define draw_params epic12_device_bitmaps, &epic12_device_clip, &epic12_device_bitmaps->pix(0,0),src_x,src_y, x,y, dimx,dimy, flipy, s_alpha, d_alpha, &tint_clr
226
227
228
229epic12_device_blitfunction epic12_device_f0_ti1_tr1_blit_funcs[] =
230{
231
232   epic12_device::draw_sprite_f0_ti1_tr1_s0_d0, epic12_device::draw_sprite_f0_ti1_tr1_s1_d0, epic12_device::draw_sprite_f0_ti1_tr1_s2_d0, epic12_device::draw_sprite_f0_ti1_tr1_s3_d0, epic12_device::draw_sprite_f0_ti1_tr1_s4_d0, epic12_device::draw_sprite_f0_ti1_tr1_s5_d0, epic12_device::draw_sprite_f0_ti1_tr1_s6_d0, epic12_device::draw_sprite_f0_ti1_tr1_s7_d0,
233   epic12_device::draw_sprite_f0_ti1_tr1_s0_d1, epic12_device::draw_sprite_f0_ti1_tr1_s1_d1, epic12_device::draw_sprite_f0_ti1_tr1_s2_d1, epic12_device::draw_sprite_f0_ti1_tr1_s3_d1, epic12_device::draw_sprite_f0_ti1_tr1_s4_d1, epic12_device::draw_sprite_f0_ti1_tr1_s5_d1, epic12_device::draw_sprite_f0_ti1_tr1_s6_d1, epic12_device::draw_sprite_f0_ti1_tr1_s7_d1,
234   epic12_device::draw_sprite_f0_ti1_tr1_s0_d2, epic12_device::draw_sprite_f0_ti1_tr1_s1_d2, epic12_device::draw_sprite_f0_ti1_tr1_s2_d2, epic12_device::draw_sprite_f0_ti1_tr1_s3_d2, epic12_device::draw_sprite_f0_ti1_tr1_s4_d2, epic12_device::draw_sprite_f0_ti1_tr1_s5_d2, epic12_device::draw_sprite_f0_ti1_tr1_s6_d2, epic12_device::draw_sprite_f0_ti1_tr1_s7_d2,
235   epic12_device::draw_sprite_f0_ti1_tr1_s0_d3, epic12_device::draw_sprite_f0_ti1_tr1_s1_d3, epic12_device::draw_sprite_f0_ti1_tr1_s2_d3, epic12_device::draw_sprite_f0_ti1_tr1_s3_d3, epic12_device::draw_sprite_f0_ti1_tr1_s4_d3, epic12_device::draw_sprite_f0_ti1_tr1_s5_d3, epic12_device::draw_sprite_f0_ti1_tr1_s6_d3, epic12_device::draw_sprite_f0_ti1_tr1_s7_d3,
236   epic12_device::draw_sprite_f0_ti1_tr1_s0_d4, epic12_device::draw_sprite_f0_ti1_tr1_s1_d4, epic12_device::draw_sprite_f0_ti1_tr1_s2_d4, epic12_device::draw_sprite_f0_ti1_tr1_s3_d4, epic12_device::draw_sprite_f0_ti1_tr1_s4_d4, epic12_device::draw_sprite_f0_ti1_tr1_s5_d4, epic12_device::draw_sprite_f0_ti1_tr1_s6_d4, epic12_device::draw_sprite_f0_ti1_tr1_s7_d4,
237   epic12_device::draw_sprite_f0_ti1_tr1_s0_d5, epic12_device::draw_sprite_f0_ti1_tr1_s1_d5, epic12_device::draw_sprite_f0_ti1_tr1_s2_d5, epic12_device::draw_sprite_f0_ti1_tr1_s3_d5, epic12_device::draw_sprite_f0_ti1_tr1_s4_d5, epic12_device::draw_sprite_f0_ti1_tr1_s5_d5, epic12_device::draw_sprite_f0_ti1_tr1_s6_d5, epic12_device::draw_sprite_f0_ti1_tr1_s7_d5,
238   epic12_device::draw_sprite_f0_ti1_tr1_s0_d6, epic12_device::draw_sprite_f0_ti1_tr1_s1_d6, epic12_device::draw_sprite_f0_ti1_tr1_s2_d6, epic12_device::draw_sprite_f0_ti1_tr1_s3_d6, epic12_device::draw_sprite_f0_ti1_tr1_s4_d6, epic12_device::draw_sprite_f0_ti1_tr1_s5_d6, epic12_device::draw_sprite_f0_ti1_tr1_s6_d6, epic12_device::draw_sprite_f0_ti1_tr1_s7_d6,
239   epic12_device::draw_sprite_f0_ti1_tr1_s0_d7, epic12_device::draw_sprite_f0_ti1_tr1_s1_d7, epic12_device::draw_sprite_f0_ti1_tr1_s2_d7, epic12_device::draw_sprite_f0_ti1_tr1_s3_d7, epic12_device::draw_sprite_f0_ti1_tr1_s4_d7, epic12_device::draw_sprite_f0_ti1_tr1_s5_d7, epic12_device::draw_sprite_f0_ti1_tr1_s6_d7, epic12_device::draw_sprite_f0_ti1_tr1_s7_d7,
240};
241
242epic12_device_blitfunction epic12_device_f0_ti1_tr0_blit_funcs[] =
243{
244
245   epic12_device::draw_sprite_f0_ti1_tr0_s0_d0, epic12_device::draw_sprite_f0_ti1_tr0_s1_d0, epic12_device::draw_sprite_f0_ti1_tr0_s2_d0, epic12_device::draw_sprite_f0_ti1_tr0_s3_d0, epic12_device::draw_sprite_f0_ti1_tr0_s4_d0, epic12_device::draw_sprite_f0_ti1_tr0_s5_d0, epic12_device::draw_sprite_f0_ti1_tr0_s6_d0, epic12_device::draw_sprite_f0_ti1_tr0_s7_d0,
246   epic12_device::draw_sprite_f0_ti1_tr0_s0_d1, epic12_device::draw_sprite_f0_ti1_tr0_s1_d1, epic12_device::draw_sprite_f0_ti1_tr0_s2_d1, epic12_device::draw_sprite_f0_ti1_tr0_s3_d1, epic12_device::draw_sprite_f0_ti1_tr0_s4_d1, epic12_device::draw_sprite_f0_ti1_tr0_s5_d1, epic12_device::draw_sprite_f0_ti1_tr0_s6_d1, epic12_device::draw_sprite_f0_ti1_tr0_s7_d1,
247   epic12_device::draw_sprite_f0_ti1_tr0_s0_d2, epic12_device::draw_sprite_f0_ti1_tr0_s1_d2, epic12_device::draw_sprite_f0_ti1_tr0_s2_d2, epic12_device::draw_sprite_f0_ti1_tr0_s3_d2, epic12_device::draw_sprite_f0_ti1_tr0_s4_d2, epic12_device::draw_sprite_f0_ti1_tr0_s5_d2, epic12_device::draw_sprite_f0_ti1_tr0_s6_d2, epic12_device::draw_sprite_f0_ti1_tr0_s7_d2,
248   epic12_device::draw_sprite_f0_ti1_tr0_s0_d3, epic12_device::draw_sprite_f0_ti1_tr0_s1_d3, epic12_device::draw_sprite_f0_ti1_tr0_s2_d3, epic12_device::draw_sprite_f0_ti1_tr0_s3_d3, epic12_device::draw_sprite_f0_ti1_tr0_s4_d3, epic12_device::draw_sprite_f0_ti1_tr0_s5_d3, epic12_device::draw_sprite_f0_ti1_tr0_s6_d3, epic12_device::draw_sprite_f0_ti1_tr0_s7_d3,
249   epic12_device::draw_sprite_f0_ti1_tr0_s0_d4, epic12_device::draw_sprite_f0_ti1_tr0_s1_d4, epic12_device::draw_sprite_f0_ti1_tr0_s2_d4, epic12_device::draw_sprite_f0_ti1_tr0_s3_d4, epic12_device::draw_sprite_f0_ti1_tr0_s4_d4, epic12_device::draw_sprite_f0_ti1_tr0_s5_d4, epic12_device::draw_sprite_f0_ti1_tr0_s6_d4, epic12_device::draw_sprite_f0_ti1_tr0_s7_d4,
250   epic12_device::draw_sprite_f0_ti1_tr0_s0_d5, epic12_device::draw_sprite_f0_ti1_tr0_s1_d5, epic12_device::draw_sprite_f0_ti1_tr0_s2_d5, epic12_device::draw_sprite_f0_ti1_tr0_s3_d5, epic12_device::draw_sprite_f0_ti1_tr0_s4_d5, epic12_device::draw_sprite_f0_ti1_tr0_s5_d5, epic12_device::draw_sprite_f0_ti1_tr0_s6_d5, epic12_device::draw_sprite_f0_ti1_tr0_s7_d5,
251   epic12_device::draw_sprite_f0_ti1_tr0_s0_d6, epic12_device::draw_sprite_f0_ti1_tr0_s1_d6, epic12_device::draw_sprite_f0_ti1_tr0_s2_d6, epic12_device::draw_sprite_f0_ti1_tr0_s3_d6, epic12_device::draw_sprite_f0_ti1_tr0_s4_d6, epic12_device::draw_sprite_f0_ti1_tr0_s5_d6, epic12_device::draw_sprite_f0_ti1_tr0_s6_d6, epic12_device::draw_sprite_f0_ti1_tr0_s7_d6,
252   epic12_device::draw_sprite_f0_ti1_tr0_s0_d7, epic12_device::draw_sprite_f0_ti1_tr0_s1_d7, epic12_device::draw_sprite_f0_ti1_tr0_s2_d7, epic12_device::draw_sprite_f0_ti1_tr0_s3_d7, epic12_device::draw_sprite_f0_ti1_tr0_s4_d7, epic12_device::draw_sprite_f0_ti1_tr0_s5_d7, epic12_device::draw_sprite_f0_ti1_tr0_s6_d7, epic12_device::draw_sprite_f0_ti1_tr0_s7_d7,
253};
254
255epic12_device_blitfunction epic12_device_f1_ti1_tr1_blit_funcs[] =
256{
257
258   epic12_device::draw_sprite_f1_ti1_tr1_s0_d0, epic12_device::draw_sprite_f1_ti1_tr1_s1_d0, epic12_device::draw_sprite_f1_ti1_tr1_s2_d0, epic12_device::draw_sprite_f1_ti1_tr1_s3_d0, epic12_device::draw_sprite_f1_ti1_tr1_s4_d0, epic12_device::draw_sprite_f1_ti1_tr1_s5_d0, epic12_device::draw_sprite_f1_ti1_tr1_s6_d0, epic12_device::draw_sprite_f1_ti1_tr1_s7_d0,
259   epic12_device::draw_sprite_f1_ti1_tr1_s0_d1, epic12_device::draw_sprite_f1_ti1_tr1_s1_d1, epic12_device::draw_sprite_f1_ti1_tr1_s2_d1, epic12_device::draw_sprite_f1_ti1_tr1_s3_d1, epic12_device::draw_sprite_f1_ti1_tr1_s4_d1, epic12_device::draw_sprite_f1_ti1_tr1_s5_d1, epic12_device::draw_sprite_f1_ti1_tr1_s6_d1, epic12_device::draw_sprite_f1_ti1_tr1_s7_d1,
260   epic12_device::draw_sprite_f1_ti1_tr1_s0_d2, epic12_device::draw_sprite_f1_ti1_tr1_s1_d2, epic12_device::draw_sprite_f1_ti1_tr1_s2_d2, epic12_device::draw_sprite_f1_ti1_tr1_s3_d2, epic12_device::draw_sprite_f1_ti1_tr1_s4_d2, epic12_device::draw_sprite_f1_ti1_tr1_s5_d2, epic12_device::draw_sprite_f1_ti1_tr1_s6_d2, epic12_device::draw_sprite_f1_ti1_tr1_s7_d2,
261   epic12_device::draw_sprite_f1_ti1_tr1_s0_d3, epic12_device::draw_sprite_f1_ti1_tr1_s1_d3, epic12_device::draw_sprite_f1_ti1_tr1_s2_d3, epic12_device::draw_sprite_f1_ti1_tr1_s3_d3, epic12_device::draw_sprite_f1_ti1_tr1_s4_d3, epic12_device::draw_sprite_f1_ti1_tr1_s5_d3, epic12_device::draw_sprite_f1_ti1_tr1_s6_d3, epic12_device::draw_sprite_f1_ti1_tr1_s7_d3,
262   epic12_device::draw_sprite_f1_ti1_tr1_s0_d4, epic12_device::draw_sprite_f1_ti1_tr1_s1_d4, epic12_device::draw_sprite_f1_ti1_tr1_s2_d4, epic12_device::draw_sprite_f1_ti1_tr1_s3_d4, epic12_device::draw_sprite_f1_ti1_tr1_s4_d4, epic12_device::draw_sprite_f1_ti1_tr1_s5_d4, epic12_device::draw_sprite_f1_ti1_tr1_s6_d4, epic12_device::draw_sprite_f1_ti1_tr1_s7_d4,
263   epic12_device::draw_sprite_f1_ti1_tr1_s0_d5, epic12_device::draw_sprite_f1_ti1_tr1_s1_d5, epic12_device::draw_sprite_f1_ti1_tr1_s2_d5, epic12_device::draw_sprite_f1_ti1_tr1_s3_d5, epic12_device::draw_sprite_f1_ti1_tr1_s4_d5, epic12_device::draw_sprite_f1_ti1_tr1_s5_d5, epic12_device::draw_sprite_f1_ti1_tr1_s6_d5, epic12_device::draw_sprite_f1_ti1_tr1_s7_d5,
264   epic12_device::draw_sprite_f1_ti1_tr1_s0_d6, epic12_device::draw_sprite_f1_ti1_tr1_s1_d6, epic12_device::draw_sprite_f1_ti1_tr1_s2_d6, epic12_device::draw_sprite_f1_ti1_tr1_s3_d6, epic12_device::draw_sprite_f1_ti1_tr1_s4_d6, epic12_device::draw_sprite_f1_ti1_tr1_s5_d6, epic12_device::draw_sprite_f1_ti1_tr1_s6_d6, epic12_device::draw_sprite_f1_ti1_tr1_s7_d6,
265   epic12_device::draw_sprite_f1_ti1_tr1_s0_d7, epic12_device::draw_sprite_f1_ti1_tr1_s1_d7, epic12_device::draw_sprite_f1_ti1_tr1_s2_d7, epic12_device::draw_sprite_f1_ti1_tr1_s3_d7, epic12_device::draw_sprite_f1_ti1_tr1_s4_d7, epic12_device::draw_sprite_f1_ti1_tr1_s5_d7, epic12_device::draw_sprite_f1_ti1_tr1_s6_d7, epic12_device::draw_sprite_f1_ti1_tr1_s7_d7,
266};
267
268epic12_device_blitfunction epic12_device_f1_ti1_tr0_blit_funcs[] =
269{
270
271   epic12_device::draw_sprite_f1_ti1_tr0_s0_d0, epic12_device::draw_sprite_f1_ti1_tr0_s1_d0, epic12_device::draw_sprite_f1_ti1_tr0_s2_d0, epic12_device::draw_sprite_f1_ti1_tr0_s3_d0, epic12_device::draw_sprite_f1_ti1_tr0_s4_d0, epic12_device::draw_sprite_f1_ti1_tr0_s5_d0, epic12_device::draw_sprite_f1_ti1_tr0_s6_d0, epic12_device::draw_sprite_f1_ti1_tr0_s7_d0,
272   epic12_device::draw_sprite_f1_ti1_tr0_s0_d1, epic12_device::draw_sprite_f1_ti1_tr0_s1_d1, epic12_device::draw_sprite_f1_ti1_tr0_s2_d1, epic12_device::draw_sprite_f1_ti1_tr0_s3_d1, epic12_device::draw_sprite_f1_ti1_tr0_s4_d1, epic12_device::draw_sprite_f1_ti1_tr0_s5_d1, epic12_device::draw_sprite_f1_ti1_tr0_s6_d1, epic12_device::draw_sprite_f1_ti1_tr0_s7_d1,
273   epic12_device::draw_sprite_f1_ti1_tr0_s0_d2, epic12_device::draw_sprite_f1_ti1_tr0_s1_d2, epic12_device::draw_sprite_f1_ti1_tr0_s2_d2, epic12_device::draw_sprite_f1_ti1_tr0_s3_d2, epic12_device::draw_sprite_f1_ti1_tr0_s4_d2, epic12_device::draw_sprite_f1_ti1_tr0_s5_d2, epic12_device::draw_sprite_f1_ti1_tr0_s6_d2, epic12_device::draw_sprite_f1_ti1_tr0_s7_d2,
274   epic12_device::draw_sprite_f1_ti1_tr0_s0_d3, epic12_device::draw_sprite_f1_ti1_tr0_s1_d3, epic12_device::draw_sprite_f1_ti1_tr0_s2_d3, epic12_device::draw_sprite_f1_ti1_tr0_s3_d3, epic12_device::draw_sprite_f1_ti1_tr0_s4_d3, epic12_device::draw_sprite_f1_ti1_tr0_s5_d3, epic12_device::draw_sprite_f1_ti1_tr0_s6_d3, epic12_device::draw_sprite_f1_ti1_tr0_s7_d3,
275   epic12_device::draw_sprite_f1_ti1_tr0_s0_d4, epic12_device::draw_sprite_f1_ti1_tr0_s1_d4, epic12_device::draw_sprite_f1_ti1_tr0_s2_d4, epic12_device::draw_sprite_f1_ti1_tr0_s3_d4, epic12_device::draw_sprite_f1_ti1_tr0_s4_d4, epic12_device::draw_sprite_f1_ti1_tr0_s5_d4, epic12_device::draw_sprite_f1_ti1_tr0_s6_d4, epic12_device::draw_sprite_f1_ti1_tr0_s7_d4,
276   epic12_device::draw_sprite_f1_ti1_tr0_s0_d5, epic12_device::draw_sprite_f1_ti1_tr0_s1_d5, epic12_device::draw_sprite_f1_ti1_tr0_s2_d5, epic12_device::draw_sprite_f1_ti1_tr0_s3_d5, epic12_device::draw_sprite_f1_ti1_tr0_s4_d5, epic12_device::draw_sprite_f1_ti1_tr0_s5_d5, epic12_device::draw_sprite_f1_ti1_tr0_s6_d5, epic12_device::draw_sprite_f1_ti1_tr0_s7_d5,
277   epic12_device::draw_sprite_f1_ti1_tr0_s0_d6, epic12_device::draw_sprite_f1_ti1_tr0_s1_d6, epic12_device::draw_sprite_f1_ti1_tr0_s2_d6, epic12_device::draw_sprite_f1_ti1_tr0_s3_d6, epic12_device::draw_sprite_f1_ti1_tr0_s4_d6, epic12_device::draw_sprite_f1_ti1_tr0_s5_d6, epic12_device::draw_sprite_f1_ti1_tr0_s6_d6, epic12_device::draw_sprite_f1_ti1_tr0_s7_d6,
278   epic12_device::draw_sprite_f1_ti1_tr0_s0_d7, epic12_device::draw_sprite_f1_ti1_tr0_s1_d7, epic12_device::draw_sprite_f1_ti1_tr0_s2_d7, epic12_device::draw_sprite_f1_ti1_tr0_s3_d7, epic12_device::draw_sprite_f1_ti1_tr0_s4_d7, epic12_device::draw_sprite_f1_ti1_tr0_s5_d7, epic12_device::draw_sprite_f1_ti1_tr0_s6_d7, epic12_device::draw_sprite_f1_ti1_tr0_s7_d7,
279};
280
281
282
283epic12_device_blitfunction epic12_device_f0_ti0_tr1_blit_funcs[] =
284{
285
286   epic12_device::draw_sprite_f0_ti0_tr1_s0_d0, epic12_device::draw_sprite_f0_ti0_tr1_s1_d0, epic12_device::draw_sprite_f0_ti0_tr1_s2_d0, epic12_device::draw_sprite_f0_ti0_tr1_s3_d0, epic12_device::draw_sprite_f0_ti0_tr1_s4_d0, epic12_device::draw_sprite_f0_ti0_tr1_s5_d0, epic12_device::draw_sprite_f0_ti0_tr1_s6_d0, epic12_device::draw_sprite_f0_ti0_tr1_s7_d0,
287   epic12_device::draw_sprite_f0_ti0_tr1_s0_d1, epic12_device::draw_sprite_f0_ti0_tr1_s1_d1, epic12_device::draw_sprite_f0_ti0_tr1_s2_d1, epic12_device::draw_sprite_f0_ti0_tr1_s3_d1, epic12_device::draw_sprite_f0_ti0_tr1_s4_d1, epic12_device::draw_sprite_f0_ti0_tr1_s5_d1, epic12_device::draw_sprite_f0_ti0_tr1_s6_d1, epic12_device::draw_sprite_f0_ti0_tr1_s7_d1,
288   epic12_device::draw_sprite_f0_ti0_tr1_s0_d2, epic12_device::draw_sprite_f0_ti0_tr1_s1_d2, epic12_device::draw_sprite_f0_ti0_tr1_s2_d2, epic12_device::draw_sprite_f0_ti0_tr1_s3_d2, epic12_device::draw_sprite_f0_ti0_tr1_s4_d2, epic12_device::draw_sprite_f0_ti0_tr1_s5_d2, epic12_device::draw_sprite_f0_ti0_tr1_s6_d2, epic12_device::draw_sprite_f0_ti0_tr1_s7_d2,
289   epic12_device::draw_sprite_f0_ti0_tr1_s0_d3, epic12_device::draw_sprite_f0_ti0_tr1_s1_d3, epic12_device::draw_sprite_f0_ti0_tr1_s2_d3, epic12_device::draw_sprite_f0_ti0_tr1_s3_d3, epic12_device::draw_sprite_f0_ti0_tr1_s4_d3, epic12_device::draw_sprite_f0_ti0_tr1_s5_d3, epic12_device::draw_sprite_f0_ti0_tr1_s6_d3, epic12_device::draw_sprite_f0_ti0_tr1_s7_d3,
290   epic12_device::draw_sprite_f0_ti0_tr1_s0_d4, epic12_device::draw_sprite_f0_ti0_tr1_s1_d4, epic12_device::draw_sprite_f0_ti0_tr1_s2_d4, epic12_device::draw_sprite_f0_ti0_tr1_s3_d4, epic12_device::draw_sprite_f0_ti0_tr1_s4_d4, epic12_device::draw_sprite_f0_ti0_tr1_s5_d4, epic12_device::draw_sprite_f0_ti0_tr1_s6_d4, epic12_device::draw_sprite_f0_ti0_tr1_s7_d4,
291   epic12_device::draw_sprite_f0_ti0_tr1_s0_d5, epic12_device::draw_sprite_f0_ti0_tr1_s1_d5, epic12_device::draw_sprite_f0_ti0_tr1_s2_d5, epic12_device::draw_sprite_f0_ti0_tr1_s3_d5, epic12_device::draw_sprite_f0_ti0_tr1_s4_d5, epic12_device::draw_sprite_f0_ti0_tr1_s5_d5, epic12_device::draw_sprite_f0_ti0_tr1_s6_d5, epic12_device::draw_sprite_f0_ti0_tr1_s7_d5,
292   epic12_device::draw_sprite_f0_ti0_tr1_s0_d6, epic12_device::draw_sprite_f0_ti0_tr1_s1_d6, epic12_device::draw_sprite_f0_ti0_tr1_s2_d6, epic12_device::draw_sprite_f0_ti0_tr1_s3_d6, epic12_device::draw_sprite_f0_ti0_tr1_s4_d6, epic12_device::draw_sprite_f0_ti0_tr1_s5_d6, epic12_device::draw_sprite_f0_ti0_tr1_s6_d6, epic12_device::draw_sprite_f0_ti0_tr1_s7_d6,
293   epic12_device::draw_sprite_f0_ti0_tr1_s0_d7, epic12_device::draw_sprite_f0_ti0_tr1_s1_d7, epic12_device::draw_sprite_f0_ti0_tr1_s2_d7, epic12_device::draw_sprite_f0_ti0_tr1_s3_d7, epic12_device::draw_sprite_f0_ti0_tr1_s4_d7, epic12_device::draw_sprite_f0_ti0_tr1_s5_d7, epic12_device::draw_sprite_f0_ti0_tr1_s6_d7, epic12_device::draw_sprite_f0_ti0_tr1_s7_d7,
294};
295
296epic12_device_blitfunction epic12_device_f0_ti0_tr0_blit_funcs[] =
297{
298
299   epic12_device::draw_sprite_f0_ti0_tr0_s0_d0, epic12_device::draw_sprite_f0_ti0_tr0_s1_d0, epic12_device::draw_sprite_f0_ti0_tr0_s2_d0, epic12_device::draw_sprite_f0_ti0_tr0_s3_d0, epic12_device::draw_sprite_f0_ti0_tr0_s4_d0, epic12_device::draw_sprite_f0_ti0_tr0_s5_d0, epic12_device::draw_sprite_f0_ti0_tr0_s6_d0, epic12_device::draw_sprite_f0_ti0_tr0_s7_d0,
300   epic12_device::draw_sprite_f0_ti0_tr0_s0_d1, epic12_device::draw_sprite_f0_ti0_tr0_s1_d1, epic12_device::draw_sprite_f0_ti0_tr0_s2_d1, epic12_device::draw_sprite_f0_ti0_tr0_s3_d1, epic12_device::draw_sprite_f0_ti0_tr0_s4_d1, epic12_device::draw_sprite_f0_ti0_tr0_s5_d1, epic12_device::draw_sprite_f0_ti0_tr0_s6_d1, epic12_device::draw_sprite_f0_ti0_tr0_s7_d1,
301   epic12_device::draw_sprite_f0_ti0_tr0_s0_d2, epic12_device::draw_sprite_f0_ti0_tr0_s1_d2, epic12_device::draw_sprite_f0_ti0_tr0_s2_d2, epic12_device::draw_sprite_f0_ti0_tr0_s3_d2, epic12_device::draw_sprite_f0_ti0_tr0_s4_d2, epic12_device::draw_sprite_f0_ti0_tr0_s5_d2, epic12_device::draw_sprite_f0_ti0_tr0_s6_d2, epic12_device::draw_sprite_f0_ti0_tr0_s7_d2,
302   epic12_device::draw_sprite_f0_ti0_tr0_s0_d3, epic12_device::draw_sprite_f0_ti0_tr0_s1_d3, epic12_device::draw_sprite_f0_ti0_tr0_s2_d3, epic12_device::draw_sprite_f0_ti0_tr0_s3_d3, epic12_device::draw_sprite_f0_ti0_tr0_s4_d3, epic12_device::draw_sprite_f0_ti0_tr0_s5_d3, epic12_device::draw_sprite_f0_ti0_tr0_s6_d3, epic12_device::draw_sprite_f0_ti0_tr0_s7_d3,
303   epic12_device::draw_sprite_f0_ti0_tr0_s0_d4, epic12_device::draw_sprite_f0_ti0_tr0_s1_d4, epic12_device::draw_sprite_f0_ti0_tr0_s2_d4, epic12_device::draw_sprite_f0_ti0_tr0_s3_d4, epic12_device::draw_sprite_f0_ti0_tr0_s4_d4, epic12_device::draw_sprite_f0_ti0_tr0_s5_d4, epic12_device::draw_sprite_f0_ti0_tr0_s6_d4, epic12_device::draw_sprite_f0_ti0_tr0_s7_d4,
304   epic12_device::draw_sprite_f0_ti0_tr0_s0_d5, epic12_device::draw_sprite_f0_ti0_tr0_s1_d5, epic12_device::draw_sprite_f0_ti0_tr0_s2_d5, epic12_device::draw_sprite_f0_ti0_tr0_s3_d5, epic12_device::draw_sprite_f0_ti0_tr0_s4_d5, epic12_device::draw_sprite_f0_ti0_tr0_s5_d5, epic12_device::draw_sprite_f0_ti0_tr0_s6_d5, epic12_device::draw_sprite_f0_ti0_tr0_s7_d5,
305   epic12_device::draw_sprite_f0_ti0_tr0_s0_d6, epic12_device::draw_sprite_f0_ti0_tr0_s1_d6, epic12_device::draw_sprite_f0_ti0_tr0_s2_d6, epic12_device::draw_sprite_f0_ti0_tr0_s3_d6, epic12_device::draw_sprite_f0_ti0_tr0_s4_d6, epic12_device::draw_sprite_f0_ti0_tr0_s5_d6, epic12_device::draw_sprite_f0_ti0_tr0_s6_d6, epic12_device::draw_sprite_f0_ti0_tr0_s7_d6,
306   epic12_device::draw_sprite_f0_ti0_tr0_s0_d7, epic12_device::draw_sprite_f0_ti0_tr0_s1_d7, epic12_device::draw_sprite_f0_ti0_tr0_s2_d7, epic12_device::draw_sprite_f0_ti0_tr0_s3_d7, epic12_device::draw_sprite_f0_ti0_tr0_s4_d7, epic12_device::draw_sprite_f0_ti0_tr0_s5_d7, epic12_device::draw_sprite_f0_ti0_tr0_s6_d7, epic12_device::draw_sprite_f0_ti0_tr0_s7_d7,
307};
308
309epic12_device_blitfunction epic12_device_f1_ti0_tr1_blit_funcs[] =
310{
311
312   epic12_device::draw_sprite_f1_ti0_tr1_s0_d0, epic12_device::draw_sprite_f1_ti0_tr1_s1_d0, epic12_device::draw_sprite_f1_ti0_tr1_s2_d0, epic12_device::draw_sprite_f1_ti0_tr1_s3_d0, epic12_device::draw_sprite_f1_ti0_tr1_s4_d0, epic12_device::draw_sprite_f1_ti0_tr1_s5_d0, epic12_device::draw_sprite_f1_ti0_tr1_s6_d0, epic12_device::draw_sprite_f1_ti0_tr1_s7_d0,
313   epic12_device::draw_sprite_f1_ti0_tr1_s0_d1, epic12_device::draw_sprite_f1_ti0_tr1_s1_d1, epic12_device::draw_sprite_f1_ti0_tr1_s2_d1, epic12_device::draw_sprite_f1_ti0_tr1_s3_d1, epic12_device::draw_sprite_f1_ti0_tr1_s4_d1, epic12_device::draw_sprite_f1_ti0_tr1_s5_d1, epic12_device::draw_sprite_f1_ti0_tr1_s6_d1, epic12_device::draw_sprite_f1_ti0_tr1_s7_d1,
314   epic12_device::draw_sprite_f1_ti0_tr1_s0_d2, epic12_device::draw_sprite_f1_ti0_tr1_s1_d2, epic12_device::draw_sprite_f1_ti0_tr1_s2_d2, epic12_device::draw_sprite_f1_ti0_tr1_s3_d2, epic12_device::draw_sprite_f1_ti0_tr1_s4_d2, epic12_device::draw_sprite_f1_ti0_tr1_s5_d2, epic12_device::draw_sprite_f1_ti0_tr1_s6_d2, epic12_device::draw_sprite_f1_ti0_tr1_s7_d2,
315   epic12_device::draw_sprite_f1_ti0_tr1_s0_d3, epic12_device::draw_sprite_f1_ti0_tr1_s1_d3, epic12_device::draw_sprite_f1_ti0_tr1_s2_d3, epic12_device::draw_sprite_f1_ti0_tr1_s3_d3, epic12_device::draw_sprite_f1_ti0_tr1_s4_d3, epic12_device::draw_sprite_f1_ti0_tr1_s5_d3, epic12_device::draw_sprite_f1_ti0_tr1_s6_d3, epic12_device::draw_sprite_f1_ti0_tr1_s7_d3,
316   epic12_device::draw_sprite_f1_ti0_tr1_s0_d4, epic12_device::draw_sprite_f1_ti0_tr1_s1_d4, epic12_device::draw_sprite_f1_ti0_tr1_s2_d4, epic12_device::draw_sprite_f1_ti0_tr1_s3_d4, epic12_device::draw_sprite_f1_ti0_tr1_s4_d4, epic12_device::draw_sprite_f1_ti0_tr1_s5_d4, epic12_device::draw_sprite_f1_ti0_tr1_s6_d4, epic12_device::draw_sprite_f1_ti0_tr1_s7_d4,
317   epic12_device::draw_sprite_f1_ti0_tr1_s0_d5, epic12_device::draw_sprite_f1_ti0_tr1_s1_d5, epic12_device::draw_sprite_f1_ti0_tr1_s2_d5, epic12_device::draw_sprite_f1_ti0_tr1_s3_d5, epic12_device::draw_sprite_f1_ti0_tr1_s4_d5, epic12_device::draw_sprite_f1_ti0_tr1_s5_d5, epic12_device::draw_sprite_f1_ti0_tr1_s6_d5, epic12_device::draw_sprite_f1_ti0_tr1_s7_d5,
318   epic12_device::draw_sprite_f1_ti0_tr1_s0_d6, epic12_device::draw_sprite_f1_ti0_tr1_s1_d6, epic12_device::draw_sprite_f1_ti0_tr1_s2_d6, epic12_device::draw_sprite_f1_ti0_tr1_s3_d6, epic12_device::draw_sprite_f1_ti0_tr1_s4_d6, epic12_device::draw_sprite_f1_ti0_tr1_s5_d6, epic12_device::draw_sprite_f1_ti0_tr1_s6_d6, epic12_device::draw_sprite_f1_ti0_tr1_s7_d6,
319   epic12_device::draw_sprite_f1_ti0_tr1_s0_d7, epic12_device::draw_sprite_f1_ti0_tr1_s1_d7, epic12_device::draw_sprite_f1_ti0_tr1_s2_d7, epic12_device::draw_sprite_f1_ti0_tr1_s3_d7, epic12_device::draw_sprite_f1_ti0_tr1_s4_d7, epic12_device::draw_sprite_f1_ti0_tr1_s5_d7, epic12_device::draw_sprite_f1_ti0_tr1_s6_d7, epic12_device::draw_sprite_f1_ti0_tr1_s7_d7,
320};
321
322epic12_device_blitfunction epic12_device_f1_ti0_tr0_blit_funcs[] =
323{
324
325   epic12_device::draw_sprite_f1_ti0_tr0_s0_d0, epic12_device::draw_sprite_f1_ti0_tr0_s1_d0, epic12_device::draw_sprite_f1_ti0_tr0_s2_d0, epic12_device::draw_sprite_f1_ti0_tr0_s3_d0, epic12_device::draw_sprite_f1_ti0_tr0_s4_d0, epic12_device::draw_sprite_f1_ti0_tr0_s5_d0, epic12_device::draw_sprite_f1_ti0_tr0_s6_d0, epic12_device::draw_sprite_f1_ti0_tr0_s7_d0,
326   epic12_device::draw_sprite_f1_ti0_tr0_s0_d1, epic12_device::draw_sprite_f1_ti0_tr0_s1_d1, epic12_device::draw_sprite_f1_ti0_tr0_s2_d1, epic12_device::draw_sprite_f1_ti0_tr0_s3_d1, epic12_device::draw_sprite_f1_ti0_tr0_s4_d1, epic12_device::draw_sprite_f1_ti0_tr0_s5_d1, epic12_device::draw_sprite_f1_ti0_tr0_s6_d1, epic12_device::draw_sprite_f1_ti0_tr0_s7_d1,
327   epic12_device::draw_sprite_f1_ti0_tr0_s0_d2, epic12_device::draw_sprite_f1_ti0_tr0_s1_d2, epic12_device::draw_sprite_f1_ti0_tr0_s2_d2, epic12_device::draw_sprite_f1_ti0_tr0_s3_d2, epic12_device::draw_sprite_f1_ti0_tr0_s4_d2, epic12_device::draw_sprite_f1_ti0_tr0_s5_d2, epic12_device::draw_sprite_f1_ti0_tr0_s6_d2, epic12_device::draw_sprite_f1_ti0_tr0_s7_d2,
328   epic12_device::draw_sprite_f1_ti0_tr0_s0_d3, epic12_device::draw_sprite_f1_ti0_tr0_s1_d3, epic12_device::draw_sprite_f1_ti0_tr0_s2_d3, epic12_device::draw_sprite_f1_ti0_tr0_s3_d3, epic12_device::draw_sprite_f1_ti0_tr0_s4_d3, epic12_device::draw_sprite_f1_ti0_tr0_s5_d3, epic12_device::draw_sprite_f1_ti0_tr0_s6_d3, epic12_device::draw_sprite_f1_ti0_tr0_s7_d3,
329   epic12_device::draw_sprite_f1_ti0_tr0_s0_d4, epic12_device::draw_sprite_f1_ti0_tr0_s1_d4, epic12_device::draw_sprite_f1_ti0_tr0_s2_d4, epic12_device::draw_sprite_f1_ti0_tr0_s3_d4, epic12_device::draw_sprite_f1_ti0_tr0_s4_d4, epic12_device::draw_sprite_f1_ti0_tr0_s5_d4, epic12_device::draw_sprite_f1_ti0_tr0_s6_d4, epic12_device::draw_sprite_f1_ti0_tr0_s7_d4,
330   epic12_device::draw_sprite_f1_ti0_tr0_s0_d5, epic12_device::draw_sprite_f1_ti0_tr0_s1_d5, epic12_device::draw_sprite_f1_ti0_tr0_s2_d5, epic12_device::draw_sprite_f1_ti0_tr0_s3_d5, epic12_device::draw_sprite_f1_ti0_tr0_s4_d5, epic12_device::draw_sprite_f1_ti0_tr0_s5_d5, epic12_device::draw_sprite_f1_ti0_tr0_s6_d5, epic12_device::draw_sprite_f1_ti0_tr0_s7_d5,
331   epic12_device::draw_sprite_f1_ti0_tr0_s0_d6, epic12_device::draw_sprite_f1_ti0_tr0_s1_d6, epic12_device::draw_sprite_f1_ti0_tr0_s2_d6, epic12_device::draw_sprite_f1_ti0_tr0_s3_d6, epic12_device::draw_sprite_f1_ti0_tr0_s4_d6, epic12_device::draw_sprite_f1_ti0_tr0_s5_d6, epic12_device::draw_sprite_f1_ti0_tr0_s6_d6, epic12_device::draw_sprite_f1_ti0_tr0_s7_d6,
332   epic12_device::draw_sprite_f1_ti0_tr0_s0_d7, epic12_device::draw_sprite_f1_ti0_tr0_s1_d7, epic12_device::draw_sprite_f1_ti0_tr0_s2_d7, epic12_device::draw_sprite_f1_ti0_tr0_s3_d7, epic12_device::draw_sprite_f1_ti0_tr0_s4_d7, epic12_device::draw_sprite_f1_ti0_tr0_s5_d7, epic12_device::draw_sprite_f1_ti0_tr0_s6_d7, epic12_device::draw_sprite_f1_ti0_tr0_s7_d7,
333};
334
335
336
337inline void epic12_device::epic12_device_gfx_draw_shadow_copy(address_space &space, offs_t *addr, int cliptype)
338{
339   COPY_NEXT_WORD(space, addr);
340   COPY_NEXT_WORD(space, addr);
341   COPY_NEXT_WORD(space, addr);
342   COPY_NEXT_WORD(space, addr);
343   COPY_NEXT_WORD(space, addr); // UINT16 dst_x_start  =   COPY_NEXT_WORD(space, addr);
344   COPY_NEXT_WORD(space, addr); // UINT16 dst_y_start  =   COPY_NEXT_WORD(space, addr);
345   UINT16 w      =   COPY_NEXT_WORD(space, addr);
346   UINT16 h      =   COPY_NEXT_WORD(space, addr);
347   COPY_NEXT_WORD(space, addr);
348   COPY_NEXT_WORD(space, addr);
349
350
351
352   // todo, calcualte clipping.
353   epic12_device_blit_delay += w*h;
354
355}
356
357
358
359inline void epic12_device::epic12_device_gfx_draw(offs_t *addr)
360{
361   int   x,y, dimx,dimy, flipx,flipy;//, src_p;
362   int trans,blend, s_mode, d_mode;
363   clr_t tint_clr;
364   int tinted = 0;
365
366   UINT16 attr      =   READ_NEXT_WORD(addr);
367   UINT16 alpha   =   READ_NEXT_WORD(addr);
368   UINT16 src_x   =   READ_NEXT_WORD(addr);
369   UINT16 src_y   =   READ_NEXT_WORD(addr);
370   UINT16 dst_x_start   =   READ_NEXT_WORD(addr);
371   UINT16 dst_y_start   =   READ_NEXT_WORD(addr);
372   UINT16 w      =   READ_NEXT_WORD(addr);
373   UINT16 h      =   READ_NEXT_WORD(addr);
374   UINT16 tint_r   =   READ_NEXT_WORD(addr);
375   UINT16 tint_gb   =   READ_NEXT_WORD(addr);
376
377   // 0: +alpha
378   // 1: +source
379   // 2: +dest
380   // 3: *
381   // 4: -alpha
382   // 5: -source
383   // 6: -dest
384   // 7: *
385
386   d_mode   =    attr & 0x0007;
387   s_mode   =   (attr & 0x0070) >> 4;
388
389   trans   =    attr & 0x0100;
390   blend   =      attr & 0x0200;
391
392   flipy   =    attr & 0x0400;
393   flipx   =    attr & 0x0800;
394
395   const UINT8 d_alpha   =   ((alpha & 0x00ff)       )>>3;
396   const UINT8 s_alpha   =   ((alpha & 0xff00) >> 8  )>>3;
397
398//  src_p   =   0;
399   src_x   =   src_x & 0x1fff;
400   src_y   =   src_y & 0x0fff;
401
402
403   x      =   (dst_x_start & 0x7fff) - (dst_x_start & 0x8000);
404   y      =   (dst_y_start & 0x7fff) - (dst_y_start & 0x8000);
405
406   dimx   =   (w & 0x1fff) + 1;
407   dimy   =   (h & 0x0fff) + 1;
408
409   // convert parameters to clr
410
411
412   tint_to_clr(tint_r & 0x00ff, (tint_gb >>  8) & 0xff, tint_gb & 0xff, &tint_clr);
413
414   /* interestingly this gets set to 0x20 for 'normal' not 0x1f */
415
416   if (tint_clr.r!=0x20)
417      tinted = 1;
418
419   if (tint_clr.g!=0x20)
420      tinted = 1;
421
422   if (tint_clr.b!=0x20)
423      tinted = 1;
424
425
426   // surprisingly frequent, need to verify if it produces a worthwhile speedup tho.
427   if ((s_mode==0 && s_alpha==0x1f) && (d_mode==4 && d_alpha==0x1f))
428      blend = 0;
429
430   if (tinted)
431   {
432      if (!flipx)
433      {
434         if (trans)
435         {
436            if (!blend)
437            {
438               draw_sprite_f0_ti1_tr1_plain(draw_params);
439            }
440            else
441            {
442               epic12_device_f0_ti1_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params);
443            }
444         }
445         else
446         {
447         if (!blend)
448            {
449               draw_sprite_f0_ti1_tr0_plain(draw_params);
450            }
451            else
452            {
453               epic12_device_f0_ti1_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params);
454            }
455         }
456      }
457      else // flipx
458      {
459         if (trans)
460         {
461            if (!blend)
462            {
463               draw_sprite_f1_ti1_tr1_plain(draw_params);
464            }
465            else
466            {
467               epic12_device_f1_ti1_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params);
468            }
469         }
470         else
471         {
472         if (!blend)
473            {
474               draw_sprite_f1_ti1_tr0_plain(draw_params);
475            }
476            else
477            {
478               epic12_device_f1_ti1_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params);
479            }
480         }
481      }
482   }
483   else
484   {
485
486      if (blend==0 && tinted==0)
487      {
488         if (!flipx)
489         {
490            if (trans)
491            {
492               draw_sprite_f0_ti0_tr1_simple(draw_params);
493            }
494            else
495            {
496               draw_sprite_f0_ti0_tr0_simple(draw_params);
497            }
498         }
499         else
500         {
501            if (trans)
502            {
503               draw_sprite_f1_ti0_tr1_simple(draw_params);
504            }
505            else
506            {
507               draw_sprite_f1_ti0_tr0_simple(draw_params);
508            }
509
510         }
511
512         return;
513      }
514
515
516
517      //printf("smode %d dmode %d\n", s_mode, d_mode);
518
519      if (!flipx)
520      {
521         if (trans)
522         {
523            if (!blend)
524            {
525               draw_sprite_f0_ti0_plain(draw_params);
526            }
527            else
528            {
529               epic12_device_f0_ti0_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params);
530            }
531         }
532         else
533         {
534         if (!blend)
535            {
536               draw_sprite_f0_ti0_tr0_plain(draw_params);
537            }
538            else
539            {
540               epic12_device_f0_ti0_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params);
541            }
542         }
543      }
544      else // flipx
545      {
546         if (trans)
547         {
548            if (!blend)
549            {
550               draw_sprite_f1_ti0_plain(draw_params);
551            }
552            else
553            {
554               epic12_device_f1_ti0_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params);
555            }
556         }
557         else
558         {
559         if (!blend)
560            {
561               draw_sprite_f1_ti0_tr0_plain(draw_params);
562            }
563            else
564            {
565               epic12_device_f1_ti0_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params);
566            }
567         }
568      }
569   }
570
571
572
573}
574
575
576void epic12_device::epic12_device_gfx_create_shadow_copy(address_space &space)
577{
578   offs_t addr = epic12_device_gfx_addr & 0x1fffffff;
579   UINT16 cliptype = 0;
580
581   epic12_device_clip.min_x = epic12_device_gfx_scroll_1_x_shadowcopy;
582   epic12_device_clip.min_y = epic12_device_gfx_scroll_1_y_shadowcopy;
583   epic12_device_clip.max_x = epic12_device_clip.min_x + 320-1;
584   epic12_device_clip.max_y = epic12_device_clip.min_y + 240-1;
585
586   while (1)
587   {
588      UINT16 data = COPY_NEXT_WORD(space, &addr);
589
590      switch( data & 0xf000 )
591      {
592         case 0x0000:
593         case 0xf000:
594            return;
595
596         case 0xc000:
597            data = COPY_NEXT_WORD(space, &addr);
598
599            cliptype = data ? 1 : 0;
600
601            if (cliptype)
602            {
603               epic12_device_clip.min_x = epic12_device_gfx_scroll_1_x_shadowcopy;
604               epic12_device_clip.min_y = epic12_device_gfx_scroll_1_y_shadowcopy;
605               epic12_device_clip.max_x = epic12_device_clip.min_x + 320-1;
606               epic12_device_clip.max_y = epic12_device_clip.min_y + 240-1;
607            }
608            else
609            {
610               epic12_device_clip.min_x = 0;
611               epic12_device_clip.min_y = 0;
612               epic12_device_clip.max_x = 0x2000-1;
613               epic12_device_clip.max_y = 0x1000-1;
614            }
615
616            break;
617
618         case 0x2000:
619            addr -= 2;
620            epic12_device_gfx_upload_shadow_copy(space, &addr);
621            break;
622
623         case 0x1000:
624            addr -= 2;
625            epic12_device_gfx_draw_shadow_copy(space, &addr, cliptype);
626            break;
627
628         default:
629            popmessage("GFX op = %04X", data);
630            return;
631      }
632   }
633}
634
635
636void epic12_device::epic12_device_gfx_exec(void)
637{
638   UINT16 cliptype = 0;
639
640   offs_t addr = epic12_device_gfx_addr_shadowcopy & 0x1fffffff;
641
642//  logerror("GFX EXEC: %08X\n", addr);
643
644   epic12_device_clip.min_x = epic12_device_gfx_scroll_1_x_shadowcopy;
645   epic12_device_clip.min_y = epic12_device_gfx_scroll_1_y_shadowcopy;
646   epic12_device_clip.max_x = epic12_device_clip.min_x + 320-1;
647   epic12_device_clip.max_y = epic12_device_clip.min_y + 240-1;
648
649   while (1)
650   {
651      UINT16 data = READ_NEXT_WORD(&addr);
652
653      switch( data & 0xf000 )
654      {
655         case 0x0000:
656         case 0xf000:
657            return;
658
659         case 0xc000:
660            data = READ_NEXT_WORD(&addr);
661            cliptype = data ? 1 : 0;
662
663            if (cliptype)
664            {
665               epic12_device_clip.min_x = epic12_device_gfx_scroll_1_x_shadowcopy;
666               epic12_device_clip.min_y = epic12_device_gfx_scroll_1_y_shadowcopy;
667               epic12_device_clip.max_x = epic12_device_clip.min_x + 320-1;
668               epic12_device_clip.max_y = epic12_device_clip.min_y + 240-1;
669            }
670            else
671            {
672               epic12_device_clip.min_x = 0;
673               epic12_device_clip.min_y = 0;
674               epic12_device_clip.max_x = 0x2000-1;
675               epic12_device_clip.max_y = 0x1000-1;
676            }
677            break;
678
679         case 0x2000:
680            addr -= 2;
681            epic12_device_gfx_upload(&addr);
682            break;
683
684         case 0x1000:
685            addr -= 2;
686            epic12_device_gfx_draw(&addr);
687            break;
688
689         default:
690            popmessage("GFX op = %04X", data);
691            return;
692      }
693   }
694}
695
696
697void epic12_device::epic12_device_gfx_exec_unsafe(void)
698{
699   UINT16 cliptype = 0;
700
701   offs_t addr = epic12_device_gfx_addr & 0x1fffffff;
702
703//  logerror("GFX EXEC: %08X\n", addr);
704
705   epic12_device_clip.min_x = epic12_device_gfx_scroll_1_x;
706   epic12_device_clip.min_y = epic12_device_gfx_scroll_1_y;
707   epic12_device_clip.max_x = epic12_device_clip.min_x + 320-1;
708   epic12_device_clip.max_y = epic12_device_clip.min_y + 240-1;
709
710   while (1)
711   {
712      UINT16 data = READ_NEXT_WORD(&addr);
713
714      switch( data & 0xf000 )
715      {
716         case 0x0000:
717         case 0xf000:
718            return;
719
720         case 0xc000:
721            data = READ_NEXT_WORD(&addr);
722            cliptype = data ? 1 : 0;
723
724            if (cliptype)
725            {
726               epic12_device_clip.min_x = epic12_device_gfx_scroll_1_x;
727               epic12_device_clip.min_y = epic12_device_gfx_scroll_1_y;
728               epic12_device_clip.max_x = epic12_device_clip.min_x  + 320-1;
729               epic12_device_clip.max_y = epic12_device_clip.min_y + 240-1;
730            }
731            else
732            {
733               epic12_device_clip.min_x = 0;
734               epic12_device_clip.min_y = 0;
735               epic12_device_clip.max_x = 0x2000-1;
736               epic12_device_clip.max_y = 0x1000-1;
737            }
738            break;
739
740         case 0x2000:
741            addr -= 2;
742            epic12_device_gfx_upload(&addr);
743            break;
744
745         case 0x1000:
746            addr -= 2;
747            epic12_device_gfx_draw(&addr);
748            break;
749
750         default:
751            popmessage("GFX op = %04X", data);
752            return;
753      }
754   }
755}
756
757
758
759void *epic12_device::blit_request_callback(void *param, int threadid)
760{
761   epic12_device *object = reinterpret_cast<epic12_device *>(param);
762
763   object->epic12_device_gfx_exec();
764   return NULL;
765}
766
767
768
769void *epic12_device::blit_request_callback_unsafe(void *param, int threadid)
770{
771   epic12_device *object = reinterpret_cast<epic12_device *>(param);
772
773   epic12_device_blit_delay = 0;
774   object->epic12_device_gfx_exec_unsafe();
775   return NULL;
776}
777
778
779READ32_MEMBER( epic12_device::epic12_device_gfx_ready_r )
780{
781   return 0x00000010;
782}
783
784READ32_MEMBER( epic12_device::epic12_device_gfx_ready_r_unsafe )
785{
786   if (blitter_busy)
787   {
788      m_maincpu->spin_until_time(attotime::from_usec(10));
789      return 0x00000000;
790   }
791   else
792      return 0x00000010;
793}
794
795WRITE32_MEMBER( epic12_device::epic12_device_gfx_exec_w )
796{
797   if ( ACCESSING_BITS_0_7 )
798   {
799      if (data & 1)
800      {
801         //g_profiler.start(PROFILER_USER1);
802         // make sure we've not already got a request running
803         if (blitter_request)
804         {
805            int result;
806            do
807            {
808               result = osd_work_item_wait(blitter_request, 1000);
809            } while (result==0);
810            osd_work_item_release(blitter_request);
811         }
812
813         epic12_device_blit_delay = 0;
814         epic12_device_gfx_create_shadow_copy(space); // create a copy of the blit list so we can safely thread it.
815
816         if (epic12_device_blit_delay)
817         {
818            blitter_busy = 1;
819            epic12_device_blitter_delay_timer->adjust(attotime::from_nsec(epic12_device_blit_delay*8)); // NOT accurate timing (currently ignored anyway)
820         }
821
822         epic12_device_gfx_addr_shadowcopy = epic12_device_gfx_addr;
823         epic12_device_gfx_scroll_0_x_shadowcopy =  epic12_device_gfx_scroll_0_x;
824         epic12_device_gfx_scroll_0_y_shadowcopy = epic12_device_gfx_scroll_0_y;
825         epic12_device_gfx_scroll_1_x_shadowcopy = epic12_device_gfx_scroll_1_x;
826         epic12_device_gfx_scroll_1_y_shadowcopy = epic12_device_gfx_scroll_1_y;
827         blitter_request = osd_work_item_queue(queue, blit_request_callback, (void*)this, 0);
828         //g_profiler.stop();
829      }
830   }
831}
832
833
834WRITE32_MEMBER( epic12_device::epic12_device_gfx_exec_w_unsafe )
835{
836   if ( ACCESSING_BITS_0_7 )
837   {
838      if (data & 1)
839      {
840         //g_profiler.start(PROFILER_USER1);
841         // make sure we've not already got a request running
842         if (blitter_request)
843         {
844            int result;
845            do
846            {
847               result = osd_work_item_wait(blitter_request, 1000);
848            } while (result==0);
849            osd_work_item_release(blitter_request);
850         }
851
852         if (epic12_device_blit_delay)
853         {
854            blitter_busy = 1;
855            int delay = epic12_device_blit_delay*(15 * m_delay_scale / 50);
856            //printf("delay %d\n", delay);
857            epic12_device_blitter_delay_timer->adjust(attotime::from_nsec(delay));
858         }
859         else
860         {
861            blitter_busy = 0;
862         }
863
864         blitter_request = osd_work_item_queue(queue, blit_request_callback_unsafe, (void*)this, 0);
865         //g_profiler.stop();
866      }
867   }
868}
869
870
871void epic12_device::draw_screen(bitmap_rgb32 &bitmap, const rectangle &cliprect )
872{
873   if (!m_is_unsafe)
874   {
875      if (blitter_request)
876      {
877         int result;
878         do
879         {
880            result = osd_work_item_wait(blitter_request, 1000);
881         } while (result==0);
882         osd_work_item_release(blitter_request);
883      }
884   }
885
886   int scroll_0_x, scroll_0_y;
887//  int scroll_1_x, scroll_1_y;
888
889   bitmap.fill(0, cliprect);
890
891   scroll_0_x = -epic12_device_gfx_scroll_0_x;
892   scroll_0_y = -epic12_device_gfx_scroll_0_y;
893//  scroll_1_x = -epic12_device_gfx_scroll_1_x;
894//  scroll_1_y = -epic12_device_gfx_scroll_1_y;
895
896   //printf("SCREEN UPDATE\n %d %d %d %d\n", scroll_0_x, scroll_0_y, scroll_1_x, scroll_1_y);
897
898   copyscrollbitmap(bitmap, *epic12_device_bitmaps, 1,&scroll_0_x, 1,&scroll_0_y, cliprect);
899}
900
901
902
903
904
905   
906READ32_MEMBER( epic12_device::epic12_device_blitter_r )
907{
908   switch (offset*4)
909   {
910      case 0x10:
911         return epic12_device::epic12_device_gfx_ready_r(space,offset,mem_mask);
912
913      case 0x24:
914         return 0xffffffff;
915
916      case 0x28:
917         return 0xffffffff;
918
919      case 0x50:
920         return space.machine().root_device().ioport(":DSW")->read();
921
922      default:
923         logerror("unknownepic12_device_blitter_r %08x %08x\n", offset*4, mem_mask);
924         break;
925
926   }
927   return 0;
928}
929
930READ32_MEMBER( epic12_device::epic12_device_blitter_r_unsafe )
931{
932   switch (offset*4)
933   {
934      case 0x10:
935         return epic12_device::epic12_device_gfx_ready_r_unsafe(space,offset,mem_mask);
936
937      case 0x24:
938         return 0xffffffff;
939
940      case 0x28:
941         return 0xffffffff;
942
943      case 0x50:
944         return space.machine().root_device().ioport(":DSW")->read();
945
946      default:
947         logerror("unknownepic12_device_blitter_r %08x %08x\n", offset*4, mem_mask);
948         break;
949
950   }
951   return 0;
952}
953
954
955WRITE32_MEMBER( epic12_device::epic12_device_blitter_w )
956{
957   switch (offset*4)
958   {
959      case 0x04:
960         epic12_device_gfx_exec_w(space,offset,data,mem_mask);
961         break;
962
963      case 0x08:
964         COMBINE_DATA(&epic12_device_gfx_addr);
965         break;
966
967      case 0x14:
968         COMBINE_DATA(&epic12_device_gfx_scroll_0_x);
969         break;
970
971      case 0x18:
972         COMBINE_DATA(&epic12_device_gfx_scroll_0_y);
973         break;
974
975      case 0x40:
976         COMBINE_DATA(&epic12_device_gfx_scroll_1_x);
977         break;
978
979      case 0x44:
980         COMBINE_DATA(&epic12_device_gfx_scroll_1_y);
981         break;
982
983   }
984}
985
986WRITE32_MEMBER( epic12_device::epic12_device_blitter_w_unsafe )
987{
988   switch (offset*4)
989   {
990      case 0x04:
991         epic12_device_gfx_exec_w_unsafe(space,offset,data,mem_mask);
992         break;
993
994      case 0x08:
995         COMBINE_DATA(&epic12_device_gfx_addr);
996         break;
997
998      case 0x14:
999         COMBINE_DATA(&epic12_device_gfx_scroll_0_x);
1000         break;
1001
1002      case 0x18:
1003         COMBINE_DATA(&epic12_device_gfx_scroll_0_y);
1004         break;
1005
1006      case 0x40:
1007         COMBINE_DATA(&epic12_device_gfx_scroll_1_x);
1008         break;
1009
1010      case 0x44:
1011         COMBINE_DATA(&epic12_device_gfx_scroll_1_y);
1012         break;
1013
1014   }
1015}
1016
1017void epic12_device::install_handlers(int addr1, int addr2)
1018{
1019   address_space &space = m_maincpu->space(AS_PROGRAM);
1020
1021   read32_delegate read;
1022   write32_delegate write;
1023
1024   if (m_is_unsafe)
1025   {
1026      printf("using unsafe blit code!\n");
1027      read = read32_delegate(FUNC(epic12_device::epic12_device_blitter_r_unsafe), this);
1028      write = write32_delegate(FUNC(epic12_device::epic12_device_blitter_w_unsafe), this);
1029   }
1030   else
1031   {
1032      read = read32_delegate(FUNC(epic12_device::epic12_device_blitter_r), this);
1033      write = write32_delegate(FUNC(epic12_device::epic12_device_blitter_w), this);
1034   }
1035
1036   space.install_readwrite_handler(addr1, addr2, read , write, U64(0xffffffffffffffff));
1037
1038
1039
1040}
1041
1042READ64_MEMBER( epic12_device::epic12_device_fpga_r )
1043{
1044   return 0xff;
1045}
1046
1047// todo, store what's written here and checksum it, different microcode probably leads to slightly different blitter timings
1048WRITE64_MEMBER( epic12_device::epic12_device_fpga_w )
1049{
1050   if (ACCESSING_BITS_24_31)
1051   {
1052      // data & 0x08 = CE
1053      // data & 0x10 = CLK
1054      // data & 0x20 = DATA
1055   }
1056}
Property changes on: trunk/src/emu/video/epic12.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/video/epic12.h
r0r26844
1
2#define MCFG_EPIC12_ADD(_tag) \
3   MCFG_DEVICE_ADD(_tag, EPIC12, 0)
4
5//#define MCFG_EP1C12_ADD(_tag,_config,_map)
6//   MCFG_DEVICE_CONFIG(_config)
7//   MCFG_DEVICE_ADDRESS_MAP(AS_0, _map)
8
9#define MCFG_EPIC12_SET_MAINRAMSIZE( _rgn ) \
10   epic12_device::set_mainramsize(*device, _rgn);
11
12
13extern UINT8 epic12_device_colrtable[0x20][0x40];
14extern UINT8 epic12_device_colrtable_rev[0x20][0x40];
15extern UINT8 epic12_device_colrtable_add[0x20][0x20];
16extern UINT64 epic12_device_blit_delay;
17
18struct _clr_t
19{
20   UINT8 b,g,r,t;
21};
22
23typedef struct _clr_t clr_t;
24
25union colour_t
26{
27   clr_t trgb;
28   UINT32 u32;
29};
30
31typedef const void (*epic12_device_blitfunction)(bitmap_rgb32 *,
32                const rectangle *,
33                UINT32 *, /* gfx */
34                int , /* src_x */
35                int , /* src_y */
36                const int , /* dst_x_start */
37                const int , /* dst_y_start */
38                int , /* dimx */
39                int , /* dimy */
40                const int , /* flipy */
41                const UINT8 , /* s_alpha */
42                const UINT8 , /* d_alpha */
43                //int , /* tint */
44                const clr_t * );
45
46
47class epic12_device : public device_t,
48   public device_video_interface
49{
50public:
51   epic12_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
52
53   static void set_rambase(device_t &device, UINT16* rambase);
54
55   inline UINT16 READ_NEXT_WORD(offs_t *addr);
56
57   static void set_mainramsize(device_t &device, int ramsize)
58   {
59      epic12_device &dev = downcast<epic12_device &>(device);
60      dev.m_main_ramsize = ramsize;
61      dev.m_main_rammask = ramsize-1;
62   }
63
64
65   static void *blit_request_callback(void *param, int threadid);
66
67   DECLARE_READ64_MEMBER( epic12_device_fpga_r );
68   DECLARE_WRITE64_MEMBER( epic12_device_fpga_w );
69
70   void draw_screen(bitmap_rgb32 &bitmap, const rectangle &cliprect );
71
72   UINT16* epic12_device_ram16;
73   UINT32 epic12_device_gfx_addr;
74   UINT32 epic12_device_gfx_scroll_0_x, epic12_device_gfx_scroll_0_y;
75   UINT32 epic12_device_gfx_scroll_1_x, epic12_device_gfx_scroll_1_y;
76
77
78   int epic12_device_gfx_size;
79   bitmap_rgb32 *epic12_device_bitmaps;
80   rectangle epic12_device_clip;
81
82   
83   UINT16* use_ram;
84   int m_main_ramsize; // type D has double the main ram
85   int m_main_rammask;
86
87   // thread safe mode, with no delays & shadow ram copy
88   DECLARE_READ32_MEMBER(epic12_device_blitter_r);
89   DECLARE_WRITE32_MEMBER(epic12_device_blitter_w);
90   UINT32 epic12_device_gfx_addr_shadowcopy;
91   UINT32 epic12_device_gfx_scroll_0_x_shadowcopy, epic12_device_gfx_scroll_0_y_shadowcopy;
92   UINT32 epic12_device_gfx_scroll_1_x_shadowcopy, epic12_device_gfx_scroll_1_y_shadowcopy;
93   UINT16* epic12_device_ram16_copy;
94   inline void epic12_device_gfx_upload_shadow_copy(address_space &space, offs_t *addr);
95   inline void epic12_device_gfx_create_shadow_copy(address_space &space);
96   inline UINT16 COPY_NEXT_WORD(address_space &space, offs_t *addr);
97   inline void epic12_device_gfx_draw_shadow_copy(address_space &space, offs_t *addr, int cliptype);
98   inline void epic12_device_gfx_upload(offs_t *addr);
99   inline void epic12_device_gfx_draw(offs_t *addr);
100   void epic12_device_gfx_exec(void);
101   DECLARE_READ32_MEMBER( epic12_device_gfx_ready_r );
102   DECLARE_WRITE32_MEMBER( epic12_device_gfx_exec_w );
103
104
105   // for thread unsafe mode with blitter delays, no shadow copy of RAM
106   DECLARE_READ32_MEMBER(epic12_device_blitter_r_unsafe);
107   DECLARE_WRITE32_MEMBER(epic12_device_blitter_w_unsafe);
108   READ32_MEMBER( epic12_device_gfx_ready_r_unsafe );
109   WRITE32_MEMBER( epic12_device_gfx_exec_w_unsafe );
110   void epic12_device_gfx_exec_unsafe(void);
111   static void *blit_request_callback_unsafe(void *param, int threadid);
112
113   int m_is_unsafe;
114   int m_delay_scale;
115   legacy_cpu_device* m_maincpu;
116
117   static void set_delay_scale(device_t &device, int delay_scale);
118   static void set_is_unsafe(device_t &device, int is_unsafe);
119   static void set_cpu_device(device_t &device, legacy_cpu_device* maincpu);
120
121   void install_handlers(int addr1, int addr2);
122
123#define BLIT_FUNCTION static const void
124#define BLIT_PARAMS bitmap_rgb32 *bitmap, const rectangle *clip, UINT32 *gfx, int src_x, int src_y, const int dst_x_start, const int dst_y_start, int dimx, int dimy, const int flipy, const UINT8 s_alpha, const UINT8 d_alpha, const clr_t *tint_clr
125
126   BLIT_FUNCTION draw_sprite_f0_ti0_plain(BLIT_PARAMS);
127   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d0(BLIT_PARAMS);
128   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d0(BLIT_PARAMS);
129   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d0(BLIT_PARAMS);
130   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d0(BLIT_PARAMS);
131   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d0(BLIT_PARAMS);
132   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d0(BLIT_PARAMS);
133   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d0(BLIT_PARAMS);
134   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d0(BLIT_PARAMS);
135   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d1(BLIT_PARAMS);
136   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d1(BLIT_PARAMS);
137   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d1(BLIT_PARAMS);
138   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d1(BLIT_PARAMS);
139   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d1(BLIT_PARAMS);
140   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d1(BLIT_PARAMS);
141   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d1(BLIT_PARAMS);
142   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d1(BLIT_PARAMS);
143   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d2(BLIT_PARAMS);
144   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d2(BLIT_PARAMS);
145   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d2(BLIT_PARAMS);
146   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d2(BLIT_PARAMS);
147   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d2(BLIT_PARAMS);
148   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d2(BLIT_PARAMS);
149   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d2(BLIT_PARAMS);
150   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d2(BLIT_PARAMS);
151   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d3(BLIT_PARAMS);
152   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d3(BLIT_PARAMS);
153   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d3(BLIT_PARAMS);
154   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d3(BLIT_PARAMS);
155   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d3(BLIT_PARAMS);
156   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d3(BLIT_PARAMS);
157   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d3(BLIT_PARAMS);
158   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d3(BLIT_PARAMS);
159   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d4(BLIT_PARAMS);
160   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d4(BLIT_PARAMS);
161   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d4(BLIT_PARAMS);
162   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d4(BLIT_PARAMS);
163   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d4(BLIT_PARAMS);
164   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d4(BLIT_PARAMS);
165   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d4(BLIT_PARAMS);
166   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d4(BLIT_PARAMS);
167   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d5(BLIT_PARAMS);
168   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d5(BLIT_PARAMS);
169   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d5(BLIT_PARAMS);
170   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d5(BLIT_PARAMS);
171   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d5(BLIT_PARAMS);
172   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d5(BLIT_PARAMS);
173   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d5(BLIT_PARAMS);
174   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d5(BLIT_PARAMS);
175   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d6(BLIT_PARAMS);
176   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d6(BLIT_PARAMS);
177   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d6(BLIT_PARAMS);
178   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d6(BLIT_PARAMS);
179   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d6(BLIT_PARAMS);
180   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d6(BLIT_PARAMS);
181   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d6(BLIT_PARAMS);
182   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d6(BLIT_PARAMS);
183   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s0_d7(BLIT_PARAMS);
184   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s1_d7(BLIT_PARAMS);
185   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s2_d7(BLIT_PARAMS);
186   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s3_d7(BLIT_PARAMS);
187   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s4_d7(BLIT_PARAMS);
188   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s5_d7(BLIT_PARAMS);
189   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s6_d7(BLIT_PARAMS);
190   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_s7_d7(BLIT_PARAMS);
191
192   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_plain(BLIT_PARAMS);
193   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d0(BLIT_PARAMS);
194   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d0(BLIT_PARAMS);
195   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d0(BLIT_PARAMS);
196   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d0(BLIT_PARAMS);
197   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d0(BLIT_PARAMS);
198   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d0(BLIT_PARAMS);
199   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d0(BLIT_PARAMS);
200   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d0(BLIT_PARAMS);
201   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d1(BLIT_PARAMS);
202   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d1(BLIT_PARAMS);
203   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d1(BLIT_PARAMS);
204   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d1(BLIT_PARAMS);
205   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d1(BLIT_PARAMS);
206   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d1(BLIT_PARAMS);
207   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d1(BLIT_PARAMS);
208   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d1(BLIT_PARAMS);
209   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d2(BLIT_PARAMS);
210   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d2(BLIT_PARAMS);
211   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d2(BLIT_PARAMS);
212   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d2(BLIT_PARAMS);
213   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d2(BLIT_PARAMS);
214   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d2(BLIT_PARAMS);
215   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d2(BLIT_PARAMS);
216   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d2(BLIT_PARAMS);
217   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d3(BLIT_PARAMS);
218   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d3(BLIT_PARAMS);
219   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d3(BLIT_PARAMS);
220   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d3(BLIT_PARAMS);
221   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d3(BLIT_PARAMS);
222   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d3(BLIT_PARAMS);
223   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d3(BLIT_PARAMS);
224   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d3(BLIT_PARAMS);
225   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d4(BLIT_PARAMS);
226   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d4(BLIT_PARAMS);
227   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d4(BLIT_PARAMS);
228   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d4(BLIT_PARAMS);
229   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d4(BLIT_PARAMS);
230   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d4(BLIT_PARAMS);
231   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d4(BLIT_PARAMS);
232   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d4(BLIT_PARAMS);
233   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d5(BLIT_PARAMS);
234   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d5(BLIT_PARAMS);
235   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d5(BLIT_PARAMS);
236   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d5(BLIT_PARAMS);
237   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d5(BLIT_PARAMS);
238   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d5(BLIT_PARAMS);
239   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d5(BLIT_PARAMS);
240   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d5(BLIT_PARAMS);
241   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d6(BLIT_PARAMS);
242   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d6(BLIT_PARAMS);
243   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d6(BLIT_PARAMS);
244   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d6(BLIT_PARAMS);
245   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d6(BLIT_PARAMS);
246   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d6(BLIT_PARAMS);
247   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d6(BLIT_PARAMS);
248   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d6(BLIT_PARAMS);
249   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s0_d7(BLIT_PARAMS);
250   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s1_d7(BLIT_PARAMS);
251   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s2_d7(BLIT_PARAMS);
252   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s3_d7(BLIT_PARAMS);
253   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s4_d7(BLIT_PARAMS);
254   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s5_d7(BLIT_PARAMS);
255   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s6_d7(BLIT_PARAMS);
256   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_s7_d7(BLIT_PARAMS);
257
258   BLIT_FUNCTION draw_sprite_f1_ti0_plain(BLIT_PARAMS);
259   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d0(BLIT_PARAMS);
260   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d0(BLIT_PARAMS);
261   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d0(BLIT_PARAMS);
262   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d0(BLIT_PARAMS);
263   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d0(BLIT_PARAMS);
264   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d0(BLIT_PARAMS);
265   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d0(BLIT_PARAMS);
266   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d0(BLIT_PARAMS);
267   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d1(BLIT_PARAMS);
268   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d1(BLIT_PARAMS);
269   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d1(BLIT_PARAMS);
270   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d1(BLIT_PARAMS);
271   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d1(BLIT_PARAMS);
272   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d1(BLIT_PARAMS);
273   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d1(BLIT_PARAMS);
274   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d1(BLIT_PARAMS);
275   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d2(BLIT_PARAMS);
276   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d2(BLIT_PARAMS);
277   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d2(BLIT_PARAMS);
278   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d2(BLIT_PARAMS);
279   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d2(BLIT_PARAMS);
280   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d2(BLIT_PARAMS);
281   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d2(BLIT_PARAMS);
282   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d2(BLIT_PARAMS);
283   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d3(BLIT_PARAMS);
284   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d3(BLIT_PARAMS);
285   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d3(BLIT_PARAMS);
286   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d3(BLIT_PARAMS);
287   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d3(BLIT_PARAMS);
288   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d3(BLIT_PARAMS);
289   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d3(BLIT_PARAMS);
290   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d3(BLIT_PARAMS);
291   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d4(BLIT_PARAMS);
292   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d4(BLIT_PARAMS);
293   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d4(BLIT_PARAMS);
294   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d4(BLIT_PARAMS);
295   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d4(BLIT_PARAMS);
296   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d4(BLIT_PARAMS);
297   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d4(BLIT_PARAMS);
298   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d4(BLIT_PARAMS);
299   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d5(BLIT_PARAMS);
300   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d5(BLIT_PARAMS);
301   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d5(BLIT_PARAMS);
302   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d5(BLIT_PARAMS);
303   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d5(BLIT_PARAMS);
304   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d5(BLIT_PARAMS);
305   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d5(BLIT_PARAMS);
306   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d5(BLIT_PARAMS);
307   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d6(BLIT_PARAMS);
308   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d6(BLIT_PARAMS);
309   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d6(BLIT_PARAMS);
310   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d6(BLIT_PARAMS);
311   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d6(BLIT_PARAMS);
312   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d6(BLIT_PARAMS);
313   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d6(BLIT_PARAMS);
314   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d6(BLIT_PARAMS);
315   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s0_d7(BLIT_PARAMS);
316   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s1_d7(BLIT_PARAMS);
317   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s2_d7(BLIT_PARAMS);
318   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s3_d7(BLIT_PARAMS);
319   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s4_d7(BLIT_PARAMS);
320   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s5_d7(BLIT_PARAMS);
321   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s6_d7(BLIT_PARAMS);
322   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_s7_d7(BLIT_PARAMS);
323
324   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_plain(BLIT_PARAMS);
325   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d0(BLIT_PARAMS);
326   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d0(BLIT_PARAMS);
327   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d0(BLIT_PARAMS);
328   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d0(BLIT_PARAMS);
329   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d0(BLIT_PARAMS);
330   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d0(BLIT_PARAMS);
331   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d0(BLIT_PARAMS);
332   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d0(BLIT_PARAMS);
333   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d1(BLIT_PARAMS);
334   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d1(BLIT_PARAMS);
335   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d1(BLIT_PARAMS);
336   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d1(BLIT_PARAMS);
337   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d1(BLIT_PARAMS);
338   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d1(BLIT_PARAMS);
339   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d1(BLIT_PARAMS);
340   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d1(BLIT_PARAMS);
341   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d2(BLIT_PARAMS);
342   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d2(BLIT_PARAMS);
343   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d2(BLIT_PARAMS);
344   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d2(BLIT_PARAMS);
345   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d2(BLIT_PARAMS);
346   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d2(BLIT_PARAMS);
347   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d2(BLIT_PARAMS);
348   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d2(BLIT_PARAMS);
349   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d3(BLIT_PARAMS);
350   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d3(BLIT_PARAMS);
351   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d3(BLIT_PARAMS);
352   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d3(BLIT_PARAMS);
353   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d3(BLIT_PARAMS);
354   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d3(BLIT_PARAMS);
355   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d3(BLIT_PARAMS);
356   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d3(BLIT_PARAMS);
357   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d4(BLIT_PARAMS);
358   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d4(BLIT_PARAMS);
359   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d4(BLIT_PARAMS);
360   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d4(BLIT_PARAMS);
361   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d4(BLIT_PARAMS);
362   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d4(BLIT_PARAMS);
363   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d4(BLIT_PARAMS);
364   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d4(BLIT_PARAMS);
365   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d5(BLIT_PARAMS);
366   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d5(BLIT_PARAMS);
367   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d5(BLIT_PARAMS);
368   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d5(BLIT_PARAMS);
369   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d5(BLIT_PARAMS);
370   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d5(BLIT_PARAMS);
371   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d5(BLIT_PARAMS);
372   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d5(BLIT_PARAMS);
373   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d6(BLIT_PARAMS);
374   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d6(BLIT_PARAMS);
375   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d6(BLIT_PARAMS);
376   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d6(BLIT_PARAMS);
377   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d6(BLIT_PARAMS);
378   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d6(BLIT_PARAMS);
379   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d6(BLIT_PARAMS);
380   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d6(BLIT_PARAMS);
381   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s0_d7(BLIT_PARAMS);
382   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s1_d7(BLIT_PARAMS);
383   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s2_d7(BLIT_PARAMS);
384   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s3_d7(BLIT_PARAMS);
385   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s4_d7(BLIT_PARAMS);
386   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s5_d7(BLIT_PARAMS);
387   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s6_d7(BLIT_PARAMS);
388   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_s7_d7(BLIT_PARAMS);
389
390   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_plain(BLIT_PARAMS);
391   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d0(BLIT_PARAMS);
392   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d0(BLIT_PARAMS);
393   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d0(BLIT_PARAMS);
394   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d0(BLIT_PARAMS);
395   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d0(BLIT_PARAMS);
396   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d0(BLIT_PARAMS);
397   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d0(BLIT_PARAMS);
398   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d0(BLIT_PARAMS);
399   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d1(BLIT_PARAMS);
400   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d1(BLIT_PARAMS);
401   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d1(BLIT_PARAMS);
402   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d1(BLIT_PARAMS);
403   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d1(BLIT_PARAMS);
404   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d1(BLIT_PARAMS);
405   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d1(BLIT_PARAMS);
406   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d1(BLIT_PARAMS);
407   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d2(BLIT_PARAMS);
408   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d2(BLIT_PARAMS);
409   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d2(BLIT_PARAMS);
410   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d2(BLIT_PARAMS);
411   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d2(BLIT_PARAMS);
412   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d2(BLIT_PARAMS);
413   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d2(BLIT_PARAMS);
414   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d2(BLIT_PARAMS);
415   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d3(BLIT_PARAMS);
416   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d3(BLIT_PARAMS);
417   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d3(BLIT_PARAMS);
418   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d3(BLIT_PARAMS);
419   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d3(BLIT_PARAMS);
420   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d3(BLIT_PARAMS);
421   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d3(BLIT_PARAMS);
422   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d3(BLIT_PARAMS);
423   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d4(BLIT_PARAMS);
424   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d4(BLIT_PARAMS);
425   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d4(BLIT_PARAMS);
426   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d4(BLIT_PARAMS);
427   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d4(BLIT_PARAMS);
428   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d4(BLIT_PARAMS);
429   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d4(BLIT_PARAMS);
430   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d4(BLIT_PARAMS);
431   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d5(BLIT_PARAMS);
432   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d5(BLIT_PARAMS);
433   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d5(BLIT_PARAMS);
434   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d5(BLIT_PARAMS);
435   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d5(BLIT_PARAMS);
436   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d5(BLIT_PARAMS);
437   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d5(BLIT_PARAMS);
438   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d5(BLIT_PARAMS);
439   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d6(BLIT_PARAMS);
440   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d6(BLIT_PARAMS);
441   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d6(BLIT_PARAMS);
442   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d6(BLIT_PARAMS);
443   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d6(BLIT_PARAMS);
444   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d6(BLIT_PARAMS);
445   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d6(BLIT_PARAMS);
446   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d6(BLIT_PARAMS);
447   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s0_d7(BLIT_PARAMS);
448   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s1_d7(BLIT_PARAMS);
449   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s2_d7(BLIT_PARAMS);
450   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s3_d7(BLIT_PARAMS);
451   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s4_d7(BLIT_PARAMS);
452   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s5_d7(BLIT_PARAMS);
453   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s6_d7(BLIT_PARAMS);
454   BLIT_FUNCTION draw_sprite_f0_ti1_tr1_s7_d7(BLIT_PARAMS);
455
456   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_plain(BLIT_PARAMS);
457   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d0(BLIT_PARAMS);
458   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d0(BLIT_PARAMS);
459   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d0(BLIT_PARAMS);
460   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d0(BLIT_PARAMS);
461   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d0(BLIT_PARAMS);
462   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d0(BLIT_PARAMS);
463   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d0(BLIT_PARAMS);
464   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d0(BLIT_PARAMS);
465   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d1(BLIT_PARAMS);
466   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d1(BLIT_PARAMS);
467   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d1(BLIT_PARAMS);
468   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d1(BLIT_PARAMS);
469   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d1(BLIT_PARAMS);
470   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d1(BLIT_PARAMS);
471   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d1(BLIT_PARAMS);
472   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d1(BLIT_PARAMS);
473   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d2(BLIT_PARAMS);
474   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d2(BLIT_PARAMS);
475   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d2(BLIT_PARAMS);
476   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d2(BLIT_PARAMS);
477   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d2(BLIT_PARAMS);
478   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d2(BLIT_PARAMS);
479   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d2(BLIT_PARAMS);
480   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d2(BLIT_PARAMS);
481   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d3(BLIT_PARAMS);
482   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d3(BLIT_PARAMS);
483   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d3(BLIT_PARAMS);
484   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d3(BLIT_PARAMS);
485   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d3(BLIT_PARAMS);
486   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d3(BLIT_PARAMS);
487   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d3(BLIT_PARAMS);
488   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d3(BLIT_PARAMS);
489   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d4(BLIT_PARAMS);
490   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d4(BLIT_PARAMS);
491   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d4(BLIT_PARAMS);
492   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d4(BLIT_PARAMS);
493   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d4(BLIT_PARAMS);
494   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d4(BLIT_PARAMS);
495   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d4(BLIT_PARAMS);
496   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d4(BLIT_PARAMS);
497   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d5(BLIT_PARAMS);
498   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d5(BLIT_PARAMS);
499   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d5(BLIT_PARAMS);
500   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d5(BLIT_PARAMS);
501   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d5(BLIT_PARAMS);
502   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d5(BLIT_PARAMS);
503   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d5(BLIT_PARAMS);
504   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d5(BLIT_PARAMS);
505   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d6(BLIT_PARAMS);
506   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d6(BLIT_PARAMS);
507   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d6(BLIT_PARAMS);
508   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d6(BLIT_PARAMS);
509   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d6(BLIT_PARAMS);
510   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d6(BLIT_PARAMS);
511   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d6(BLIT_PARAMS);
512   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d6(BLIT_PARAMS);
513   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s0_d7(BLIT_PARAMS);
514   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s1_d7(BLIT_PARAMS);
515   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s2_d7(BLIT_PARAMS);
516   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s3_d7(BLIT_PARAMS);
517   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s4_d7(BLIT_PARAMS);
518   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s5_d7(BLIT_PARAMS);
519   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s6_d7(BLIT_PARAMS);
520   BLIT_FUNCTION draw_sprite_f0_ti1_tr0_s7_d7(BLIT_PARAMS);
521
522   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_plain(BLIT_PARAMS);
523   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d0(BLIT_PARAMS);
524   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d0(BLIT_PARAMS);
525   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d0(BLIT_PARAMS);
526   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d0(BLIT_PARAMS);
527   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d0(BLIT_PARAMS);
528   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d0(BLIT_PARAMS);
529   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d0(BLIT_PARAMS);
530   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d0(BLIT_PARAMS);
531   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d1(BLIT_PARAMS);
532   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d1(BLIT_PARAMS);
533   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d1(BLIT_PARAMS);
534   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d1(BLIT_PARAMS);
535   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d1(BLIT_PARAMS);
536   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d1(BLIT_PARAMS);
537   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d1(BLIT_PARAMS);
538   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d1(BLIT_PARAMS);
539   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d2(BLIT_PARAMS);
540   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d2(BLIT_PARAMS);
541   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d2(BLIT_PARAMS);
542   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d2(BLIT_PARAMS);
543   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d2(BLIT_PARAMS);
544   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d2(BLIT_PARAMS);
545   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d2(BLIT_PARAMS);
546   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d2(BLIT_PARAMS);
547   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d3(BLIT_PARAMS);
548   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d3(BLIT_PARAMS);
549   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d3(BLIT_PARAMS);
550   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d3(BLIT_PARAMS);
551   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d3(BLIT_PARAMS);
552   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d3(BLIT_PARAMS);
553   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d3(BLIT_PARAMS);
554   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d3(BLIT_PARAMS);
555   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d4(BLIT_PARAMS);
556   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d4(BLIT_PARAMS);
557   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d4(BLIT_PARAMS);
558   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d4(BLIT_PARAMS);
559   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d4(BLIT_PARAMS);
560   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d4(BLIT_PARAMS);
561   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d4(BLIT_PARAMS);
562   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d4(BLIT_PARAMS);
563   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d5(BLIT_PARAMS);
564   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d5(BLIT_PARAMS);
565   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d5(BLIT_PARAMS);
566   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d5(BLIT_PARAMS);
567   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d5(BLIT_PARAMS);
568   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d5(BLIT_PARAMS);
569   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d5(BLIT_PARAMS);
570   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d5(BLIT_PARAMS);
571   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d6(BLIT_PARAMS);
572   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d6(BLIT_PARAMS);
573   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d6(BLIT_PARAMS);
574   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d6(BLIT_PARAMS);
575   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d6(BLIT_PARAMS);
576   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d6(BLIT_PARAMS);
577   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d6(BLIT_PARAMS);
578   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d6(BLIT_PARAMS);
579   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s0_d7(BLIT_PARAMS);
580   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s1_d7(BLIT_PARAMS);
581   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s2_d7(BLIT_PARAMS);
582   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s3_d7(BLIT_PARAMS);
583   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s4_d7(BLIT_PARAMS);
584   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s5_d7(BLIT_PARAMS);
585   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s6_d7(BLIT_PARAMS);
586   BLIT_FUNCTION draw_sprite_f1_ti1_tr1_s7_d7(BLIT_PARAMS);
587
588   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_plain(BLIT_PARAMS);
589   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d0(BLIT_PARAMS);
590   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d0(BLIT_PARAMS);
591   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d0(BLIT_PARAMS);
592   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d0(BLIT_PARAMS);
593   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d0(BLIT_PARAMS);
594   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d0(BLIT_PARAMS);
595   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d0(BLIT_PARAMS);
596   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d0(BLIT_PARAMS);
597   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d1(BLIT_PARAMS);
598   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d1(BLIT_PARAMS);
599   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d1(BLIT_PARAMS);
600   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d1(BLIT_PARAMS);
601   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d1(BLIT_PARAMS);
602   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d1(BLIT_PARAMS);
603   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d1(BLIT_PARAMS);
604   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d1(BLIT_PARAMS);
605   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d2(BLIT_PARAMS);
606   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d2(BLIT_PARAMS);
607   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d2(BLIT_PARAMS);
608   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d2(BLIT_PARAMS);
609   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d2(BLIT_PARAMS);
610   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d2(BLIT_PARAMS);
611   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d2(BLIT_PARAMS);
612   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d2(BLIT_PARAMS);
613   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d3(BLIT_PARAMS);
614   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d3(BLIT_PARAMS);
615   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d3(BLIT_PARAMS);
616   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d3(BLIT_PARAMS);
617   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d3(BLIT_PARAMS);
618   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d3(BLIT_PARAMS);
619   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d3(BLIT_PARAMS);
620   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d3(BLIT_PARAMS);
621   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d4(BLIT_PARAMS);
622   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d4(BLIT_PARAMS);
623   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d4(BLIT_PARAMS);
624   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d4(BLIT_PARAMS);
625   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d4(BLIT_PARAMS);
626   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d4(BLIT_PARAMS);
627   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d4(BLIT_PARAMS);
628   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d4(BLIT_PARAMS);
629   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d5(BLIT_PARAMS);
630   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d5(BLIT_PARAMS);
631   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d5(BLIT_PARAMS);
632   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d5(BLIT_PARAMS);
633   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d5(BLIT_PARAMS);
634   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d5(BLIT_PARAMS);
635   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d5(BLIT_PARAMS);
636   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d5(BLIT_PARAMS);
637   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d6(BLIT_PARAMS);
638   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d6(BLIT_PARAMS);
639   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d6(BLIT_PARAMS);
640   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d6(BLIT_PARAMS);
641   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d6(BLIT_PARAMS);
642   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d6(BLIT_PARAMS);
643   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d6(BLIT_PARAMS);
644   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d6(BLIT_PARAMS);
645   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s0_d7(BLIT_PARAMS);
646   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s1_d7(BLIT_PARAMS);
647   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s2_d7(BLIT_PARAMS);
648   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s3_d7(BLIT_PARAMS);
649   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s4_d7(BLIT_PARAMS);
650   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s5_d7(BLIT_PARAMS);
651   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s6_d7(BLIT_PARAMS);
652   BLIT_FUNCTION draw_sprite_f1_ti1_tr0_s7_d7(BLIT_PARAMS);
653
654   BLIT_FUNCTION draw_sprite_f0_ti0_tr1_simple(BLIT_PARAMS);
655   BLIT_FUNCTION draw_sprite_f0_ti0_tr0_simple(BLIT_PARAMS);
656   BLIT_FUNCTION draw_sprite_f1_ti0_tr1_simple(BLIT_PARAMS);
657   BLIT_FUNCTION draw_sprite_f1_ti0_tr0_simple(BLIT_PARAMS);
658
659
660
661   static inline void pen_to_clr(UINT32 pen, clr_t *clr)
662   {
663   // --t- ---- rrrr r--- gggg g--- bbbb b---  format
664      clr->r = (pen >> (16+3));// & 0x1f;
665      clr->g = (pen >>  (8+3));// & 0x1f;
666      clr->b = (pen >>   3);// & 0x1f;
667
668   // --t- ---- ---r rrrr ---g gggg ---b bbbb  format
669   //  clr->r = (pen >> 16) & 0x1f;
670   //  clr->g = (pen >> 8) & 0x1f;
671   //  clr->b = (pen >> 0) & 0x1f;
672
673   };
674
675
676   // convert separate r,g,b biases (0..80..ff) to clr_t (-1f..0..1f)
677   static inline void tint_to_clr(UINT8 r, UINT8 g, UINT8 b, clr_t *clr)
678   {
679      clr->r   =   r>>2;
680      clr->g   =   g>>2;
681      clr->b   =   b>>2;
682   };
683
684   // clr_t to r5g5b5
685   static inline UINT32 clr_to_pen(const clr_t *clr)
686   {
687
688   // --t- ---- rrrr r--- gggg g--- bbbb b---  format
689      return (clr->r << (16+3)) | (clr->g << (8+3)) | (clr->b << 3);
690
691   // --t- ---- ---r rrrr ---g gggg ---b bbbb  format
692   //  return (clr->r << (16)) | (clr->g << (8)) | (clr->b);
693   };
694
695
696   static inline void clr_add_with_clr_mul_fixed(clr_t *clr, const clr_t *clr0, const UINT8 mulfixed_val, const clr_t *mulfixed_clr0)
697   {
698      clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(mulfixed_clr0->r)][mulfixed_val]];
699      clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable[(mulfixed_clr0->g)][mulfixed_val]];
700      clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable[(mulfixed_clr0->b)][mulfixed_val]];
701   }
702
703   static inline  void clr_add_with_clr_mul_3param(clr_t *clr, const clr_t *clr0, const clr_t *clr1, const clr_t *clr2)
704   {
705      clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr2->r)][(clr1->r)]];
706      clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable[(clr2->g)][(clr1->g)]];
707      clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable[(clr2->b)][(clr1->b)]];
708   }
709
710   static inline  void clr_add_with_clr_square(clr_t *clr, const clr_t *clr0, const clr_t *clr1)
711   {
712      clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr1->r)][(clr1->r)]];
713      clr->g = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr1->g)][(clr1->g)]];
714      clr->b = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr1->b)][(clr1->b)]];
715   }
716
717   static inline  void clr_add_with_clr_mul_fixed_rev(clr_t *clr, const clr_t *clr0, const UINT8 val, const clr_t *clr1)
718   {
719      clr->r =  epic12_device_colrtable_add[clr0->r][epic12_device_colrtable_rev[val][(clr1->r)]];
720      clr->g =  epic12_device_colrtable_add[clr0->g][epic12_device_colrtable_rev[val][(clr1->g)]];
721      clr->b =  epic12_device_colrtable_add[clr0->b][epic12_device_colrtable_rev[val][(clr1->b)]];
722   }
723
724   static inline  void clr_add_with_clr_mul_rev_3param(clr_t *clr, const clr_t *clr0, const clr_t *clr1, const clr_t *clr2)
725   {
726      clr->r =  epic12_device_colrtable_add[clr0->r][epic12_device_colrtable_rev[(clr2->r)][(clr1->r)]];
727      clr->g =  epic12_device_colrtable_add[clr0->g][epic12_device_colrtable_rev[(clr2->g)][(clr1->g)]];
728      clr->b =  epic12_device_colrtable_add[clr0->b][epic12_device_colrtable_rev[(clr2->b)][(clr1->b)]];
729   }
730
731   static inline  void clr_add_with_clr_mul_rev_square(clr_t *clr, const clr_t *clr0, const clr_t *clr1)
732   {
733      clr->r =  epic12_device_colrtable_add[clr0->r][epic12_device_colrtable_rev[(clr1->r)][(clr1->r)]];
734      clr->g =  epic12_device_colrtable_add[clr0->g][epic12_device_colrtable_rev[(clr1->g)][(clr1->g)]];
735      clr->b =  epic12_device_colrtable_add[clr0->b][epic12_device_colrtable_rev[(clr1->b)][(clr1->b)]];
736   }
737
738
739   static inline  void clr_add(clr_t *clr, const clr_t *clr0, const clr_t *clr1)
740   {
741   /*
742      clr->r = clr0->r + clr1->r;
743      clr->g = clr0->g + clr1->g;
744      clr->b = clr0->b + clr1->b;
745   */
746      // use pre-clamped lookup table
747      clr->r =  epic12_device_colrtable_add[clr0->r][clr1->r];
748      clr->g =  epic12_device_colrtable_add[clr0->g][clr1->g];
749      clr->b =  epic12_device_colrtable_add[clr0->b][clr1->b];
750
751   }
752
753
754   static inline void clr_mul(clr_t *clr0, const clr_t *clr1)
755   {
756      clr0->r = epic12_device_colrtable[(clr0->r)][(clr1->r)];
757      clr0->g = epic12_device_colrtable[(clr0->g)][(clr1->g)];
758      clr0->b = epic12_device_colrtable[(clr0->b)][(clr1->b)];
759   }
760
761   static inline void clr_square(clr_t *clr0, const clr_t *clr1)
762   {
763      clr0->r = epic12_device_colrtable[(clr1->r)][(clr1->r)];
764      clr0->g = epic12_device_colrtable[(clr1->g)][(clr1->g)];
765      clr0->b = epic12_device_colrtable[(clr1->b)][(clr1->b)];
766   }
767
768   static inline void clr_mul_3param(clr_t *clr0, const clr_t *clr1, const clr_t *clr2)
769   {
770      clr0->r = epic12_device_colrtable[(clr2->r)][(clr1->r)];
771      clr0->g = epic12_device_colrtable[(clr2->g)][(clr1->g)];
772      clr0->b = epic12_device_colrtable[(clr2->b)][(clr1->b)];
773   }
774
775   static inline void clr_mul_rev(clr_t *clr0, const clr_t *clr1)
776   {
777      clr0->r = epic12_device_colrtable_rev[(clr0->r)][(clr1->r)];
778      clr0->g = epic12_device_colrtable_rev[(clr0->g)][(clr1->g)];
779      clr0->b = epic12_device_colrtable_rev[(clr0->b)][(clr1->b)];
780   }
781
782   static inline void clr_mul_rev_square(clr_t *clr0, const clr_t *clr1)
783   {
784      clr0->r = epic12_device_colrtable_rev[(clr1->r)][(clr1->r)];
785      clr0->g = epic12_device_colrtable_rev[(clr1->g)][(clr1->g)];
786      clr0->b = epic12_device_colrtable_rev[(clr1->b)][(clr1->b)];
787   }
788
789
790   static inline void clr_mul_rev_3param(clr_t *clr0, const clr_t *clr1, const clr_t *clr2)
791   {
792      clr0->r = epic12_device_colrtable_rev[(clr2->r)][(clr1->r)];
793      clr0->g = epic12_device_colrtable_rev[(clr2->g)][(clr1->g)];
794      clr0->b = epic12_device_colrtable_rev[(clr2->b)][(clr1->b)];
795   }
796
797   static inline void clr_mul_fixed(clr_t *clr, const UINT8 val, const clr_t *clr0)
798   {
799      clr->r = epic12_device_colrtable[val][(clr0->r)];
800      clr->g = epic12_device_colrtable[val][(clr0->g)];
801      clr->b = epic12_device_colrtable[val][(clr0->b)];
802   }
803
804   static inline void clr_mul_fixed_rev(clr_t *clr, const UINT8 val, const clr_t *clr0)
805   {
806      clr->r = epic12_device_colrtable_rev[val][(clr0->r)];
807      clr->g = epic12_device_colrtable_rev[val][(clr0->g)];
808      clr->b = epic12_device_colrtable_rev[val][(clr0->b)];
809   }
810
811   static inline void clr_copy(clr_t *clr, const clr_t *clr0)
812   {
813      clr->r = clr0->r;
814      clr->g = clr0->g;
815      clr->b = clr0->b;
816   }
817
818
819
820   // (1|s|d) * s_factor * s + (1|s|d) * d_factor * d
821   // 0: +alpha
822   // 1: +source
823   // 2: +dest
824   // 3: *
825   // 4: -alpha
826   // 5: -source
827   // 6: -dest
828   // 7: *
829
830
831protected:
832   virtual void device_start();
833   virtual void device_reset();
834
835
836
837   osd_work_queue *   queue;               /* work queue */
838   osd_work_item * blitter_request;
839
840   // blit timing
841   emu_timer *epic12_device_blitter_delay_timer;
842   int blitter_busy;
843
844   TIMER_CALLBACK_MEMBER( epic12_device_blitter_delay_callback );
845
846
847private:
848};
849
850
851
852
853
854
855extern const device_type EPIC12;
Property changes on: trunk/src/emu/video/epic12.h
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/video/video.mak
r26843r26844
105105endif
106106
107107#-------------------------------------------------
108#@src/emu/video/epic12.h,VIDEOS += EPIC12
109#-------------------------------------------------
110
111ifneq ($(filter EPIC12,$(VIDEOS)),)
112VIDEOOBJS+= $(VIDEOOBJ)/epic12.o
113VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit0.o
114VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit1.o
115VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit2.o
116VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit3.o
117VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit4.o
118VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit5.o
119VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit6.o
120VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit7.o
121VIDEOOBJS+= $(VIDEOOBJ)/epic12_blit8.o
122
123$(VIDEOOBJ)/epic12o: $(VIDEOSRC)/epic12.h
124
125$(VIDEOOBJ)/epic12_blit0.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
126$(VIDEOOBJ)/epic12_blit1.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
127$(VIDEOOBJ)/epic12_blit2.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
128$(VIDEOOBJ)/epic12_blit3.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
129$(VIDEOOBJ)/epic12_blit4.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
130$(VIDEOOBJ)/epic12_blit5.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
131$(VIDEOOBJ)/epic12_blit6.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
132$(VIDEOOBJ)/epic12_blit7.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
133$(VIDEOOBJ)/epic12_blit8.o: $(VIDEOSRC)/epic12.h $(VIDEOSRC)/epic12in.inc
134
135$(VIDEOSRC)/epic12in.inc: $(VIDEOSRC)/epic12pixel.inc
136
137endif
138
139#-------------------------------------------------
108140#
109141#@src/emu/video/fixfreq.h,VIDEOS += FIXFREQ
110142#-------------------------------------------------
trunk/src/emu/video/epic12_blit0.c
r0r26844
1#define REALLY_SIMPLE 0
2/* Non-Flipped, Non-Tinted, Transparent */
3#define FLIPX 0
4#define TINT 0
5#define TRANSPARENT 1
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f0_ti0_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f0_ti0_tr1_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f0_ti0_tr1_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f0_ti0_tr1_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f0_ti0_tr1_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f0_ti0_tr1_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f0_ti0_tr1_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f0_ti0_tr1_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f0_ti0_tr1_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
Property changes on: trunk/src/emu/video/epic12_blit0.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/video/epic12_blit4.c
r0r26844
1#define REALLY_SIMPLE 0
2/* Non-Flipped, Tinted, Transparent */
3#define FLIPX 0
4#define TINT 1
5#define TRANSPARENT 1
6
7#include "emu.h"
8#include "epic12.h"
9
10/* Special Case */
11#define BLENDED 0
12#define FUNCNAME draw_sprite_f0_ti1_tr1_plain
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef BLENDED
16
17/* Regular Cases*/
18#define BLENDED 1
19
20#define _SMODE 0
21#define _DMODE 0
22#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d0
23#include "epic12in.inc"
24#undef FUNCNAME
25#undef _SMODE
26#undef _DMODE
27
28#define _SMODE 1
29#define _DMODE 0
30#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d0
31#include "epic12in.inc"
32#undef FUNCNAME
33#undef _SMODE
34#undef _DMODE
35
36#define _SMODE 2
37#define _DMODE 0
38#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d0
39#include "epic12in.inc"
40#undef FUNCNAME
41#undef _SMODE
42#undef _DMODE
43
44#define _SMODE 3
45#define _DMODE 0
46#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d0
47#include "epic12in.inc"
48#undef FUNCNAME
49#undef _SMODE
50#undef _DMODE
51
52#define _SMODE 4
53#define _DMODE 0
54#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d0
55#include "epic12in.inc"
56#undef FUNCNAME
57#undef _SMODE
58#undef _DMODE
59
60#define _SMODE 5
61#define _DMODE 0
62#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d0
63#include "epic12in.inc"
64#undef FUNCNAME
65#undef _SMODE
66#undef _DMODE
67
68#define _SMODE 6
69#define _DMODE 0
70#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d0
71#include "epic12in.inc"
72#undef FUNCNAME
73#undef _SMODE
74#undef _DMODE
75
76#define _SMODE 7
77#define _DMODE 0
78#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d0
79#include "epic12in.inc"
80#undef FUNCNAME
81#undef _SMODE
82#undef _DMODE
83
84///////
85
86
87#define _SMODE 0
88#define _DMODE 1
89#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d1
90#include "epic12in.inc"
91#undef FUNCNAME
92#undef _SMODE
93#undef _DMODE
94
95#define _SMODE 1
96#define _DMODE 1
97#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d1
98#include "epic12in.inc"
99#undef FUNCNAME
100#undef _SMODE
101#undef _DMODE
102
103#define _SMODE 2
104#define _DMODE 1
105#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d1
106#include "epic12in.inc"
107#undef FUNCNAME
108#undef _SMODE
109#undef _DMODE
110
111#define _SMODE 3
112#define _DMODE 1
113#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d1
114#include "epic12in.inc"
115#undef FUNCNAME
116#undef _SMODE
117#undef _DMODE
118
119#define _SMODE 4
120#define _DMODE 1
121#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d1
122#include "epic12in.inc"
123#undef FUNCNAME
124#undef _SMODE
125#undef _DMODE
126
127#define _SMODE 5
128#define _DMODE 1
129#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d1
130#include "epic12in.inc"
131#undef FUNCNAME
132#undef _SMODE
133#undef _DMODE
134
135#define _SMODE 6
136#define _DMODE 1
137#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d1
138#include "epic12in.inc"
139#undef FUNCNAME
140#undef _SMODE
141#undef _DMODE
142
143#define _SMODE 7
144#define _DMODE 1
145#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d1
146#include "epic12in.inc"
147#undef FUNCNAME
148#undef _SMODE
149#undef _DMODE
150
151////
152
153
154#define _SMODE 0
155#define _DMODE 2
156#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d2
157#include "epic12in.inc"
158#undef FUNCNAME
159#undef _SMODE
160#undef _DMODE
161
162#define _SMODE 1
163#define _DMODE 2
164#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d2
165#include "epic12in.inc"
166#undef FUNCNAME
167#undef _SMODE
168#undef _DMODE
169
170#define _SMODE 2
171#define _DMODE 2
172#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d2
173#include "epic12in.inc"
174#undef FUNCNAME
175#undef _SMODE
176#undef _DMODE
177
178#define _SMODE 3
179#define _DMODE 2
180#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d2
181#include "epic12in.inc"
182#undef FUNCNAME
183#undef _SMODE
184#undef _DMODE
185
186#define _SMODE 4
187#define _DMODE 2
188#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d2
189#include "epic12in.inc"
190#undef FUNCNAME
191#undef _SMODE
192#undef _DMODE
193
194#define _SMODE 5
195#define _DMODE 2
196#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d2
197#include "epic12in.inc"
198#undef FUNCNAME
199#undef _SMODE
200#undef _DMODE
201
202#define _SMODE 6
203#define _DMODE 2
204#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d2
205#include "epic12in.inc"
206#undef FUNCNAME
207#undef _SMODE
208#undef _DMODE
209
210#define _SMODE 7
211#define _DMODE 2
212#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d2
213#include "epic12in.inc"
214#undef FUNCNAME
215#undef _SMODE
216#undef _DMODE
217
218///
219
220
221#define _SMODE 0
222#define _DMODE 3
223#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d3
224#include "epic12in.inc"
225#undef FUNCNAME
226#undef _SMODE
227#undef _DMODE
228
229#define _SMODE 1
230#define _DMODE 3
231#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d3
232#include "epic12in.inc"
233#undef FUNCNAME
234#undef _SMODE
235#undef _DMODE
236
237#define _SMODE 2
238#define _DMODE 3
239#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d3
240#include "epic12in.inc"
241#undef FUNCNAME
242#undef _SMODE
243#undef _DMODE
244
245#define _SMODE 3
246#define _DMODE 3
247#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d3
248#include "epic12in.inc"
249#undef FUNCNAME
250#undef _SMODE
251#undef _DMODE
252
253#define _SMODE 4
254#define _DMODE 3
255#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d3
256#include "epic12in.inc"
257#undef FUNCNAME
258#undef _SMODE
259#undef _DMODE
260
261#define _SMODE 5
262#define _DMODE 3
263#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d3
264#include "epic12in.inc"
265#undef FUNCNAME
266#undef _SMODE
267#undef _DMODE
268
269#define _SMODE 6
270#define _DMODE 3
271#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d3
272#include "epic12in.inc"
273#undef FUNCNAME
274#undef _SMODE
275#undef _DMODE
276
277#define _SMODE 7
278#define _DMODE 3
279#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d3
280#include "epic12in.inc"
281#undef FUNCNAME
282#undef _SMODE
283#undef _DMODE
284
285///
286
287
288#define _SMODE 0
289#define _DMODE 4
290#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d4
291#include "epic12in.inc"
292#undef FUNCNAME
293#undef _SMODE
294#undef _DMODE
295
296#define _SMODE 1
297#define _DMODE 4
298#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d4
299#include "epic12in.inc"
300#undef FUNCNAME
301#undef _SMODE
302#undef _DMODE
303
304#define _SMODE 2
305#define _DMODE 4
306#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d4
307#include "epic12in.inc"
308#undef FUNCNAME
309#undef _SMODE
310#undef _DMODE
311
312#define _SMODE 3
313#define _DMODE 4
314#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d4
315#include "epic12in.inc"
316#undef FUNCNAME
317#undef _SMODE
318#undef _DMODE
319
320#define _SMODE 4
321#define _DMODE 4
322#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d4
323#include "epic12in.inc"
324#undef FUNCNAME
325#undef _SMODE
326#undef _DMODE
327
328#define _SMODE 5
329#define _DMODE 4
330#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d4
331#include "epic12in.inc"
332#undef FUNCNAME
333#undef _SMODE
334#undef _DMODE
335
336#define _SMODE 6
337#define _DMODE 4
338#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d4
339#include "epic12in.inc"
340#undef FUNCNAME
341#undef _SMODE
342#undef _DMODE
343
344#define _SMODE 7
345#define _DMODE 4
346#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d4
347#include "epic12in.inc"
348#undef FUNCNAME
349#undef _SMODE
350#undef _DMODE
351
352///
353
354#define _SMODE 0
355#define _DMODE 5
356#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d5
357#include "epic12in.inc"
358#undef FUNCNAME
359#undef _SMODE
360#undef _DMODE
361
362#define _SMODE 1
363#define _DMODE 5
364#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d5
365#include "epic12in.inc"
366#undef FUNCNAME
367#undef _SMODE
368#undef _DMODE
369
370#define _SMODE 2
371#define _DMODE 5
372#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d5
373#include "epic12in.inc"
374#undef FUNCNAME
375#undef _SMODE
376#undef _DMODE
377
378#define _SMODE 3
379#define _DMODE 5
380#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d5
381#include "epic12in.inc"
382#undef FUNCNAME
383#undef _SMODE
384#undef _DMODE
385
386#define _SMODE 4
387#define _DMODE 5
388#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d5
389#include "epic12in.inc"
390#undef FUNCNAME
391#undef _SMODE
392#undef _DMODE
393
394#define _SMODE 5
395#define _DMODE 5
396#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d5
397#include "epic12in.inc"
398#undef FUNCNAME
399#undef _SMODE
400#undef _DMODE
401
402#define _SMODE 6
403#define _DMODE 5
404#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d5
405#include "epic12in.inc"
406#undef FUNCNAME
407#undef _SMODE
408#undef _DMODE
409
410#define _SMODE 7
411#define _DMODE 5
412#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d5
413#include "epic12in.inc"
414#undef FUNCNAME
415#undef _SMODE
416#undef _DMODE
417
418///
419
420#define _SMODE 0
421#define _DMODE 6
422#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d6
423#include "epic12in.inc"
424#undef FUNCNAME
425#undef _SMODE
426#undef _DMODE
427
428#define _SMODE 1
429#define _DMODE 6
430#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d6
431#include "epic12in.inc"
432#undef FUNCNAME
433#undef _SMODE
434#undef _DMODE
435
436#define _SMODE 2
437#define _DMODE 6
438#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d6
439#include "epic12in.inc"
440#undef FUNCNAME
441#undef _SMODE
442#undef _DMODE
443
444#define _SMODE 3
445#define _DMODE 6
446#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d6
447#include "epic12in.inc"
448#undef FUNCNAME
449#undef _SMODE
450#undef _DMODE
451
452#define _SMODE 4
453#define _DMODE 6
454#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d6
455#include "epic12in.inc"
456#undef FUNCNAME
457#undef _SMODE
458#undef _DMODE
459
460#define _SMODE 5
461#define _DMODE 6
462#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d6
463#include "epic12in.inc"
464#undef FUNCNAME
465#undef _SMODE
466#undef _DMODE
467
468#define _SMODE 6
469#define _DMODE 6
470#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d6
471#include "epic12in.inc"
472#undef FUNCNAME
473#undef _SMODE
474#undef _DMODE
475
476#define _SMODE 7
477#define _DMODE 6
478#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d6
479#include "epic12in.inc"
480#undef FUNCNAME
481#undef _SMODE
482#undef _DMODE
483
484///
485
486
487#define _SMODE 0
488#define _DMODE 7
489#define FUNCNAME draw_sprite_f0_ti1_tr1_s0_d7
490#include "epic12in.inc"
491#undef FUNCNAME
492#undef _SMODE
493#undef _DMODE
494
495#define _SMODE 1
496#define _DMODE 7
497#define FUNCNAME draw_sprite_f0_ti1_tr1_s1_d7
498#include "epic12in.inc"
499#undef FUNCNAME
500#undef _SMODE
501#undef _DMODE
502
503#define _SMODE 2
504#define _DMODE 7
505#define FUNCNAME draw_sprite_f0_ti1_tr1_s2_d7
506#include "epic12in.inc"
507#undef FUNCNAME
508#undef _SMODE
509#undef _DMODE
510
511#define _SMODE 3
512#define _DMODE 7
513#define FUNCNAME draw_sprite_f0_ti1_tr1_s3_d7
514#include "epic12in.inc"
515#undef FUNCNAME
516#undef _SMODE
517#undef _DMODE
518
519#define _SMODE 4
520#define _DMODE 7
521#define FUNCNAME draw_sprite_f0_ti1_tr1_s4_d7
522#include "epic12in.inc"
523#undef FUNCNAME
524#undef _SMODE
525#undef _DMODE
526
527#define _SMODE 5
528#define _DMODE 7
529#define FUNCNAME draw_sprite_f0_ti1_tr1_s5_d7
530#include "epic12in.inc"
531#undef FUNCNAME
532#undef _SMODE
533#undef _DMODE
534
535#define _SMODE 6
536#define _DMODE 7
537#define FUNCNAME draw_sprite_f0_ti1_tr1_s6_d7
538#include "epic12in.inc"
539#undef FUNCNAME
540#undef _SMODE
541#undef _DMODE
542
543#define _SMODE 7
544#define _DMODE 7
545#define FUNCNAME draw_sprite_f0_ti1_tr1_s7_d7
546#include "epic12in.inc"
547#undef FUNCNAME
548#undef _SMODE
549#undef _DMODE
550
551#undef BLENDED
552
553#undef FLIPX
554#undef TINT
555#undef TRANSPARENT
556#undef REALLY_SIMPLE
No newline at end of file
Property changes on: trunk/src/emu/video/epic12_blit4.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/video/epic12_blit8.c
r0r26844
1/* Special case 'Really Simple' blitters, no blending, no tinting etc.*/
2
3#include "emu.h"
4#include "epic12.h"
5
6
7#define REALLY_SIMPLE 1
8#define BLENDED 0
9
10#define TRANSPARENT 1
11#define FLIPX 0
12#define FUNCNAME draw_sprite_f0_ti0_tr1_simple
13#include "epic12in.inc"
14#undef FUNCNAME
15#undef FLIPX
16
17#define FLIPX 1
18#define FUNCNAME draw_sprite_f1_ti0_tr1_simple
19#include "epic12in.inc"
20#undef FUNCNAME
21#undef FLIPX
22#undef TRANSPARENT
23
24
25#define TRANSPARENT 0
26#define FLIPX 0
27#define FUNCNAME draw_sprite_f0_ti0_tr0_simple
28#include "epic12in.inc"
29#undef FUNCNAME
30#undef FLIPX
31
32#define FLIPX 1
33#define FUNCNAME draw_sprite_f1_ti0_tr0_simple
34#include "epic12in.inc"
35#undef FUNCNAME
36#undef FLIPX
37#undef TRANSPARENT
38
39#undef BLENDED
40#undef REALLY_SIMPLE
41
42
43
Property changes on: trunk/src/emu/video/epic12_blit8.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Previous 199869 Revisions Next


© 1997-2024 The MAME Team