Previous 199869 Revisions Next

r23634 Tuesday 11th June, 2013 at 13:35:36 UTC by hap
galdrvr.c: Improved Namco Galaxian colors [Andrew Welburn]
[src/mame/drivers]galaxian.c galdrvr.c
[src/mame/includes]galaxian.h
[src/mame/video]galaxian.c

trunk/src/mame/drivers/galdrvr.c
r23633r23634
69046904 *************************************/
69056905
69066906/* basic galaxian hardware */
6907GAME( 1979, galaxian,   0,        galaxian, galaxian, galaxian_state, galaxian, ROT90,  "Namco", "Galaxian (Namco set 1)", GAME_SUPPORTS_SAVE )
6908GAME( 1979, galaxiana,  galaxian, galaxian, superg, galaxian_state,   galaxian, ROT90,  "Namco", "Galaxian (Namco set 2)", GAME_SUPPORTS_SAVE )
6909GAME( 1979, galaxianm,  galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90,  "Namco (Midway license)", "Galaxian (Midway set 1)", GAME_SUPPORTS_SAVE )
6910GAME( 1979, galaxianmo, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90,  "Namco (Midway license)", "Galaxian (Midway set 2)", GAME_SUPPORTS_SAVE )
6911GAME( 1979, galaxiant,  galaxian, galaxian, superg, galaxian_state,   galaxian, ROT90,  "Namco (Taito license)", "Galaxian (Taito)", GAME_SUPPORTS_SAVE )
6907GAME( 1979, galaxian,   0,        galaxian, galaxian, galaxian_state, galaxiann, ROT90,  "Namco", "Galaxian (Namco set 1)", GAME_SUPPORTS_SAVE )
6908GAME( 1979, galaxiana,  galaxian, galaxian, superg,   galaxian_state, galaxiann, ROT90,  "Namco", "Galaxian (Namco set 2)", GAME_SUPPORTS_SAVE )
6909GAME( 1979, galaxiant,  galaxian, galaxian, superg,   galaxian_state, galaxiann, ROT90,  "Namco (Taito license)", "Galaxian (Taito)", GAME_SUPPORTS_SAVE )
6910GAME( 1979, galaxianm,  galaxian, galaxian, galaxian, galaxian_state, galaxian,  ROT90,  "Namco (Midway license)", "Galaxian (Midway set 1)", GAME_SUPPORTS_SAVE )
6911GAME( 1979, galaxianmo, galaxian, galaxian, galaxian, galaxian_state, galaxian,  ROT90,  "Namco (Midway license)", "Galaxian (Midway set 2)", GAME_SUPPORTS_SAVE )
69126912
69136913/* straight Galaxian ripoffs on basic galaxian hardware */
69146914GAME( 1979, moonaln,  galaxian, galaxian, superg, galaxian_state,   galaxian, ROT90,  "Namco / Nichibutsu (Karateco license?)", "Moon Alien", GAME_SUPPORTS_SAVE ) // or bootleg?
trunk/src/mame/drivers/galaxian.c
r23633r23634
27592759{
27602760   m_irq_enabled = 0;
27612761   m_irq_line = INPUT_LINE_NMI;
2762   m_color_resnet_type = GALAXIAN_RESNET_TYPE_MIDWAY;
27622763   m_numspritegens = 1;
27632764   m_bullets_base = 0x60;
27642765   m_sprites_base = 0x40;
r23633r23634
27942795}
27952796
27962797
2798DRIVER_INIT_MEMBER(galaxian_state,galaxiann)
2799{
2800   DRIVER_INIT_CALL(galaxian);
2801
2802   /* Namco PCB had a slightly different color prom resnet */
2803   m_color_resnet_type = GALAXIAN_RESNET_TYPE_NAMCO;
2804}
2805
2806
27972807DRIVER_INIT_MEMBER(galaxian_state,nolock)
27982808{
27992809   address_space &space = m_maincpu->space(AS_PROGRAM);
r23633r23634
33003310
33013311   /* video extensions */
33023312   common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, NULL, NULL);
3313   
3314   /* Namco PCB had a slightly different color prom resnet */
3315   m_color_resnet_type = GALAXIAN_RESNET_TYPE_NAMCO;
33033316
33043317   /* disable the stars */
33053318   space.unmap_write(0xb004, 0xb004, 0, 0x07f8);
trunk/src/mame/video/galaxian.c
r23633r23634
236236void galaxian_state::palette_init()
237237{
238238   const UINT8 *color_prom = memregion("proms")->base();
239   static const int rgb_resistances[3] = { 1000, 470, 220 };
239   int rgb_resistances[3];
240240   double rweights[3], gweights[3], bweights[2];
241   int i, minval, midval, maxval, len;
241   int i, minval, midval, maxval, maxres, len;
242242   UINT8 starmap[4];
243243
244244   /*
r23633r23634
267267       of the main game would be very low to allow for all the oversaturation
268268       of the stars and shells/missiles.
269269   */
270   
271   // official Namco PCB used 330 ohm resistors instead of the 220 ohm ones
272   switch (m_color_resnet_type)
273   {
274      case GALAXIAN_RESNET_TYPE_NAMCO:
275         rgb_resistances[0] = 1000;
276         rgb_resistances[1] = 470;
277         rgb_resistances[2] = 330;
278         break;
279
280      default:
281         rgb_resistances[0] = 1000;
282         rgb_resistances[1] = 470;
283         rgb_resistances[2] = 220;
284         break;
285   }
286   
270287   compute_resistor_weights(0, RGB_MAXIMUM, -1.0,
271288         3, &rgb_resistances[0], rweights, 470, 0,
272289         3, &rgb_resistances[0], gweights, 470, 0,
r23633r23634
313330       Since we can't saturate that high, we instead approximate this
314331       by compressing the values proportionally into the 194->255 range.
315332   */
316   minval = RGB_MAXIMUM * 130 / 150;
317   midval = RGB_MAXIMUM * 130 / 100;
318   maxval = RGB_MAXIMUM * 130 / 60;
333   maxres = 1.0 / (1.0/rgb_resistances[0] + 1.0/rgb_resistances[1] + 1.0/rgb_resistances[2]);
334   minval = RGB_MAXIMUM * maxres / 150;
335   midval = RGB_MAXIMUM * maxres / 100;
336   maxval = RGB_MAXIMUM * maxres / 60;
319337
320338   /* compute the values for each of 4 possible star values */
321339   starmap[0] = 0;
trunk/src/mame/includes/galaxian.h
r23633r23634
2828#define GALAXIAN_VBEND          (16)
2929#define GALAXIAN_VBSTART        (224+16)
3030
31enum
32{
33   GALAXIAN_RESNET_TYPE_MIDWAY,
34   GALAXIAN_RESNET_TYPE_NAMCO
35};
3136
37
3238class galaxian_state : public driver_device
3339{
3440public:
r23633r23634
5359   int m_bullets_base;
5460   int m_sprites_base;
5561   int m_numspritegens;
62   int m_color_resnet_type;
5663   int m_counter_74ls161[2];
5764   int m_direction[2];
5865   UINT8 m_gmgalax_selected_game;
r23633r23634
182189   DECLARE_WRITE8_MEMBER(kingball_dac_w);
183190   DECLARE_WRITE8_MEMBER(moonwar_port_select_w);
184191   DECLARE_DRIVER_INIT(galaxian);
192   DECLARE_DRIVER_INIT(galaxiann);
185193   DECLARE_DRIVER_INIT(nolock);
186194   DECLARE_DRIVER_INIT(azurian);
187195   DECLARE_DRIVER_INIT(gmgalax);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team