Previous 15994 Revisions Next

r3452 Thursday 16th October, 2008 at 10:30:40 UTC by Nathan Woods
Updated to MAME 0.128 core
[ROOT]whatsnew.txt
[docs]messnew.txt
[src]version.c
[src/emu/machine]6821pia.c 6821pia.h ldvp931.c
[src/emu/video]generic.c generic.h
[src/mame]mamedriv.c
[src/mame/drivers]cps2.c firefox.c galdrvr.c gatron.c good.c jackal.c legionna.c merit.c nmk16.c yumefuda.c
[src/mame/layout]poker41.lay pulltabs.lay
[src/mame/machine]cps2crpt.c
[src/tools]ldresample.c* ldverify.c tools.mak

src/mame/machine/cps2crpt.c
r3451r3452
940940   { "gigawing", { 0xe52de290,0x1b60d780 }, 0x100000 },   // 0C81 1972 1027  cmpi.l  #$19721027,D1
941941   { "gwingj",   { 0x1126196a,0xbef50895 }, 0x100000 },   // 0C81 1972 1027  cmpi.l  #$19721027,D1
942942   { "gwinga",   { 0x3506a85a,0x66b1b768 }, 0x100000 },   // 0C81 1972 1027  cmpi.l  #$19721027,D1
943   { "gwingb",   { 0x0fe745b0,0x96ef7f9d }, 0x100000 },   // 0C81 1972 1027  cmpi.l  #$19721027,D1
943944   { "mmatrix",  { 0xac9ebd79,0x410467df }, 0x180000 },   // B6C0 B447 BACF  cmpa.w  D0,A3   cmp.w   D7,D2   cmpa.w  A7,A5
944945   { "mmatrixj", { 0x4df81e95,0x72ed9823 }, 0x180000 },   // B6C0 B447 BACF  cmpa.w  D0,A3   cmp.w   D7,D2   cmpa.w  A7,A5
945946   { "mpang",    { 0x95f741c6,0xe547a21b }, 0x100000 },   // 0C84 347D 89A3  cmpi.l  #$347D89A3,D4
src/mame/mamedriv.c
r3451r3452
27162716   DRIVER( gigawing )   /* 22/02/1999 (c) 1999 Takumi (US) */
27172717   DRIVER( gwingj )   /* 23/02/1999 (c) 1999 Takumi (Japan) */
27182718   DRIVER( gwinga )   /* 22/02/1999 (c) 1999 Takumi (Asia) */
2719   DRIVER( gwingb )   /* 22/02/1999 (c) 1999 Takumi (Brazil) */
27192720   DRIVER( jyangoku )   /* 27/05/1999 (c) 1999 (Japan) */
27202721   DRIVER( dimahoo )   /* 21/01/2000 (c) 2000 Eighting/Raizing (US) */
27212722   DRIVER( dimahoou )   /* 21/01/2000 (c) 2000 Eighting/Raizing (US) */
src/mame/layout/poker41.lay
r3451r3452
11<?xml version="1.0"?>
22<mamelayout version="2">
3   <element name="hold1" defstate="1">
4      <rect>
3   <element name="hold1">
4      <rect state="1">
55         <color red="1.0" green="0.0" blue="0.0" />
66      </rect>
7      <text string="DISCARD 1" state="1">
7      <rect state="0">
8         <color red="0.3" green="0.0" blue="0.0" />
9      </rect>
10      <text string="DISCARD 1">
811         <color red="0.0" green="0.0" blue="0.0" />
912         <bounds x="0" y="0.1" width="1" height="0.8" />
1013      </text>
1114   </element>
1215
13   <element name="hold2" defstate="1">
14      <rect>
16   <element name="hold2">
17      <rect state="1">
1518         <color red="1.0" green="0.0" blue="0.0" />
1619      </rect>
17      <text string="DISCARD 2" state="1">
20      <rect state="0">
21         <color red="0.3" green="0.0" blue="0.0" />
22      </rect>
23      <text string="DISCARD 2">
1824         <color red="0.0" green="0.0" blue="0.0" />
1925         <bounds x="0" y="0.1" width="1" height="0.8" />
2026      </text>
2127   </element>
2228
23   <element name="hold3" defstate="1">
24      <rect>
29   <element name="hold3">
30      <rect state="1">
2531         <color red="1.0" green="0.0" blue="0.0" />
2632      </rect>
27      <text string="DISCARD 3" state="1">
33      <rect state="0">
34         <color red="0.3" green="0.0" blue="0.0" />
35      </rect>
36      <text string="DISCARD 3">
2837         <color red="0.0" green="0.0" blue="0.0" />
2938         <bounds x="0" y="0.1" width="1" height="0.8" />
3039      </text>
3140   </element>
3241
33   <element name="hold4" defstate="1">
34      <rect>
42   <element name="hold4">
43      <rect state="1">
3544         <color red="1.0" green="0.0" blue="0.0" />
3645      </rect>
37      <text string="DISCARD 4" state="1">
46      <rect state="0">
47         <color red="0.3" green="0.0" blue="0.0" />
48      </rect>
49      <text string="DISCARD 4">
3850         <color red="0.0" green="0.0" blue="0.0" />
3951         <bounds x="0" y="0.1" width="1" height="0.8" />
4052      </text>
4153   </element>
4254
43   <element name="hold5" defstate="1">
44      <rect>
55   <element name="hold5">
56      <rect state="1">
4557         <color red="1.0" green="0.0" blue="0.0" />
4658      </rect>
47      <text string="DISCARD 5" state="1">
59      <rect state="0">
60         <color red="0.3" green="0.0" blue="0.0" />
61      </rect>
62      <text string="DISCARD 5">
4863         <color red="0.0" green="0.0" blue="0.0" />
4964         <bounds x="0" y="0.1" width="1" height="0.8" />
5065      </text>
5166   </element>
5267
53   <element name="stand" defstate="1">
54      <rect>
68   <element name="stand">
69      <rect state="1">
5570         <color red="1.0" green="0.5" blue="0.0" />
5671      </rect>
57      <text string="FB-DRAW / STAND" state="1">
72      <rect state="0">
73         <color red="0.3" green="0.1" blue="0.0" />
74      </rect>
75      <text string="FB-DRAW / STAND">
5876         <color red="0.0" green="0.0" blue="0.0" />
5977         <bounds x="0" y="0.1" width="1" height="0.8" />
6078      </text>
6179   </element>
6280
63   <element name="hit" defstate="1">
64      <rect>
81   <element name="hit">
82      <rect state="1">
6583         <color red="1.0" green="0.5" blue="0.0" />
6684      </rect>
67      <text string="DEAL / HIT" state="1">
85      <rect state="0">
86         <color red="0.3" green="0.1" blue="0.0" />
87      </rect>
88      <text string="DEAL / HIT">
6889         <color red="0.0" green="0.0" blue="0.0" />
6990         <bounds x="0" y="0.1" width="1" height="0.8" />
7091      </text>
7192   </element>
7293
73   <element name="bet" defstate="1">
74      <rect>
94   <element name="bet">
95      <rect state="1">
7596         <color red="1.0" green="0.5" blue="0.0" />
7697      </rect>
77      <text string="ANTE / BET" state="1">
98      <rect state="0">
99         <color red="0.3" green="0.1" blue="0.0" />
100      </rect>
101      <text string="ANTE / BET">
78102         <color red="0.0" green="0.0" blue="0.0" />
79103         <bounds x="0" y="0.1" width="1" height="0.8" />
80104      </text>
81105   </element>
82106
83   <element name="start" defstate="1">
84      <rect>
107   <element name="start">
108      <rect state="1">
85109         <color red="1.0" green="0.5" blue="0.0" />
86110      </rect>
87      <text string="START" state="1">
111      <rect state="0">
112         <color red="0.3" green="0.1" blue="0.0" />
113      </rect>
114      <text string="START">
88115         <color red="0.0" green="0.0" blue="0.0" />
89116         <bounds x="0" y="0.1" width="1" height="0.8" />
90117      </text>
src/mame/layout/pulltabs.lay
r3451r3452
11<?xml version="1.0"?>
22<mamelayout version="2">
3   <element name="tab1" defstate="1">
4      <rect>
3   <element name="tab1">
4      <rect state="1">
55         <color red="1.0" green="0.0" blue="0.0" />
66      </rect>
7      <text string="SUPER STAR" state="1">
7      <rect state="0">
8         <color red="0.3" green="0.0" blue="0.0" />
9      </rect>
10      <text string="SUPER STAR">
811         <color red="0.0" green="0.0" blue="0.0" />
912         <bounds x="0" y="0.1" width="1" height="0.8" />
1013      </text>
1114   </element>
1215
13   <element name="tab2" defstate="1">
14      <rect>
16   <element name="tab2">
17      <rect state="1">
1518         <color red="1.0" green="0.0" blue="0.0" />
1619      </rect>
17      <text string="LADY LUCK" state="1">
20      <rect state="0">
21         <color red="0.3" green="0.0" blue="0.0" />
22      </rect>
23      <text string="LADY LUCK">
1824         <color red="0.0" green="0.0" blue="0.0" />
1925         <bounds x="0" y="0.1" width="1" height="0.8" />
2026      </text>
2127   </element>
2228
23   <element name="tab3" defstate="1">
24      <rect>
29   <element name="tab3">
30      <rect state="1">
2531         <color red="1.0" green="0.0" blue="0.0" />
2632      </rect>
27      <text string="BIG BAR" state="1">
33      <rect state="0">
34         <color red="0.3" green="0.0" blue="0.0" />
35      </rect>
36      <text string="BIG BAR">
2837         <color red="0.0" green="0.0" blue="0.0" />
2938         <bounds x="0" y="0.1" width="1" height="0.8" />
3039      </text>
3140   </element>
3241
33   <element name="bet" defstate="1">
34      <rect>
42   <element name="bet">
43      <rect state="1">
3544         <color red="1.0" green="0.5" blue="0.0" />
3645      </rect>
37      <text string="ANTE/BET" state="1">
46      <rect state="0">
47         <color red="0.3" green="0.1" blue="0.0" />
48      </rect>
49      <text string="ANTE/BET">
3850         <color red="0.0" green="0.0" blue="0.0" />
3951         <bounds x="0" y="0.1" width="1" height="0.8" />
4052      </text>
4153   </element>
4254
43
4455   <view name="Button Lamps">
4556      <screen index="0">
4657         <bounds left="0" top="0" right="4" bottom="3" />
r3451r3452
6172      <bezel name="lamp2" element="tab3">
6273         <bounds x="2.70" y="3.02" width="1.00" height="0.24" />
6374      </bezel>
64
6575   </view>
6676</mamelayout>
src/mame/drivers/jackal.c
r3451r3452
1313  necessarily mean anything.
1414
1515TODO:
16- Sprite lag
1716- Coin counters don't work correctly, because the register is overwritten by
1817  other routines and the coin counter bits rapidly toggle between 0 and 1.
1918- running the sound CPU at the nominal clock rate, music stops working at the
src/mame/drivers/cps2.c
r3451r3452
32093209   ROM_LOAD16_WORD_SWAP( "ggw.12m",   0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) )
32103210ROM_END
32113211
3212ROM_START( gwingb )
3213   ROM_REGION(CODE_SIZE, "main", 0 )      /* 68000 code */
3214   ROM_LOAD16_WORD_SWAP( "ggwb.03a", 0x000000, 0x80000, CRC(a1f8a448) SHA1(a88ed9fea9ec08fda59a1ca9622dfb9f8afdda78) )
3215   ROM_LOAD16_WORD_SWAP( "ggwb.04a", 0x080000, 0x80000, CRC(6a423e76) SHA1(f6ed20f09e852b4fad78ee32617122d5deb98789) )
3216   ROM_LOAD16_WORD_SWAP( "ggwb.05a", 0x100000, 0x80000, CRC(3239d642) SHA1(2fe3984c46a72aedb30a28e3db5af2612bdf0045) )
32123217
3218   ROM_REGION( 0x1000000, "gfx", 0 )
3219   ROMX_LOAD( "ggw.13m",   0x000000, 0x400000, CRC(105530a4) SHA1(3be06c032985ea6bd3805d73a407bf748385087b) , ROM_GROUPWORD | ROM_SKIP(6) )
3220   ROMX_LOAD( "ggw.15m",   0x000002, 0x400000, CRC(9e774ab9) SHA1(adea1e844f3d9ccd5ad116ff8277f16a96e68d76) , ROM_GROUPWORD | ROM_SKIP(6) )
3221   ROMX_LOAD( "ggw.17m",   0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) , ROM_GROUPWORD | ROM_SKIP(6) )
3222   ROMX_LOAD( "ggw.19m",   0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) , ROM_GROUPWORD | ROM_SKIP(6) )
3223
3224   ROM_REGION(QSOUND_SIZE, "audio", 0 ) /* 64k for the audio CPU (+banks) */
3225   ROM_LOAD( "ggw.01",   0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) )
3226   ROM_CONTINUE(         0x10000, 0x18000 )
3227
3228   ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
3229   ROM_LOAD16_WORD_SWAP( "ggw.11m",   0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) )
3230   ROM_LOAD16_WORD_SWAP( "ggw.12m",   0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) )
3231ROM_END
3232
3233
32133234ROM_START( hsf2 )
32143235   ROM_REGION( CODE_SIZE, "main", 0 )      /* 68000 code */
32153236   ROM_LOAD16_WORD_SWAP( "hs2a.03",  0x000000, 0x80000, CRC(d50a17e0) SHA1(5d8d6d309260cc2d862aa080d44a72886ee08c77) )
r3451r3452
75157536GAME( 1999, gigawing, 0,        cps2, cps2_2p2b, cps2,     ROT0,   "Capcom, supported by Takumi", "Giga Wing (USA 990222)", 0 )
75167537GAME( 1999, gwingj,   gigawing, cps2, cps2_2p2b, cps2,     ROT0,   "Capcom, supported by Takumi", "Giga Wing (Japan 990223)", 0 )
75177538GAME( 1999, gwinga,   gigawing, cps2, cps2_2p2b, cps2,     ROT0,   "Capcom, supported by Takumi", "Giga Wing (Asia 990222)", 0 )
7539GAME( 1999, gwingb,   gigawing, cps2, cps2_2p2b, cps2,     ROT0,   "Capcom, supported by Takumi", "Giga Wing (Brazil 990222)", 0 )
75187540GAME( 2000, mmatrix,  0,        cps2, cps2_2p1b, cps2,     ROT0,   "Capcom, supported by Takumi", "Mars Matrix: Hyper Solid Shooting (USA 000412)", 0 )
75197541GAME( 2000, mmatrixj, mmatrix,  cps2, cps2_2p1b, cps2,     ROT0,   "Capcom, supported by Takumi", "Mars Matrix: Hyper Solid Shooting (Japan 000412)", 0 )
75207542
src/mame/drivers/yumefuda.c
r3451r3452
1111
1212TODO:
1313-Correct Bankswitch emulation.Obviously I'm not happy with the current implementation...
14
1514-Finish controls.
15-"Custom RAM" emulation might be a simple protection issue.
16-Need a proper screenshot of the real thing for the colors but I think they are accurate.
1617
17-Custom RAM emulation.
18
19-Fix the colors.
20
2118============================================================================================
2219Code disassembling
2320(anything that I don't know the meaning is in brackets):
r3451r3452
194191   mux_data = data & ~0xc0;
195192}
196193
197
198194/***************************************************************************************/
199195
200196static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
r3451r3452
203199   AM_RANGE(0xa7fc, 0xa7fc) AM_WRITE(prot_lock_w)
204200   AM_RANGE(0xa7ff, 0xa7ff) AM_WRITE(eeprom_w)
205201   AM_RANGE(0xaf80, 0xafff) AM_READWRITE(custom_ram_r, custom_ram_w) AM_BASE(&cus_ram) /*260d - 2626*/
206   AM_RANGE(0xb000, 0xb0ff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE(&paletteram) /*Wrong format*/
202   AM_RANGE(0xb000, 0xb07f) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_split1_w) AM_BASE(&paletteram) /*Custom Format*/
203   AM_RANGE(0xb080, 0xb0ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_split2_w) AM_BASE(&paletteram_2) /*Custom Format*/
207204   AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(yumefuda_vram_w) AM_BASE(&videoram)
208205   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(yumefuda_cram_w) AM_BASE(&colorram)
209206   AM_RANGE(0xe000, 0xffff) AM_RAM
r3451r3452
246243   MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1)
247244
248245   MDRV_GFXDECODE( yumefuda )
249   MDRV_PALETTE_LENGTH(0x100)
246   MDRV_PALETTE_LENGTH(0x80)
250247
251248   MDRV_VIDEO_START( yumefuda )
252249   MDRV_VIDEO_UPDATE( yumefuda )
r3451r3452
439436   ROM_LOAD("zg001003.u3", 0xc000, 0x4000, CRC(5822ff27) SHA1(d40fa0790de3c912f770ef8f610bd8c42bc3500f))
440437ROM_END
441438
442GAME( 198?, yumefuda, 0, yumefuda, yumefuda, 0, ROT0, "Alba", "(Medal) Yumefuda [BET]", GAME_NOT_WORKING | GAME_WRONG_COLORS )
439GAME( 198?, yumefuda, 0, yumefuda, yumefuda, 0, ROT0, "Alba", "(Medal) Yumefuda [BET]", GAME_NOT_WORKING )
src/mame/drivers/gatron.c
r3451r3452
175175    DRIVER UPDATES:
176176
177177
178    [2008-10-14]
179
180    - Improved the button-lamps layouts to look more realistic.
181
182
178183    [2008-08-21]
179184
180185    After an exhaustive analysis to the unknown writes, finally figured out the missing sound device.
src/mame/drivers/galdrvr.c
r3451r3452
37773777
37783778   ROM_REGION( 0x2000, "samples", 0 )   /* samples */
37793779   ROM_LOAD( "my07",         0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
3780   ROM_LOAD( "my06",         0x1000, 0x1000, CRC(466415f2) SHA1(a05f8238cdcebe926a564ef6268b3cd677987fa2) )
3780   ROM_LOAD( "my06.4r",      0x1000, 0x1000, CRC(4162be4d) SHA1(84fa8651796e498a37893ea90ef51b274c70e568) )
37813781ROM_END
37823782
37833783ROM_START( mshutlj2 )
r3451r3452
38003800
38013801   ROM_REGION( 0x2000, "samples", 0 )   /* samples */
38023802   ROM_LOAD( "my07",         0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
3803   ROM_LOAD( "my06",         0x1000, 0x1000, CRC(466415f2) SHA1(a05f8238cdcebe926a564ef6268b3cd677987fa2) )
3803   ROM_LOAD( "my06.4r",      0x1000, 0x1000, CRC(4162be4d) SHA1(84fa8651796e498a37893ea90ef51b274c70e568) )
38043804ROM_END
38053805
38063806
src/mame/drivers/firefox.c
r3451r3452
6161
6262static const device_config *laserdisc;
6363static int m_n_disc_lock;
64static int m_n_disc_left_audio;
65static int m_n_disc_right_audio;
6664static int m_n_disc_data;
6765static int m_n_disc_read_data;
6866
r3451r3452
104102
105103static WRITE8_HANDLER( audio_enable_w )
106104{
107   if (!(offset & 1))
108      m_n_disc_right_audio = data & 0x80;
109   else
110      m_n_disc_left_audio = data & 0x80;
105   sndti_set_output_gain(SOUND_CUSTOM, 0, ~offset & 1, (data & 0x80) ? 1.0 : 0.0);
111106}
112107
113108static WRITE8_HANDLER( firefox_disc_reset_w )
r3451r3452
502497 *
503498 *************************************/
504499
505static ADDRESS_MAP_START(audio_map, ADDRESS_SPACE_PROGRAM, 8)
500static ADDRESS_MAP_START( audio_map, ADDRESS_SPACE_PROGRAM, 8 )
506501   AM_RANGE(0x0000, 0x07ff) AM_RAM
507502   AM_RANGE(0x0800, 0x087f) AM_MIRROR(0x0700) AM_RAM /* RIOT ram */
508503   AM_RANGE(0x0880, 0x089f) AM_MIRROR(0x07e0) AM_DEVREADWRITE(RIOT6532,"riot",riot6532_r, riot6532_w)
r3451r3452
686681   MDRV_SPEAKER_STANDARD_STEREO("left", "right")
687682
688683   MDRV_SOUND_ADD("pokey1", POKEY, MASTER_XTAL/8)
689   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.20)
690   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.20)
684   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
685   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
691686
692687   MDRV_SOUND_ADD("pokey2", POKEY, MASTER_XTAL/8)
693   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.20)
694   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.20)
688   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
689   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
695690
696691   MDRV_SOUND_ADD("pokey3", POKEY, MASTER_XTAL/8)
697   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.20)
698   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.20)
692   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
693   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
699694
700695   MDRV_SOUND_ADD("pokey4", POKEY, MASTER_XTAL/8)
701   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.20)
702   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.20)
696   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
697   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
703698
704   MDRV_SOUND_ADD("tms", TMS5220, MASTER_XTAL/2/10)
705   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50)
706   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50)
699   MDRV_SOUND_ADD("tms", TMS5220, MASTER_XTAL/2/11)
700   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.75)
701   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.75)
707702
708703   MDRV_SOUND_ADD("ldsound", CUSTOM, 0)
709704   MDRV_SOUND_CONFIG(laserdisc_custom_interface)
710   MDRV_SOUND_ROUTE(0, "left", 1.0)
711   MDRV_SOUND_ROUTE(1, "right", 1.0)
705   MDRV_SOUND_ROUTE(0, "left", 0.50)
706   MDRV_SOUND_ROUTE(1, "right", 0.50)
712707MACHINE_DRIVER_END
713708
714709
src/mame/drivers/good.c
r3451r3452
8686   AM_RANGE(0x000000, 0x01ffff) AM_ROM
8787
8888   //AM_RANGE(0x270000, 0x270007) AM_RAM // scroll?
89   AM_RANGE(0x270000, 0x270001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w)
8990
9091   AM_RANGE(0x280000, 0x280001) AM_READ_PORT("IN0")
9192   AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN1")
r3451r3452
101102
102103static INPUT_PORTS_START( good )
103104   PORT_START("IN0")
104   PORT_DIPNAME( 0x0001, 0x0001, "0" )
105   PORT_DIPSETTING(  0x0001, DEF_STR( Off ) )
106   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
107   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
108   PORT_DIPSETTING(  0x0002, DEF_STR( Off ) )
109   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
110   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
111   PORT_DIPSETTING(  0x0004, DEF_STR( Off ) )
112   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
113   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
114   PORT_DIPSETTING(  0x0008, DEF_STR( Off ) )
115   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
116   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
117   PORT_DIPSETTING(  0x0010, DEF_STR( Off ) )
118   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
119   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
120   PORT_DIPSETTING(  0x0020, DEF_STR( Off ) )
121   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
122   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
123   PORT_DIPSETTING(  0x0040, DEF_STR( Off ) )
124   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
105   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
106   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
107   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
108   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
109   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
110   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
111   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
125112   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
126113   PORT_DIPSETTING(  0x0080, DEF_STR( Off ) )
127114   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
r3451r3452
175162   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
176163   PORT_DIPSETTING(  0x0080, DEF_STR( Off ) )
177164   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
178   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
179   PORT_DIPSETTING(  0x0100, DEF_STR( Off ) )
180   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
181   PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
182   PORT_DIPSETTING(  0x0200, DEF_STR( Off ) )
183   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
165   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
166   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
184167   PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
185168   PORT_DIPSETTING(  0x0400, DEF_STR( Off ) )
186169   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
r3451r3452
200183   PORT_DIPSETTING(  0x8000, DEF_STR( Off ) )
201184   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
202185
186   /*The following appears to be DSW*/
203187   PORT_START("IN2")
204188   PORT_DIPNAME( 0x0001, 0x0001, "2" )
205189   PORT_DIPSETTING(  0x0001, DEF_STR( Off ) )
206190   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
207   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
208   PORT_DIPSETTING(  0x0002, DEF_STR( Off ) )
209   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
210   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
211   PORT_DIPSETTING(  0x0004, DEF_STR( Off ) )
212   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
213   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
214   PORT_DIPSETTING(  0x0008, DEF_STR( Off ) )
215   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
191   PORT_DIPNAME( 0x000e, 0x000e, "Credits per Coin" )
192   PORT_DIPSETTING(  0x000e, "50"  )
193   PORT_DIPSETTING(  0x000c, "60"  )
194   PORT_DIPSETTING(  0x000a, "70"  )
195   PORT_DIPSETTING(  0x0008, "80"  )
196   PORT_DIPSETTING(  0x0006, "100" )
197   PORT_DIPSETTING(  0x0004, "120" )
198   PORT_DIPSETTING(  0x0002, "150" )
199   PORT_DIPSETTING(  0x0000, "200" )
216200   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
217201   PORT_DIPSETTING(  0x0010, DEF_STR( Off ) )
218202   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
r3451r3452
222206   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
223207   PORT_DIPSETTING(  0x0040, DEF_STR( Off ) )
224208   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
225   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
209   PORT_DIPNAME( 0x0080, 0x0080, "Double Up Test Mode" )
226210   PORT_DIPSETTING(  0x0080, DEF_STR( Off ) )
227211   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
228212   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
r3451r3452
234218   PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
235219   PORT_DIPSETTING(  0x0400, DEF_STR( Off ) )
236220   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
237   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
221   PORT_DIPNAME( 0x0800, 0x0800, "Mature Content" )
238222   PORT_DIPSETTING(  0x0800, DEF_STR( Off ) )
239223   PORT_DIPSETTING(  0x0000, DEF_STR( On ) )
240224   PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
r3451r3452
314298   ROM_LOAD16_BYTE( "grp-04", 0x40001, 0x20000, CRC(83dbbb52) SHA1(e597f3cbb54b5cdf2230ea6318f970319061e31b) )
315299ROM_END
316300
317GAME( 1998, good,0,good,good,0, ROT0,  "unknown", "Good (Korea)", GAME_NOT_WORKING )
301GAME( 1998, good,0,good,good,0, ROT0,  "unknown", "Good (Korea)", 0 )
src/mame/drivers/merit.c
r3451r3452
199199   for (cx = 0; cx < x_count; cx++)
200200   {
201201      int i;
202      int attr = ram_attr[ma];
202      int attr = ram_attr[ma & 0x7ff];
203203      int region = (attr & 0x40) >> 6;
204      int addr = ((ram_video[ma] | ((attr & 0x80) << 1) | (extra_video_bank_bit)) << 4) | (ra & 0x0f);
204      int addr = ((ram_video[ma & 0x7ff] | ((attr & 0x80) << 1) | (extra_video_bank_bit)) << 4) | (ra & 0x0f);
205205      int colour = (attr & 0x7f) << 3;
206206      UINT8   *data;
207207
src/mame/drivers/legionna.c
r3451r3452
4040
4141Need a sound kludge to start.
4242
43Bad Sprite rom - half size, causes missing sprite graphics.
4443
45
4644Godzilla
4745--------
4846
src/mame/drivers/nmk16.c
r3451r3452
57385738   ROM_REGION( 0x020000, "gfx1", ROMREGION_DISPOSE )
57395739   ROM_LOAD( "hmf_05.rom",  0x000000, 0x020000, CRC(29fb04a2) SHA1(9654b90a66d0e2a0f9cd369cab29cdd0c6f77869) )   /* 8x8 tiles */
57405740
5741   ROM_REGION( 0x80000, "gfx2", ROMREGION_DISPOSE )
5742   ROM_LOAD( "hmf_04.rom",  0x000000, 0x080000, CRC(05a624e3) SHA1(e1b686b36c0adedfddf70eeb6411671bbcd897d8) )   /* 16x16 tiles */
5743   //ROM_COPY( "gfx2",   0x0c8000, 0x000000, 0x038000)
5741   ROM_REGION( 0x100000, "gfx2", ROMREGION_DISPOSE ) /* 16x16 tiles */
5742   // the first half of this rom is missing, the game uses 2 banks, most of the graphics needed aren't present
5743   ROM_LOAD( "hmf_04.rom",  0x080000, 0x080000, BAD_DUMP CRC(05a624e3) SHA1(e1b686b36c0adedfddf70eeb6411671bbcd897d8) )
57445744
57455745   ROM_REGION( 0x100000, "gfx3", ROMREGION_DISPOSE )
57465746   ROM_LOAD16_WORD_SWAP( "hmf_08.rom",  0x000000, 0x100000, CRC(7fd0f556) SHA1(d1b4bec0946869d3d7bcb870d9ae3bd17395a231) )   /* Sprites */
src/tools/ldverify.c
r3451r3452
650650static int usage(void)
651651{
652652   fprintf(stderr, "Usage: \n");
653   fprintf(stderr, "  ldverify [avifile.avi|chdfile.chd]\n");
653   fprintf(stderr, "  ldverify <avifile.avi|chdfile.chd>\n");
654654   return 1;
655655}
656656
src/tools/tools.mak
r3451r3452
2626   romcmp$(EXE) \
2727   chdman$(EXE) \
2828   jedutil$(EXE) \
29   ldresample$(EXE) \
2930   ldverify$(EXE) \
3031   regrep$(EXE) \
3132   srcclean$(EXE) \
r3451r3452
7475
7576
7677#-------------------------------------------------
78# ldresample
79#-------------------------------------------------
80
81LDRESAMPLEOBJS = \
82   $(TOOLSOBJ)/ldresample.o \
83
84ldresample$(EXE): $(LDRESAMPLEOBJS) $(LIBUTIL) $(LIBOCORE) $(ZLIB) $(EXPAT)
85   @echo Linking $@...
86   $(LD) $(LDFLAGS) $^ $(LIBS) -o $@
87
88
89
90#-------------------------------------------------
7791# ldverify
7892#-------------------------------------------------
7993
src/tools/ldresample.c
r0r3452
1/***************************************************************************
2
3    ldresample.c
4
5    Laserdisc audio synchronizer and resampler.
6
7    Copyright Nicola Salmoria and the MAME Team.
8    Visit http://mamedev.org for licensing and usage restrictions.
9
10***************************************************************************/
11
12#include <stdio.h>
13#include <ctype.h>
14#include <math.h>
15#include "bitmap.h"
16#include "chd.h"
17#include "vbiparse.h"
18
19
20
21/***************************************************************************
22    CONSTANTS
23***************************************************************************/
24
25/* size of window where we scan ahead to find maximum; this should be large enough to
26   catch peaks of even slow waves */
27#define MAXIMUM_WINDOW_SIZE      40
28
29/* number of standard deviations away from silence that we consider a real signal */
30#define SIGNAL_DEVIATIONS      100
31
32/* number of standard deviations away from silence that we consider the start of a signal */
33#define SIGNAL_START_DEVIATIONS   5
34
35/* number of consecutive entries of signal before we consider that we found it */
36#define MINIMUM_SIGNAL_COUNT   20
37
38
39
40/***************************************************************************
41    TYPE DEFINITIONS
42***************************************************************************/
43
44typedef struct _movie_info movie_info;
45struct _movie_info
46{
47   double      framerate;
48   int         iframerate;
49   int         numfields;
50   int         width;
51   int         height;
52   int         samplerate;
53   int         channels;
54   int         interlaced;
55   bitmap_t *   bitmap;
56   INT16 *      lsound;
57   INT16 *      rsound;
58   UINT32      samples;
59};
60
61
62
63/***************************************************************************
64    GLOBAL VARIABLES
65***************************************************************************/
66
67
68
69/***************************************************************************
70    INLINE FUNCTIONS
71***************************************************************************/
72
73/*-------------------------------------------------
74    field_to_sample_number - given a field number
75    compute the absolute sample number for the
76    first sample of that field
77-------------------------------------------------*/
78
79INLINE UINT32 field_to_sample_number(const movie_info *info, UINT32 field)
80{
81   return ((UINT64)info->samplerate * (UINT64)field * (UINT64)1000000 + info->iframerate - 1) / (UINT64)info->iframerate;
82}
83
84
85/*-------------------------------------------------
86    sample_number_to_field - given a sample number
87    compute the field where it is located and
88    the offset within the field
89-------------------------------------------------*/
90
91INLINE UINT32 sample_number_to_field(const movie_info *info, UINT32 samplenum, UINT32 *offset)
92{
93   UINT32 guess = ((UINT64)samplenum * (UINT64)info->iframerate + ((UINT64)info->samplerate * (UINT64)1000000 - 1)) / ((UINT64)info->samplerate * (UINT64)1000000);
94   while (1)
95   {
96      UINT32 fieldstart = field_to_sample_number(info, guess);
97      UINT32 fieldend = field_to_sample_number(info, guess + 1);
98      if (samplenum >= fieldstart && samplenum < fieldend)
99      {
100         *offset = samplenum - fieldstart;
101         return guess;
102      }
103      else if (samplenum < fieldstart)
104         guess--;
105      else
106         guess++;
107   }
108}
109
110
111
112/***************************************************************************
113    CHD HANDLING
114***************************************************************************/
115
116/*-------------------------------------------------
117    chd_allocate_buffers - allocate buffers for
118    CHD I/O
119-------------------------------------------------*/
120
121static int chd_allocate_buffers(movie_info *info)
122{
123   /* allocate a bitmap */
124   info->bitmap = bitmap_alloc(info->width, info->height, BITMAP_FORMAT_YUY16);
125   if (info->bitmap == NULL)
126   {
127      fprintf(stderr, "Out of memory creating %dx%d bitmap\n", info->width, info->height);
128      return FALSE;
129   }
130
131   /* allocate sound buffers */
132   info->lsound = malloc(info->samplerate * sizeof(*info->lsound));
133   info->rsound = malloc(info->samplerate * sizeof(*info->rsound));
134   if (info->lsound == NULL || info->rsound == NULL)
135   {
136      fprintf(stderr, "Out of memory allocating sound buffers of %d bytes\n", (INT32)(info->samplerate * sizeof(*info->rsound)));
137      return FALSE;
138   }
139   return TRUE;
140}
141
142
143/*-------------------------------------------------
144    chd_free_buffers - release buffers for
145    CHD I/O
146-------------------------------------------------*/
147
148static void chd_free_buffers(movie_info *info)
149{
150   if (info->bitmap != NULL)
151      free(info->bitmap);
152   if (info->lsound != NULL)
153      free(info->lsound);
154   if (info->rsound != NULL)
155      free(info->rsound);
156}
157
158
159/*-------------------------------------------------
160    open_chd - open a CHD file and return
161    information about it
162-------------------------------------------------*/
163
164static chd_file *open_chd(const char *filename, movie_info *info)
165{
166   int fps, fpsfrac, width, height, interlaced, channels, rate;
167   char metadata[256];
168   chd_error chderr;
169   chd_file *chd;
170
171   /* open the file */
172   chderr = chd_open(filename, CHD_OPEN_READ, NULL, &chd);
173   if (chderr != CHDERR_NONE)
174   {
175      fprintf(stderr, "Error opening CHD file: %s\n", chd_error_string(chderr));
176      return NULL;
177   }
178
179   /* get the metadata */
180   chderr = chd_get_metadata(chd, AV_METADATA_TAG, 0, metadata, sizeof(metadata), NULL, NULL);
181   if (chderr != CHDERR_NONE)
182   {
183      fprintf(stderr, "Error getting A/V metadata: %s\n", chd_error_string(chderr));
184      chd_close(chd);
185      return NULL;
186   }
187
188   /* extract the info */
189   if (sscanf(metadata, AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
190   {
191      fprintf(stderr, "Improperly formatted metadata\n");
192      chd_close(chd);
193      return NULL;
194   }
195
196   /* extract movie info */
197   info->iframerate = fps * 1000000 + fpsfrac;
198   info->framerate = info->iframerate / 1000000.0;
199   info->numfields = chd_get_header(chd)->totalhunks;
200   info->width = width;
201   info->height = height;
202   info->interlaced = interlaced;
203   info->samplerate = rate;
204   info->channels = channels;
205
206   /* allocate buffers */
207   if (!chd_allocate_buffers(info))
208      return NULL;
209
210   return chd;
211}
212
213
214/*-------------------------------------------------
215    create_chd - create a new CHD file
216-------------------------------------------------*/
217
218static chd_file *create_chd(const char *filename, chd_file *source, const movie_info *info)
219{
220   const chd_header *srcheader = chd_get_header(source);
221   chd_error chderr;
222   chd_file *chd;
223
224   /* create the file */
225   chderr = chd_create(filename, srcheader->logicalbytes, srcheader->hunkbytes, CHDCOMPRESSION_AV, NULL);
226   if (chderr != CHDERR_NONE)
227   {
228      fprintf(stderr, "Error creating new CHD file: %s\n", chd_error_string(chderr));
229      return NULL;
230   }
231
232   /* open the file */
233   chderr = chd_open(filename, CHD_OPEN_READWRITE, NULL, &chd);
234   if (chderr != CHDERR_NONE)
235   {
236      fprintf(stderr, "Error opening new CHD file: %s\n", chd_error_string(chderr));
237      return NULL;
238   }
239
240   /* clone the metadata */
241   chderr = chd_clone_metadata(source, chd);
242   if (chderr != CHDERR_NONE)
243   {
244      fprintf(stderr, "Error cloning metadata: %s\n", chd_error_string(chderr));
245      chd_close(chd);
246      return NULL;
247   }
248
249   /* begin compressing */
250   chderr = chd_compress_begin(chd);
251   if (chderr != CHDERR_NONE)
252   {
253      fprintf(stderr, "Error beginning compression: %s\n", chd_error_string(chderr));
254      return NULL;
255   }
256
257   return chd;
258}
259
260
261/*-------------------------------------------------
262    read_chd - read a field from a CHD file
263-------------------------------------------------*/
264
265static int read_chd(chd_file *file, UINT32 field, movie_info *info, UINT32 soundoffs)
266{
267   av_codec_decompress_config avconfig = { 0 };
268   chd_error chderr;
269
270   /* configure the codec */
271   avconfig.video = info->bitmap;
272   avconfig.maxsamples = 48000;
273   avconfig.actsamples = &info->samples;
274   avconfig.audio[0] = info->lsound + soundoffs;
275   avconfig.audio[1] = info->rsound + soundoffs;
276
277   /* configure the decompressor for this field */
278   chd_codec_config(file, AV_CODEC_DECOMPRESS_CONFIG, &avconfig);
279
280   /* read the field */
281   chderr = chd_read(file, field, NULL);
282   if (chderr != CHDERR_NONE)
283      return FALSE;
284
285   return TRUE;
286}
287
288
289/*-------------------------------------------------
290    write_chd - write a field to a CHD file
291-------------------------------------------------*/
292
293static int write_chd(chd_file *file, UINT32 field, movie_info *info)
294{
295   av_codec_compress_config avconfig = { 0 };
296   chd_error chderr;
297
298   /* configure the codec */
299   avconfig.video = info->bitmap;
300   avconfig.channels = 2;
301   avconfig.samples = info->samples;
302   avconfig.audio[0] = info->lsound;
303   avconfig.audio[1] = info->rsound;
304
305   /* configure the decompressor for this field */
306   chd_codec_config(file, AV_CODEC_COMPRESS_CONFIG, &avconfig);
307
308   /* read the field */
309   chderr = chd_compress_hunk(file, NULL, NULL);
310   if (chderr != CHDERR_NONE)
311      return FALSE;
312
313   return TRUE;
314}
315
316
317/*-------------------------------------------------
318    create_close_chd - close a CHD file
319-------------------------------------------------*/
320
321static void create_close_chd(chd_file *file)
322{
323   chd_error err;
324
325   err = chd_compress_finish(file);
326   if (err != CHDERR_NONE)
327      fprintf(stderr, "Error finishing compression: %s\n", chd_error_string(err));
328
329   chd_close(file);
330}
331
332
333/*-------------------------------------------------
334    close_chd - close a CHD file
335-------------------------------------------------*/
336
337static void close_chd(chd_file *file, movie_info *info)
338{
339   if (info != NULL)
340      chd_free_buffers(info);
341   chd_close(file);
342}
343
344
345
346/***************************************************************************
347    CORE IMPLEMENTATION
348***************************************************************************/
349
350/*-------------------------------------------------
351    find_edge_near_field - given a field number,
352    load +/- 1/2 second on either side and find
353    an audio edge
354-------------------------------------------------*/
355
356static int find_edge_near_field(chd_file *srcfile, UINT32 fieldnum, movie_info *info, int report_best_field, INT32 *delta)
357{
358   int fields_to_read = info->iframerate / 1000000;
359   UINT32 firstlavg = 0, firstravg = 0;
360   UINT32 firstldev = 0, firstrdev = 0;
361   UINT32 lcount = 0, rcount = 0;
362   UINT32 targetsoundstart = 0;
363   UINT32 firstfieldend = 0;
364   INT32 firstfield, curfield;
365   UINT32 fieldstart[100];
366   UINT32 soundend = 0;
367   UINT32 sampnum;
368
369   /* clear the sound buffers */
370   memset(info->lsound, 0, info->samplerate * sizeof(*info->lsound));
371   memset(info->rsound, 0, info->samplerate * sizeof(*info->rsound));
372
373   /* read 1 second around the target area */
374   firstfield = fieldnum - (fields_to_read / 2);
375   for (curfield = 0; curfield < fields_to_read; curfield++)
376   {
377      /* remember the start of each field */
378      fieldstart[curfield] = soundend;
379
380      /* remember the sound offset where the initial fieldnum is */
381      if (firstfield + curfield == fieldnum)
382         targetsoundstart = soundend;
383
384      /* read the frame and samples */
385      if (firstfield + curfield >= 0)
386      {
387         read_chd(srcfile, firstfield + curfield, info, soundend);
388         soundend += info->samples;
389
390         /* also remember the offset at the end of the first field */
391         if (firstfieldend == 0)
392            firstfieldend = soundend;
393      }
394   }
395
396   /* compute absolute deltas across the samples */
397   for (sampnum = 0; sampnum < soundend; sampnum++)
398   {
399      info->lsound[sampnum] = labs(info->lsound[sampnum + 1] - info->lsound[sampnum]);
400      info->rsound[sampnum] = labs(info->rsound[sampnum + 1] - info->rsound[sampnum]);
401   }
402
403   /* for each sample in the collection, find the highest deltas over the
404       next few samples, and take the nth highest value (to remove outliers) */
405   for (sampnum = 0; sampnum < soundend - MAXIMUM_WINDOW_SIZE; sampnum++)
406   {
407      UINT32 lmax = 0, rmax = 0;
408      UINT32 scannum;
409
410      /* scan forward over the maximum window */
411      for (scannum = 0; scannum < MAXIMUM_WINDOW_SIZE; scannum++)
412      {
413         if (info->lsound[sampnum + scannum] > lmax)
414            lmax = info->lsound[sampnum + scannum];
415         if (info->rsound[sampnum + scannum] > rmax)
416            rmax = info->rsound[sampnum + scannum];
417      }
418
419      /* replace this sample with the maximum value found */
420      info->lsound[sampnum] = lmax;
421      info->rsound[sampnum] = rmax;
422   }
423
424   /* now compute the average over the first field, which is assumed to be silence */
425   for (sampnum = 0; sampnum < firstfieldend; sampnum++)
426   {
427      firstlavg += info->lsound[sampnum];
428      firstravg += info->rsound[sampnum];
429   }
430   firstlavg /= firstfieldend;
431   firstravg /= firstfieldend;
432
433   /* then compute the standard deviation over the first field */
434   for (sampnum = 0; sampnum < firstfieldend; sampnum++)
435   {
436      firstldev += (info->lsound[sampnum] - firstlavg) * (info->lsound[sampnum] - firstlavg);
437      firstrdev += (info->rsound[sampnum] - firstravg) * (info->rsound[sampnum] - firstravg);
438   }
439   firstldev = sqrt((double)firstldev / firstfieldend);
440   firstrdev = sqrt((double)firstrdev / firstfieldend);
441
442   /* scan forward through the samples, counting consecutive samples more than
443       SIGNAL_DEVIATIONS standard deviations away from silence */
444   for (sampnum = 0; sampnum < soundend; sampnum++)
445   {
446      /* left speaker */
447      if (info->lsound[sampnum] > firstlavg + SIGNAL_DEVIATIONS * firstldev)
448         lcount++;
449      else
450         lcount = 0;
451
452      /* right speaker */
453      if (info->rsound[sampnum] > firstravg + SIGNAL_DEVIATIONS * firstrdev)
454         rcount++;
455      else
456         rcount = 0;
457
458      /* stop if we find enough */
459      if (lcount > MINIMUM_SIGNAL_COUNT || rcount > MINIMUM_SIGNAL_COUNT)
460         break;
461   }
462
463   /* if we didn't find any, return failure */
464   if (sampnum >= soundend)
465   {
466      if (!report_best_field)
467         printf("Field %5d: Unable to find edge\n", fieldnum);
468      return FALSE;
469   }
470
471   /* scan backwards to find the start of the signal */
472   for ( ; sampnum > 0; sampnum--)
473      if (info->lsound[sampnum - 1] < firstlavg + SIGNAL_START_DEVIATIONS * firstldev ||
474         info->rsound[sampnum - 1] < firstravg + SIGNAL_START_DEVIATIONS * firstrdev)
475         break;
476
477   /* if we're to report the best field, figure out which field we are in */
478   if (report_best_field)
479   {
480      for (curfield = 0; curfield < fields_to_read - 1; curfield++)
481         if (sampnum < fieldstart[curfield + 1])
482            break;
483      printf("Field %5d: Edge found at offset %d (frame %.1f)\n", firstfield + curfield, sampnum - fieldstart[curfield], (double)(firstfield + curfield) * 0.5);
484   }
485
486   /* otherwise, compute the delta from the provided field number */
487   else
488   {
489      printf("Field %5d: Edge at offset %d from expected (found at %d, expected %d)\n", fieldnum, sampnum - targetsoundstart, sampnum, targetsoundstart);
490      *delta = sampnum - targetsoundstart;
491   }
492   return TRUE;
493}
494
495
496/*-------------------------------------------------
497    usage - display program usage
498-------------------------------------------------*/
499
500static int usage(void)
501{
502   fprintf(stderr, "Usage: \n");
503   fprintf(stderr, "  ldresample source.chd\n");
504   fprintf(stderr, "  ldresample source.chd output.chd offset [slope]\n");
505   fprintf(stderr, "\n");
506   fprintf(stderr, "Where offset and slope make a linear equation f(x) which\n");
507   fprintf(stderr, "describes the sample offset from the source as a function\n");
508   fprintf(stderr, "of field number.\n");
509   return 1;
510}
511
512
513/*-------------------------------------------------
514    main - main entry point
515-------------------------------------------------*/
516
517int main(int argc, char *argv[])
518{
519   movie_info info = { 0 };
520   const char *srcfilename;
521   const char *dstfilename;
522   double offset, slope;
523   chd_file *srcfile;
524   chd_file *dstfile;
525
526   /* verify arguments */
527   if (argc < 2)
528      return usage();
529   srcfilename = argv[1];
530   dstfilename = (argc < 3) ? NULL : argv[2];
531   offset = (argc < 4) ? 0.0 : atof(argv[3]);
532   slope = (argc < 5) ? 1.0 : atof(argv[4]);
533
534   /* print basic information */
535   printf("Input file: %s\n", srcfilename);
536   if (dstfilename != NULL)
537   {
538      printf("Output file: %s\n", dstfilename);
539      printf("Offset: %f\n", offset);
540      printf("Slope: %f\n", slope);
541   }
542
543   /* open the source file */
544   srcfile = open_chd(srcfilename, &info);
545   if (srcfile == NULL)
546   {
547      fprintf(stderr, "Unable to open file '%s'\n", srcfilename);
548      return 1;
549   }
550
551   /* output some basics */
552   printf("Video dimensions: %dx%d\n", info.width, info.height);
553   printf("Video frame rate: %.2fHz\n", info.framerate);
554   printf("Sample rate: %dHz\n", info.samplerate);
555   printf("Total fields: %d\n", info.numfields);
556
557   /* if we don't have a destination file, scan for edges */
558   if (dstfilename == NULL)
559   {
560      UINT32 fieldnum;
561      INT32 delta;
562
563      for (fieldnum = 60; fieldnum < info.numfields - 60; fieldnum += 30)
564      {
565         fprintf(stderr, "Field %5d\r", fieldnum);
566         find_edge_near_field(srcfile, fieldnum, &info, TRUE, &delta);
567      }
568   }
569
570   /* otherwise, resample the source to the destination */
571   else
572   {
573      INT64 ioffset = (INT64)(offset * 65536.0 * 256.0);
574      INT64 islope = (INT64)(slope * 65536.0 * 256.0);
575      UINT32 fieldnum;
576
577      /* open the destination file */
578      dstfile = create_chd(dstfilename, srcfile, &info);
579      if (dstfile == NULL)
580      {
581         fprintf(stderr, "Unable to create file '%s'\n", dstfilename);
582         return 1;
583      }
584
585      /* loop over all the fields in the source file */
586      for (fieldnum = 0; fieldnum < info.numfields; fieldnum++)
587      {
588         UINT32 srcbegin = field_to_sample_number(&info, fieldnum);
589         UINT32 srcend = field_to_sample_number(&info, fieldnum + 1);
590         INT64 dstbegin = ((INT64)srcbegin << 24) + ioffset + islope * fieldnum;
591         INT64 dstend = ((INT64)srcend << 24) + ioffset + islope * (fieldnum + 1);
592         UINT32 dstbeginoffset, dstendoffset, dstoffset;
593         INT32 dstbeginfield, dstendfield, dstfield;
594         INT64 dstpos, dststep;
595         UINT32 srcoffset;
596
597         /* update progress (this ain't fast!) */
598         if (fieldnum % 10 == 0)
599            fprintf(stderr, "Field %d\r", fieldnum);
600
601         /* determine the first and last fields needed to cover this range of samples */
602         if (dstbegin >= 0)
603            dstbeginfield = sample_number_to_field(&info, dstbegin >> 24, &dstbeginoffset);
604         else
605         {
606            dstbeginfield = -1 - sample_number_to_field(&info, -dstbegin >> 24, &dstbeginoffset);
607            dstbeginoffset = (field_to_sample_number(&info, -dstbeginfield) - field_to_sample_number(&info, -dstbeginfield - 1)) - dstbeginoffset;
608         }
609         if (dstend >= 0)
610            dstendfield = sample_number_to_field(&info, dstend >> 24, &dstendoffset);
611         else
612         {
613            dstendfield = -1 - -sample_number_to_field(&info, -dstend >> 24, &dstendoffset);
614            dstendoffset = (field_to_sample_number(&info, -dstendfield) - field_to_sample_number(&info, -dstendfield - 1)) - dstendoffset;
615         }
616/*
617printf("%5d: start=%10d (%5d.%03d) end=%10d (%5d.%03d)\n",
618        fieldnum,
619        (INT32)(dstbegin >> 24), dstbeginfield, dstbeginoffset,
620        (INT32)(dstend >> 24), dstendfield, dstendoffset);
621*/
622         /* read all samples required into the end of the sound buffers */
623         dstoffset = srcend - srcbegin;
624         for (dstfield = dstbeginfield; dstfield <= dstendfield; dstfield++)
625         {
626            if (dstfield >= 0)
627               read_chd(srcfile, dstfield, &info, dstoffset);
628            else
629            {
630               info.samples = field_to_sample_number(&info, -dstfield) - field_to_sample_number(&info, -dstfield - 1);
631               memset(&info.lsound[dstoffset], 0, info.samples * sizeof(info.lsound[0]));
632               memset(&info.rsound[dstoffset], 0, info.samples * sizeof(info.rsound[0]));
633            }
634            dstoffset += info.samples;
635         }
636
637         /* resample the destination samples to the source */
638         dstoffset = srcend - srcbegin;
639         dstpos = dstbegin;
640         dststep = (dstend - dstbegin) / (INT64)(srcend - srcbegin);
641         for (srcoffset = 0; srcoffset < srcend - srcbegin; srcoffset++)
642         {
643            info.lsound[srcoffset] = info.lsound[dstoffset + dstbeginoffset + (dstpos >> 24) - (dstbegin >> 24)];
644            info.rsound[srcoffset] = info.rsound[dstoffset + dstbeginoffset + (dstpos >> 24) - (dstbegin >> 24)];
645            dstpos += dststep;
646         }
647
648         /* read the original frame, pointing the sound buffer past where we've calculated */
649         read_chd(srcfile, fieldnum, &info, srcend - srcbegin);
650
651         /* write it to the destination */
652         write_chd(dstfile, fieldnum, &info);
653      }
654
655      /* close the destination file */
656      create_close_chd(dstfile);
657   }
658
659   /* close the source file */
660   close_chd(srcfile, &info);
661
662   return 0;
663}
src/emu/video/generic.c
r3451r3452
918918   set_color_555(machine, offset / 2, 10, 5, 0, paletteram16_le(offset));
919919}
920920
921WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split1_w )
922{
923   paletteram[offset] = data;
924   set_color_555(machine, offset, 10, 5, 0, paletteram16_split(offset));
925}
926
927WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split2_w )
928{
929   paletteram_2[offset] = data;
930   set_color_555(machine, offset, 10, 5, 0, paletteram16_split(offset));
931}
932
921933WRITE16_HANDLER( paletteram16_xRRRRRGGGGGBBBBB_word_w )
922934{
923935   COMBINE_DATA(&paletteram16[offset]);
src/emu/video/generic.h
r3451r3452
186186WRITE8_HANDLER( paletteram_xBBBBBRRRRRGGGGG_split2_w );  /* uses paletteram_2[] */
187187
188188WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_le_w );
189WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split1_w );
190WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split2_w );
189191WRITE16_HANDLER( paletteram16_xRRRRRGGGGGBBBBB_word_w );
190192
191193WRITE16_HANDLER( paletteram16_xGGGGGRRRRRBBBBB_word_w );
src/emu/machine/6821pia.c
r3451r3452
981981   return p->out_ca2;
982982}
983983
984// Version of pia_get_output_ca2, which takes account of internal
985// pullup resistor
986int pia_get_output_ca2_z(int which)
987{
988   pia6821 *p = &pias[which];
984989
990   p->out_ca2_needs_pulled = FALSE;
985991
992   // If it's an output, output the bit, if it's an input, it's
993   // pulled up
994   return p->out_ca2 |
995          C2_INPUT(p->ctl_a);
996}
997
998
986999/*************************************
9871000 *
9881001 *  Device interface to port B
src/emu/machine/6821pia.h
r3451r3452
9494int pia_get_input_ca2(int which);
9595void pia_set_input_ca2(int which, int data);
9696int pia_get_output_ca2(int which);
97int pia_get_output_ca2_z(int which);
9798
9899
99100
src/emu/machine/ldvp931.c
r3451r3452
383383   ldplayer_data *player = ld->player;
384384
385385   /* set the value and mark it pending */
386   if (LOG_COMMANDS && player->fromcontroller_pending)
387      printf("Dropped previous command byte\n");
386388   player->fromcontroller = param;
387389   player->fromcontroller_pending = TRUE;
388390
389391   /* track the commands for debugging purposes */
390392   if (player->cmdcount < ARRAY_LENGTH(player->cmdbuf))
391393   {
392      player->cmdbuf[player->cmdcount++] = param;
393      if (LOG_COMMANDS && player->cmdcount == 3)
394      player->cmdbuf[player->cmdcount++ % 3] = param;
395      if (LOG_COMMANDS && player->cmdcount % 3 == 0)
394396         printf("Cmd: %02X %02X %02X\n", player->cmdbuf[0], player->cmdbuf[1], player->cmdbuf[2]);
395397   }
396398}
src/version.c
r3451r3452
99
1010***************************************************************************/
1111
12const char build_version[] = "0.127.1 ("__DATE__")";
12const char build_version[] = "0.128 ("__DATE__")";
docs/messnew.txt
r3451r3452
10.127.1
10.128
22
33New System Drivers Supported (in no particular order):
44------------------------------------------------------
r3451r3452
232232
233233Source Changes:
234234----------------
235- The core is based on MAME 0.127u8.  This incorporates all features of the
235- The core is based on MAME 0.128.  This incorporates all features of the
236236  update to this core.  [MAME team]
237237
238238- Refactored ZIP path code out of src/mess/image.c, made more testable.  [Nate
whatsnew.txt
r3451r3452
10.127
10.128
22-----
33
44
55MAMETesters Bugs Fixed
66----------------------
7- 02105: [Graphics] qbert and clones: Misplaced graphics.
8         (Aaron Giles)
9- 02119: [Sound] cischeat, bigrun: no sound (Aaron Giles)
10- 02121: [DIP/Input] reactor: input controls and startup tone
11         (Aaron Giles)
12- 02116: [Graphics] all sets in cps2.c : corrupted graphics (robiza)
13- 01992: [Crash/Freeze] timecrsa, timecris: SubCPU start wait fails
14         test (robiza)
15- 02114: [Color/Palette] all sets in eolith.c: colors shifted to blue
16         (Fabio Priuli)
17- 02115: [DIP/Input] berlwall, berlwalt: Player 1 inputs not working
18         (Fabio Priuli)
7- 02539: [Crash/Freeze] phrcraze, phrcrazs: [debug] Access Violation
8         (Couriersud)
9- 02531: [Sound] mshuttle, mshuttlj, mshutlj2: Moon shuttle speech
10         wrong (Corrado Tomaselli)
1911
2012
2113
2214Source Changes
2315--------------
24Converted adp to 4bpp rendering. [robiza]
16Connected firefox audio enables and improved volume balance so you
17can hear the speech chip. Also fixed speech chip frequency.
18[Aaron Giles, Philip Bennett]
2519
26Began implementing 68681 device in skattv. Improved hd63484 core to
27support some initial graphics. [robiza]
20marked Hacha Mecha Fighter (nmk16.c) BG rom as a bad dump.
21[David Haywood]
2822
29Added correct CRCs for DOA2. [Guru]
23Improved the poker41 and pulltabs button-lamps layouts to look more
24realistic. [Roberto Fresca]
3025
31Fixed graphics in cps2 games. [robiza]
26Fixed the colors of Yumefuda. Added two new palette functions in
27generic.c: paletteram_xRRRRRGGGGGBBBBB_split1_w() and
28paletteram_xRRRRRGGGGGBBBBB_split2_w() (used by Yumefuda).
29[Angelo Salese]
3230
33Updated documentation in paradise.c: [Brian Troha]
34 - Added PCB layout for Torus & Mad Ball
35 - Corrected rom names and / or added U locations
31Added function to get the status of CA2 on the 6821 PIA emulator.
32[Phill Harvey-Smith]
3633
37Changed at28c16 memory handlers to 8 bits and perform the conversion
38in the memory mapping. [smf]
34Added new tool ldresample to assist in resynchronizing audio tracks in
35a CHD with frames. Currently still WIP but useful if you know what
36you're doing. [Aaron Giles]
3937
40Update the t5182.c documentation/pinout. [Lord Nightmare]
4138
42Magic10 updates: [Roberto Fresca]
43 - Simulated the co-processor to pass the initial test.
44 - All Inputs worked from the scratch.
45 - Fixed position of tilemap layers.
46 - Added scroll register preliminary support.
47 - Fixed Super Pool graphics.
4839
49Added save states to 65816 CPU. [R. Belmont]
40New games added or promoted from NOT_WORKING status
41---------------------------------------------------
42Good [David Haywood, Angelo Salese]
5043
51SH-2 DRC updates: [R. Belmont]
52 - Moved IRQ handling front-end into recompiled code
53 - Added TSTM/ANDM/XORM instructions
54 - Added SH-1 CPU support, including lower precision on MAC.W and
55   locking out SH-2 only instructions
5644
57Split out SH-4 non-interpreter-specific stuff to sh4comn.c.
58[R. Belmont]
5945
60Identified compatible timekeeper used by Midway Zeus II. Removed all
61the timekeeper memory handlers, except for 8 bit & changed the drivers
62to use the conversion built into the memory system. [smf]
46New clones added
47----------------
48Giga Wing (Brazil 990222) [Luis]
6349
64Added new generic laserdisc VIDEO_UPDATE handler to the laserdisc code.
65This handler works for both disc-only games and those with overlays.
66For disc-only games, the base macro is sufficient. For games with
67overlays, an additional set of configuration macros are provided:
6850
69   MDRV_LASERDISC_OVERLAY - specifies update function, width, height,
70      and bitmap format of the overlay
71   MDRV_LASERDISC_OVERLAY_CLIP - specifies the visible area of the
72      overlay bitmap
73   MDRV_LASERDISC_OVERLAY_POSITION - specifies default x,y position
74   MDRV_LASERDISC_OVERLAY_SCALE - specifies default x,y scale factors
7551
76The update function provided to MDRV_LASERDISC_OVERLAY is identical to
77a normal VIDEO_UPDATE callback, so a standard one can be used. All
78existing laserdisc drivers have been updated to support this new
79rendering mechanism, removing much duplicated code. [Aaron Giles]
520.127u8
53-------
8054
81Added the ability to configure the overlay position and scale
82parameters at runtime. Added OSD menus to control them. Added logic
83to save/restore the data in the game's configuration file.
84[Aaron Giles]
8555
86Added new macros MDRV_LASERDISC_SCREEN_ADD_NTSC and _PAL, which
87defines a standard screen with the correct video timing characteristics
88and update function for laserdiscs. Updated all drivers to use these
89macros instead of defining their own screens. [Aaron Giles]
56MAMETesters Bugs Fixed
57----------------------
58- 02522: [Graphics] cubeqst: Cubequest showing its laserdisc footage under
59         black regular graphics in demo. (Aaron Giles)
60- 01867: [DIP/Input] plygonet: Duplicated Inputs (R. Belmont)
61- 01716: [DIP/Input] backfire, backfira: Coin 1+2, Service1 and Service
62         Mode mapped twice. (Couriersud)
63- 00106: [DIP/Input] le2: Impossible to reload. (R. Belmont)
64- 01708: [DIP/Input] stargrds: stargrds duplicate inputs (Couriersud)
65- 02532: [DIP/Input] lunarba1: Unable to locate input port 'DSW2'
66         (Aaron Giles)
67- 02533: [Crash/Freeze] nbapbp: CPU audio: PULSE_LINE used with level-
68         detected IRQ 1 (Aaron Giles)
69- 02530: [Crash/Freeze] Various: Assertion in cpuint.c (Couriersud)
70- 01821: [Crash/Freeze] lohtb2: Game stops at PCB test (Couriersud)
71- 02529: [DIP/Input] catch22: Credits do not register in game. (Couriersud)
72- 02528: [Core] xexex and clones: Game checks halt with "VERSION ERROR"
73         (R. Belmont)
74- 01447: [DIP/Input] propcycl: Analog input roll over problem. (R. Belmont)
75- 02211: [Sound] soldivid: missing music (R. Belmont)
76- 00978: [Graphics] columns2: There is some garbage on the place where you
77         drop the 2 small squares at the bottom, after the Game Over
78         image drops down. (David Haywood)
79- 02521: [Color/Palette] ichir and clones, tantr and clones: Some colors
80         are missing and other graphics errors (David Haywood)
81- 02511: [Crash/Freeze] dkong: Donkey Kong crashes after quiting.
82         (Aaron Giles)
83- 02512: [Misc.] dkong: Artwork and gameplay area are getting squished/
84         distorted. (Aaron Giles)
9085
91Added DISK_REGIONS to all laserdisc drivers. [Aaron Giles]
9286
93Added DISK_IMAGE_READONLY_OPTIONAL to support games (like Cube Quest)
94where the disk is non-essential to the game's operation. [Aaron Giles]
9587
96Fixed bug in identifying the custom sound driver for the laserdisc.
97[Aaron Giles]
88Source Changes
89--------------
90Updated Dip Switches and Inputs for 'yesnoj' (taito_f2.c driver).
91[stephh]
9892
99Updated ldverify to identify blank regions of the disc for post-
100processing. [Aaron Giles]
93Fixed several things in the jalmah.c driver: [Angelo Salese]
94 * Fixed Mahjong Daireikai pseudo-random number generator;
95 * Fixed Otogizoushi Urashima Mahjong to make it playable;
96 * Fixed a start-up crashing bug in mjzoomin/urashima/daireika
10197
102Fixed rendering 16bpp with alpha using bilinear filters (fixes
103screenshots of laserdisc games with overlays). [Aaron Giles]
98Simplified expro02 decryption. [Nicola Salmoria]
10499
105Included support for parsing .gdi files in chdman. [ElSemi]
100Completed general NeoGeo cleanup: [JohnBoy]
101 * Sorted OEM / bootleg sets
102 * Renamed roms on non OEM / bootleg sets to ONE naming sheme
103 * Renamed functions
104 * Cleaned up bootleg sets
105 * Added some comments
106 * Renamed sma in garou/garouo, added comment
106107
107Added new driver for Cube Quest. This includes CPU cores for the three
108bitslice processors, as well as laserdisc support for the hacked
109laserdisc that was used to drive the games.
110[Philip Bennett, Joe Magiera, Warren Ondras]
108Changed Cube Quest laserdisc override logic. It's still a little hacky
109but this works better than the previous attempt. [Aaron Giles]
111110
112Updated cps1 to use proper gfx ROMs (+ PALs) for varthj, and to load
113correct A-Board PALs for QSound games. [Nicola Salmoria]
111Updated segac2 driver to use updated megadriv code. [David Haywood]
114112
115Added address decode prom 5e to dkong3/dkong3j. [couriersud]
113Moved fantasia -> expro02.c, however, the extra layer is misplaced on
114it. Scroll regs probably differ from the original. [David Haywood]
116115
117Reduced YM2612 DAC level relative to FM. This better matches real
118hardware. [R. Belmont]
116PsikyoSH: hook up VBL IRQ ack [R. Belmont]
119117
120Added validity check to ensure that AM_READ_PORT() macros reference
121valid ports. Fixed several cases where the check failed. [Aaron Giles]
118SH2: fix DRC's handling of internally generated IRQs, and fix
119compiling in interpreter mode. [R. Belmont]
122120
123Added new Guru readme for namcos22 driver. [Guru]
121Rewrote pmpoker.c driver (first part). [Roberto Fresca, Grull Osgo]
122 - Added discrete sound support to Golden Poker hardware games based
123    on schematics.
124 - Added discrete sound support to Potten's Poker hardware games based
125    on PCB analysis.
126 - Added discrete circuitry diagrams for both hardware types.
127 - Adjusted the CPU adressing to 15 bits for pmpoker/goldenpkr
128    hardware.
129 - Adjusted the CPU adressing to 14 bits for pottnpkr hardware.
130 - Rewrote all the ROM loads based on these changes.
131 - Defined MASTER Xtal & CPU clock.
132 - Fixed the visible area based on M6845 registers.
133 - Improved the lamps layouts to be more realistic.
134 - Added Good Luck (potten's poker hybrid running in goldnpkr hardware).
135 - Added Buena Suerte (spanish) x 2 sets.
136 - Added set Royale.
137 - Added Witch Card and spanish variants.
138 - Added Super Loco 93 (spanish) x 2 sets.
139 - Renamed set goldnpkc to pottnpkr (parent Jack Potten's Poker set).
140 - Renamed set jokerpkr to potnpkra, since is another Jack Potten's
141    Poker set.
142 - Added other 2 clones of Jack Potten's Poker.
143 - Renamed/cleaned all sets based on code/hardware analysis.
144 - Added intensity bit to the color system.
145 - Implemented the blue killer bit for Witch Card hardware.
146 - Implemented the extended graphics addressing bit for Witch Card
147    hardware.
148 - Added proper visible area to sloco93.
149 - Rewrote the graphics & color decode system based on schematics. No
150    more patched codes.
151 - Changed the char gfx bank structure and rom load according to the
152    new routines.
153 - Adjusted the amount of color codes and PROM region size accordingly.
154 - Updated all notes.
124155
125Added validity check to ensure that ports referenced by a condition
126actually exist. Fixed a case where this was violated. [Aaron Giles]
156Large update to comments in smstrv.c for SMS Manufacturing boards.
157Documented how the input/output ports are hooked up, and what the PALS
158do, still need to document the video output port and add the smssshot
159roms, and actually hook stuff up (like the z80) based on the comments.
160[Lord Nightmare]
127161
128Added DIP locations to dooyong.c. [Guy Hufkens]
162Removed speedups from sokyugrt, they break the game (make it too slow)
163the SH2 DRC is sufficient. [David Haywood]
129164
130Added cheat functions frombcd() and tobcd() to convert numbers to/from
131BCD format. Changed "Activate" to "Set" in the menus. [Aaron Giles]
165Did most of the protection work for Double Dealer. It appears to use
166a funky video register setting involving locations $8c1e0-8c1ef range
167for cards movements so it isn't playable yet. [Angelo Salese]
132168
133A couple of minor cleanups: [Oliver Stoenberg]
134 - removed obsolete ENABLE_DEBUGGER occurance
135 - removed more unprintable characters in SH-2 disassembler
136 - memset() usage cleanups
137 - removed duplicated TMS5110 entry in sound.mak
138 - use machine in uigfx.c where it's already available
169Added DIP LOCATIONS to items in the driver and cleaned up some of the
170comments mentioning duplicate dips configurations.  Not fully
171understanding how the FREE PLAY was implemented, I left that not to
172show a location. [Tafoid]
139173
140Removed included "profiler.h" from files that do not use profiling
141functions. [Christophe Jaillet]
174cubeqst changes: [Aaron Giles]
175 * removed custom sound in favor of individual DACs
176 * simplified palette management logic
177 * hooked up the "disc on" signal
142178
179Cleaned up Firefox video implementation: [Aaron Giles]
180 - proper sprite/tile priorities
181 - adjusted X offset to match screenshots
182 - converted to tilemaps
143183
184Added cawing B-Board PAL dumps [Corrado Tomaselli]
144185
186
187
145188New games added or promoted from NOT_WORKING status
146189---------------------------------------------------
147Cube Quest [Philip Bennett, Joe Magiera, Warren Ondras]
148WW III [Stefan Lindberg, Couriersud]
190Mahjong Daireikai [Angelo Salese]
191Otogizoushi Urashima Mahjong [Angelo Salese]
192Good Luck! [Roberto Fresca]
193Buena Suerte! (spanish) [Roberto Fresca]
194Witch Card (english) [Roberto Fresca]
195Super Loco 93 (spanish) [Roberto Fresca]
149196
150197
151198
152199New clones added
153200----------------
154Red Hawk (Haedong Corp.) [David Haywood, Tirino73 / Mame Italia]
155Snow Bros. - Nick & Tom (Dooyong license) [Tirino73 / Mame Italia]
156Shogun Warriors (Europe Rev.xx)(Kaneko 1992) [Pythagoras573]
201Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) [Kawaks]
202Jack Potten's Poker (2 sets) [Roberto Fresca]
203Witch Card (spanish)(2 sets) [Roberto Fresca]
204Buena Suerte (spanish, set 2) [Roberto Fresca]
205Super Loco 93 (spanish, set 2) [Roberto Fresca]
157206
158207
159208
160209New games marked as GAME_NOT_WORKING
161210------------------------------------
162Hot Slot (ver 05.01) [Roberto Fresca]
163Magic Colors (ver 1.7a) [Roberto Fresca]
164I P M Invader (Incomplete Dump) [unknown dumper, Couriersud]
165Astro Wars [MASH]
211Royale [Roberto Fresca]
166212
167213
168214
1690.126u5
2150.127u7
170216-------
171217
172218
173219MAMETesters Bugs Fixed
174220----------------------
175- 02095: [Misc.] chqflag, chqflagj, -listxml: memory leaks
221- 02482: [Graphics] bubblemj: Demonstration screen trouble
222         (Couriersud)
223- 02483: [Graphics] gunlock, rayforcj: Title screen trouble
224         (Couriersud)
225- 02498: [Graphics] lightbr: Trouble of title screen (Couriersud)
226- 02221: [Sound] blzntrnd: Sound is almost completely broken
176227         (Aaron Giles)
177- 02110: [Side-by-side] All sets in cps3.c: video from a DV cam
178         proves the refresh rate of CPS3 in MAME is wrong (Aaron Giles)
179- 02113: [Misc.] xymg: xymg title mispelled (Aaron Giles)
180- 01802: [Multisession] cybrcomm, raveracw, raveracj, raveraja,
181         ridgerac, ridgerab, ridgeraj, acedrvrw, victlapw: No sound
182         in games after reloading via the MAME UI (Atari Ace)
183- 00233: [Graphics] ikari: The current implementation of the shadow
184         in Ikari Warriors and Victory Road is wrong. (Nicola Salmoria)
185- 02059: [Crash/Freeze] panicstr: Game hangs after choosing Stage.
186         (R. Belmont)
187- 02027: [Crash/Freeze] lhba: lhba does not work (Luca Elia)
188- 02101: [Crash/Freeze] wboy, wboysys2: Access Violation
189         (Nicola Salmoria)
190- 00492: [Crash/Freeze] vbowl: In every case, after the 3rd launched
191         ball, the game resets. (Luca Elia)
192- 00491: [Crash/Freeze] drgwrld3: When you continue by inserting
193         credit and play, the game crashes. (Luca Elia)
194- 02021: [Graphics] cottonbm: Sprite layer offset toward upper-left
195         (R. Belmont)
196- 02022: [Crash/Freeze] cottonbm: Fatal Error Crash (R. Belmont)
197- 02071: [Crash/Freeze] coolridr: Access Violation (R. Belmont)
228- 02467: [Crash/Freeze] qsww: Game Crashes (Olivier Galibert)
229- 02479: [Misc.] Various: Memory leak (Aaron Giles)
230- 02266: [Multisession] tceptor: Thunder Ceptor crashes out when run
231         as the second game. (Aaron Giles)
232- 02439: [Multisession] tx1: TX1 quits out on second launch.
233         (Aaron Giles)
234- 02488: [Multisession] All sets with using 2+ monitors: Crash to
235         desktop on second play. (Aaron Giles)
236- 02321: [Crash/Freeze] mpu4utst, mpu4tst2, mpu4met0: Screenless
237         systems crash due to problems in some display core functions
238         (Aaron Giles)
239- 02476: [Misc.] some neodrvr.c sets: Memory leak
240- 02324: [Gameplay] dokyusei, dokyusp, gakusai, gakusai2: Game doesn't
241         start (Aaron Giles)
242- 02292: [Crash/Freeze] dcclubfd, gground, ggroundj, roughrac,
243         sgmastc, sgmastj : Game doesn't start (Olivier Galibert)
244- 02480: [Crash/Freeze] Various: CPU x: PULSE_LINE used with level-
245         detected IRQ y (Aaron Giles)
246- 02489: [Color/Palette] All Sets in namcos22.c: Garbled colours and
247         graphics (Aaron Giles)
248- 02470: [Crash/Freeze] Various: Access Violation (Aaron Giles)
249- 02475: [Crash/Freeze] kf10thep: Access Violation  (Johnboy)
250- 02502: [Crash/Freeze] fax, hardhat, mtrap, pepper2, teetert,
251         venture and clones: Accessing a certain portion of memory in
252         the debugger causes crash. (Aaron Giles)
253- 00998: [Crash/Freeze] dcclubfd: Hangs during playing with an access
254         violation error. (Olivier Galibert)
255- 02460: [DIP/Input] qrouka: Coin 1+2 no longer work. (David Haywood)
256- 00081: [Crash/Freeze] dcclub: Game crash and freeze.
257         (Olivier Galibert)
258- 00989: [Graphics] qgh: If you do a metamorphose, the screen turns
259         black without displaying words/pictures. (David Haywood)
260- 02458: [Color/Palette] enforce: Road layer colors are wrong.
261         (M.A.S.H., Phil Bennett)
262- 02469: [Graphics] geebee and clones: Appears to be missing its
263         middle swinging gate (Couriersud)
264- 02477: [DIP/Input] most merit.c sets: Unable to locate input port
265         'IN3'
266- 02468: [Compiling] 64 bit build fails (Aaron Giles)
198267
199268
200269
201270Source Changes
202271--------------
203Updated the FD1089 decryption algorythm to use the real keys generated
204by the LCG as found by Andreas Naive. The algorithm is more complex
205than it should be, but I haven't been able to simplify it more. The
206keys are still embedded in the source. It would now be reasonable to
207move them to external files; however, for several games we only have
208partial keys so the files would need to be BAD_DUMP. [Nicola Salmoria]
272Removed unneeded UI keys by removing the constants. Readded
273UI_ON_SCREEN_DISPLAY to be changed again in the "Inputs" menu.
274[stephh]
209275
210Changed ad2083 to load PROM data instead of using hardcoded values.
211[couriersud]
276Added missing support of normal joystick for player 2 in 'gwarb'.
277[stephh]
212278
213Updated structure and naming conventions of sound and CPU cores to
214match core conventions. [Derrick Renaud]
279Fixed a number of regressions due to recent 68000 IRQ changes.
280[Aaron Giles]
215281
216Added discrete sound for Mad Alien. [Derrick Renaud]
282Added new functions for building device-relative tags. Changed machine
283configuration builder to use these functions. Also changed the
284laserdisc player devices to use them. Updated Z80 CTC/SIO code to
285assume that the CPU provided for the clock is relative to the device
286that the CTC/SIO belong to. Updated memory code to assume that regions
287and devices referenced by the memory map are relative to the device
288the associated CPU belongs to. [Aaron Giles]
217289
218Hooked up discrete filtering to SN76477 in Space Chaser.
219[Derrick Renaud]
290Neo-Geo cleanups (still in progress): [Johnboy]
291 - Sorted OEM / Bootleg sets
292 - Renamed roms on non OEM / Bootleg sets to ONE naming sheme
293 - Renamed functions
294 - Added some comments
220295
221Improvements to Lucky74.c driver: [Roberto Fresca, Grull Osgo]
222 - Reverse engineering of custom IC's 06B49P, 06B53P & 09R81P.
223 - Mapped the missing 3x SN76489.
224 - Measured and traced all clocks on the board.
225 - Measured and fixed the interrupt system.
226 - Implemented timings/clocks from custom 06B49P.
227 - Added sound support. All regular game sounds/musics are working.
228 - Implemented the ADPCM samples system through 09R81P + M5205
229    emulation.
230 - Added pinouts and technical notes about custom IC's 06B49P,
231    06B53P & 09R81P.
232 - Added flip screen mode.
233 - Inverted the order of double-up difficult DIP switches.
234 - Changed 'Key In' to be active LOW instead of HIGH
235 - Complete memory map and ports scheme.
236 - Created handlers for USART port and co-processor communication.
237 - Renamed the sets accordingly.
238 - Updated all notes.
239 - Cleaned-up the driver.
296System 24 cleanups: [Aaron Giles, Olivier Galibert]
297 * correct memory map for both CPUs
298 * reduced RAM size to 256k
299 * correct video timings
300 * renamed regions
301 * proper interrupt handling
302 * fixed dcclub magic latch
240303
241Merged memory maps for drivers tigeroad, timelimt, toobin, tumbleb.c,
242tbowl, thedeep, and thief. Also changed gfx memory region tags in
243obvious cases. [Andrew Gardner]
304Checked, via Z80 code analysis, inputs and Dip Switches for the
305following games in snk.c driver: [stephh]
306 - ikari, ikaria, ikarinc, ikarijp, ikarijpb
307 - victroad, dogosoke, dogosokb
308 - bermudat, bermudaj
309 - worldwar, bermudaa
310 - psychos, psychosj
244311
245Added sprite wrapping to Irem m63 driver.
246[Tomasz Slanina, Stefan Lindberg]
312Added correct overlay positioning, font, and behavior to PR-8210
313emulation. [Aaron Giles, Warren Ondras]
247314
248More FM OPN fixes [Eke, R. Belmont]
249 - Pass chip type around and restore Jarek's original behavior for
250    YM2203/YM2610
251 - Always recalculate attack rate in set_ar_ksr, fixes Megadrive/
252    Genesis "Batman & Robin"
315Sonic Blast Man 2 Special Turbo (SNES bootleg) changes:
316[Andreas Naive, Tomasz Slanina]
317 - added rom decryption
318 - patched protection checks
319 - mapped extra inputs
253320
254Added readmes for Cosmo, Don Den Lover, Beatmania (CHD dumping),
255Dragon Master, Gals Panic, Fantasia II, Grand Tour, New Dyna Blaster
256Global Quest, Daytona "To The MAXX" upgrade, Namco System FL, Great
257Sluggers, Gun Nail, Gun & Frontier, Elevator Action Returns, Battle
258Bakraid, Koro Koro Quest, Gigas (bootleg), Race Drivin', Hexa, IQ
259Block, Open Golf Championship, Macross Plus, Malzak, Puzzle Club,
260Naomi, Puzzle Star, Puckman Pockimon, Raiden 2, Raiden Fighters 2
261(single board), Light Bringer, Landmaker, Knuckle Bash 2, Mahjong
262Fight Club, Vivid Dolls, Tower and Shaft, Star Soldier Vanishing
263Earth, Stone Ball, Sky Lancer, Squash, Winning Spike, Versus Net
264Soccer, Undercover Cops, War Gods, Space Fever, Strikers 1945, Rohga,
265Super Eagle Shot, Treasure Hunt (stv), Tickee Tickats, Great 1000
266Miles Rally 2 and Super Monaco GP. [Guru, Andrew Gardner]
321Fixed timers in i8051 core. [Grull Osgo]
267322
268Implemented MWR (memory width register) in shanghai to avoid
269hardcoded 384 value for screen width. [robiza]
323Fixed the i8051 AJMP opcode to take 2 bytes instead of 3. [Grull Osgo]
270324
271Added the Plotting PAL to the Japanese set. Also corrected the PAL
272ROM name. [Brian Troha]
325Improved the button-lamps layout to all games in ampoker2.c driver.
326Now buttons are more realistic. Also improved the Lucky 74 button-
327lamps layout to be more realistic.[Roberto Fresca]
273328
274KO Punch boxer graphics had to be doubled. [Nicola Salmoria]
329Improvements to InterFlip / Recreativos Franco driver: [Grull Osgo, Roberto Fresca]
330 - Added Baby Poker Game.
331 - Added sound support to Baby Poker Game.
332 - Reworked the color routines.
333 - Added Baby Dado Game.
334 - Added new color routines for Baby Games.
335 - Redumped the videocba color PROM.
336 - Added color switch. (It changes background color in some games).
337 - Added "hopper full" switch support (for diverter function).
338 - Added diverter function decoder.
339 - Added full functional mechanical counters decoding.
340 - Added 7 Segment decoder and 7 Digit Counter functions.
341 - Added button-lamps layout & mechanical counters simulation on
342   layout. Mechanical counters to layout: Coin-In, Coin-Out and Coin
343   to Drop.
344 - Added NVRAM support to mechanical counters.
345 - Mapped "Hand Pay" button for Baby Games.
346 - Added decoder to Jackpot mechanical counter.
347 - Added tower lamps to Baby Games layouts.
348 - Reworked layouts for Baby Games.
275349
276Fixed NMI on Mad Alien sound CPU. This fixes shot sound and various
277other sound glitches. Marked madalien and madalina as Imperfect
278Graphics. They are missing an effect. When you shoot an enemy in the
279dark, the whole screen lights up. Basically the headlights fill the
280whole screen. [Guru, Derrick Renaud]
350Fixed old regression bug in Sengoku Mahjong that made the controls
351not work when the V30 CPU core was converted to 16-bit. Specifically,
352the game accesses the multiplexer with a word write instead of a byte
353write. [Angelo Salese]
281354
282Added reverse engineered PLD images to CPS1 games (A-board to all
283and B-board and C-board to many).
284[Corrado Tomaselli, Charles MacDonald]
355Checked, via Z80 code analysis, inputs and Dip Switches for the
356following games in snk.c driver: [stephh]
357 - gwar, gwarj, gwara, gwarb
358 - chopper, choppera, chopperb, legofair
359 - tdfever, tdfeverj, tdfever2
360 - fsoccer, fsoccerj, fsoccerb
285361
286Rejiggered huffman.c to support multiple interleaving streams and a
287delta-RLE pre-encoding. Added optimized case for the Y/Cb/Y/Cr video
288encoding case. Cleaned up the code. [Aaron Giles]
362MCU protection now working for lohtb2 (m72.c) [Couriersud]
363 * Hooked up 6751
364 * Synchronized protection ram writes with timer callbacks
365 * Removed speed hack from NEC CPU emulation, which breaks the
366    protection code
289367
290Updated avcomp.c to use the new huffman.c functions. Reworked
291configuration options to allow for both input and output of naturally
292aligned data streams. Updated chdman and laserdsc to use the new
293interfaces. New compression gives an additional 3-7% over previous
294attempt and compresses the dummy CHDs down significantly.
368snes.c - Fixed problem with OAM address reset at start of vblank.
369[Tomasz Slanina]
370
371Made the Z80 daisy chain aware of referencing device-specific devices.
295372[Aaron Giles]
296373
297Some improvements to shanghai video drivers: [robiza]
298 1) convert framebuffer's ram from 8 bit to 16 bit
299 2) convert dma command from 8 bit to 16 bit
300 3) convert gfx command from 8 bit to 16 bit
301 4) implemented all gfx mode: 1,2,4,8,16 bpp
302Now we can use this gfx chip for adp driver that use 4bpp.
374Added preliminary LD-V1000 emulation. Not fully working yet, but
375mostly there. [Aaron Giles]
303376
304updated Alpha 8302 MCU simulation to match newly dumped internal ROM.
305Added the ROM to Champion Baseball 2. [Nicola Salmoria]
377Cleaned up and normalized the three existing laserdisc emulations.
378Removed obsolete code from the laserdisc core. [Aaron Giles]
306379
307Added video level detection and reporting to ldverify. [Aaron Giles]
380Optimized st0016 RAM tile behavior to lazy decode the graphics,
381giving a big speed boost to some of the mahjong games. [Aaron Giles]
308382
309Fixed incorrect test in winwork that led to spinning instead
310of using the nicely allocated events we had on hand. [Aaron Giles]
383Space Duel: Added the P10/11 dip switch (only 4 switches instead of
384the standard 8) [Franklin Bowen]
311385
312Forced a sound synchronization on each vsync in the laserdisc
313playback. This prevents overwriting the tail end of the buffer which
314was fouling up the MACH 3 audio decoding. [Aaron Giles]
386Improvements to Sandii' games (snookr10, apple10 & tenballs):
387[Roberto Fresca]
388 - Reworked the button-lamps matrix system.
389 - Documented both output ports.
390 - Connected coin in, key in and payout counters.
391 - Improved the lamps layout to be more realistic.
392 - Updated technical notes.
315393
316Fixed ROM mapping and added preliminary video emulation to galaxia.
317[Tomasz Slanina]
394Minor optimization to the Neo-Geo sprite clearing code.
395[Christophe Jaillet]
318396
319Fix coolridr crash with DRC, now hangs waiting for impossible
320conditions again. [R. Belmont]
397Added emulation for snes special chips DSP-2 & OBC-1.
398[Fabio Priuli, byuu]
399 - added sources snesdsp2.c & snesobc1.c
400 - removed special chips detection from MAME
401 - modified memory handlers to account for the new chips
321402
322Added new flag to menu items: MENU_FLAG_DISABLE, which means the
323item will be visible but not selectable. [Aaron Giles]
324403
325Fixed bug that prevented the cheat engine from working when the
326debugger was disabled. [Aaron Giles]
327404
328Modified xmlfile.c to accept integer values in decimal or hex. The
329default is decimal. Numbers may be prefixed by '#' for decimal
330values, or by '$' or '0x' to indicate hexadecimal values. Also
331added function xml_get_attribute_int_format() to return the format
332of the attribute, so that it can be later replicated. [Aaron Giles]
405New games added or promoted from NOT_WORKING status
406---------------------------------------------------
407Megatouch 5 (9255-60-07 RON, New Jersey version) [Brian Troha]
408Astropal (Sidam?) [Couriersud]
409Baby Poker [Grull Osgo, Roberto Fresca]
410Baby Dado [Grull Osgo, Roberto Fresca]
411Sonic Blast Man 2 Special Turbo (SNES bootleg)
412  [Andreas Naive, Tomasz Slanina]
333413
334Updated cheat parser to preserve the format of attribute values
335used for cheat parameters and items. [Aaron Giles]
336414
337Added support for information-only cheat items, which will be
338displayed in the menu but which are not selectable and have no
339action associated with them. Empty information-only items are
340automatically converted to menu separators. [Aaron Giles]
341415
342Moved several include files from mame/ to emu/, as they were included
343by generic components in emu/ and thus should have no dependencies
344on the MAME code. [Aaron Giles]
416New clones added
417----------------
418Megatouch III (9255-20-07 ROG, New Jersey version) [Brian Troha]
419Super Megatouch IV (9255-41-07 ROG, New Jersey version) [Brian Troha] (Not Working)
420Armored Warriors (US 940920) [Razoola]
421Mortal Kombat 3 (rev 1 chip label p4.0) [Andrea Turci]
422Decathlete V1.001 [Andrea Turci]
345423
346Added new target ldplayer, which is based on MAME but serves as a
347standalone laserdisc player for CHDs. Right now only the Pioneer
348LD-V1000 is connected, and limited commands are available. Each player
349type is a driver, so you specify the player type on the command-line.
350The driver then opens the first CHD it finds in your ROM path and
351uses that as the laserdisc. The intention is that you specify the
352-rompath each time on the command-line, so a typical approach might
353be:
354424
355   ldplayer ldv1000 -rompath j:\mach3
356425
357where it will pick up the mach3.chd lurking in your j:\mach3 folder.
358Several basic commands are supported:
4260.127u6
427-------
359428
360   Space = play/pause
361   Alt   = toggle frame display
362   Left  = scan forward (when playing) or step forward (when paused)
363   Right = scan backward (when playing) or step backward (when paused)
364   0-9   = enter numbers for search
365   Enter = execute search to frame
366429
430MAMETesters Bugs Fixed
431----------------------
432- 02323: [DIP/Input] geebeeb: Unable to coin - Always coin lockout
433         (stephh)
434- 01090: [Crash/Freeze] invadpt2, sicv: Watchdog reset. (couriersud)
435- 02440: [Crash/Freeze] abcop, gprider1, rachero: abcop just shows a
436         black flickering screen, rachero gives an error and crashes
437         on exit (couriersud)
438- 02442: [Core] -aviwrite produces faulty files (Aaron Giles)
439- 02441: [Crash/Freeze] rdft22kc: rdft22kc just shows a black screen
440         and fails to boot (couriersud)
441- 02194: [Misc.] All Sets in othunder.c: Black screen, game does not
442         start (couriersud)
443- 02410: [Misc.] -aviwrite: files over 2 gigs sometimes get cut off
444         (Aaron Giles)
445- 02024: [Color/Palette] pbobble3, pbobble4, ringrage and clones:
446         Color Regression (Nicola Salmoria)
447
448
449
450Source Changes
451--------------
452NeoGeo Update:  [Johnboy]
453 * Updated Neo-Geo game pcb infos
454 * 2020bba: Marked MVS and AES version
455 * sonicwi2: Added correct sized v2
456 * kof95 / kof95a:
457   . Renamed kof95 to kof95h
458   . Renamed p1 to correct chip label
459   . Added note
460   . Renamed kof95a to kof95
461   . Renamed p1
462 * samsho3 / samsho3a:
463   . Renamed samsho3a to samsho3
464   . Renamed samsho3 to samsho3h
465   . Renamed p1 to correct chip label
466   . Marked AES version
467 * kof98 / kof98n:
468   . Renamed m1 in kof98 to correct chip label
469   . Renamed m1 in kof98n to correct chip label
470     (kof98n should be latest revision, cart had very high SN
471      1xx.xxx)
472 * kof97: Marked MVS version
473 * samsho5 / samsho5h:
474   . Correct text layer size
475   . Marked samsho5h AES version
476 * neogeo:
477   . Updated system set to what is found on NEO-MVH MV1FS
478   . Added note
479 * ms5pcb:
480   . Hooked up bios dip
481   . Renamed bios to correct chip label
482   . Renamed p1 / p2 to correct chip label, marked NO_DUMP
483   . Added note
484
485Added pen_mask tile attribute to the tilemap system. Implemented
486dynamic tile & sprite bit depth in the Taito F3 driver.
487[Nicola Salmoria]
488
489Changed MAKE_RGB macro to set the alpha to 255 instead of 0. Updated
490palette.c to preserve the alpha when transforming palette values.
491These changes should be transparent to almost all drivers and
492rendering (ha-ha), but there may be an occasional instance where a
493driver relied on the alpha being 0 in the system palette. This also
494means that the palette_set_color() function preserves any alpha value
495that is set. [Aaron Giles]
496
497Changed Firefox to RGB32 to allow for mid-screen palette changes.
498Because of the above change, the hacky alpha manipulation that was
499previously required is no longer necessary; the alpha is set directly
500in the palette entry. [Aaron Giles]
501
502Removed render_container_set_palette_alpha() hack. Now the alpha value
503can be set directly in the palette entry and will be respected for
504laserdisc overlays. [Aaron Giles]
505
506Minor NSS/SNES cleanups [Fabio Priuli]
507
508Updated warpwarp.c driver: [stephh]
509 - reworked 'geebee', 'navarone' and 'warpwarp' INPUT_PORTS
510   definitions by using conditional Dip Switches.
511 - added 'geebeeb' INPUT_PORTS definition (this game has specific
512   "Replay" settings).
513
514Removed unneeded keys: [stephh]
515  - UI_ON_SCREEN_DISPLAY (there is now a "Slider Controls" menu)
516  - UI_ADD_CHEAT, UI_DELETE_CHEAT, UI_SAVE_CHEAT, UI_WATCH_VALUE,
517    UI_EDIT_CHEAT, UI_RELOAD_CHEAT (these keys belonged to the old
518    cheat engine)
519
520Converted the z80pio implementation into a device. [Wilbert Pol]
521
522Verified watchdog behaviour in schematics for 8080bw.c. [couriersud]
523
524ldverify improvements: [Aaron Giles]
525 - uses back-end decoding for CHDs directly to bitmaps
526 - changed min/max detection to only check 0/255
527 - fixed off-by-one bug in min/max computation
528 - separated white code detection from frame number detection
529 - track cadence with frame numbers as well as white codes
530 - use vbiparse.h constants where appropriate
531
532Plumbed machine parameters through the renderer. Removed need for
533deprecat.h. [Aaron Giles]
534
535Changed render_texture_set_bitmap() to accept a palette object
536instead of a palette index. The renderer remains optimized for the
537system palette but will work if objects have their own palette as
538well. [Aaron Giles]
539
540Changed renderer to permit palettes for RGB and YUY textures. If
541specified, these palettes specify a 32-entry (RGB15) or 256-entry
542(others) lookup for applying additional brightness/contrast/gamma
543on a per-texture basis. [Aaron Giles]
544
545Removed rescale notification. It never really worked that well and
546violated proper layering. [Aaron Giles]
547
548Renamed palette_set_brightness() to palette_set_pen_contrast() for
549clarity. [Aaron Giles]
550
551Changed palette objects to support global brightness/contrast/gamma
552in addition to per-group and per-entry controls. [Aaron Giles]
553
554Simplified core deinterlacing logic based on availability of pre-
555decoded VBI data. Added plumbing for allowing for overall brightness/
556contrast/gamma corrections on laserdisc video. Fixed bug when
557combining brightness values in the palette logic. [Aaron Giles]
558
559Converted Z80 CTC to a proper device. Updated all drivers. Added new
560item to the interface which is the tag of a CPU to take the base clock
561from. [Aaron Giles]
562
563Changed Z80 daisy chain interface to simply be a list of devices in
564the chain. Interrupt callback functions are now fetched via the
565standard device interface and referenced by the daisy chain code.
367566[Aaron Giles]
368567
369Implemented proper shadow handling in SNK drivers. [Nicola Salmoria]
568Changed Z80 PIO interrupt callback to pass a device instead of the
569machine. All device callbacks should provide the device. [Aaron Giles]
370570
371Corrected rom names with PCB locations for Lady Bug and verified the
372dump against an original Universal Lady Bug PCB. Added information
373about the Universal PCB number and prom type. [Brian Troha]
571merit.c: [couriersud]
572 * Implemented palette & colour decoding from crt 200 schematics.
573 * Hooked up 6845
574 * Hooked up lscnblk line
575 * Fixed Phraze Craze gfx rom ordering
576 * Clocks from schematics
577 * Ram palette moved to static var. This should not be in RAM.
578 * Added save state support
374579
375Improved input ports for drivers starting with F->M. In particular:
376they add AM_READ_PORT whenever suitable, they make inputs fully 32bit
377where needed, they remove indexed input read handlers from INITs, they
378replace many read handlers with appropriate CUSTOM_INPUTs.
379[Fabio Priuli]
580expro02.c: [DITraI4D0]
581 - fixed DIPSW
582 - added graphics decode routine (probably it can be simpler)
380583
381Additional input port improvements: [Fabio Priuli]
382 * added dip switches and locations to go2000 (even if they were
383    partially documented in the source)
384 * fixed artmagic protection (it used a wrong tag, which probably
385    I added somewhere in 0.125uX)
386 * changed a lot of input related things in irem m10->m107 irem boards.
387    First of all, moved input definitions from drivers/m92.h to
388    include/iremipt.h and removed completely drivers/m92.h (which
389    only contained those definitions). Added more common inputs to
390    iremipt.h and started to use that file in m62->m107 instead
391    of local #defines. Finally, added diplocations to all the games
392    in m62->m107 which were missing and it implemented coinage mode 2
393    through dipconditions in the drivers which didn't support it.
394 * converted most of the games checking avgdvg_done() in inputs to use
395    a CUSTOM_INPUT (defined in video/avgdvg.c)
584video/kaneko16.c [DITraI4D0]
585 - tilemap scroll position is different for expro02, so added new
586   function (is it better to fix current one?)
396587
397Fixed the i386 CPU core's BSR implementation for the case where the
398high bit is set. [Atari Ace]
588Converted Z80 SIO to device. Updated drivers accordingly.
589[Aaron Giles]
399590
400Added DIP locations to clshroad.c. [RansAckeR]
591Added additional Motorola DSP56k reset behavior. [Andrew Gardner]
401592
402Collapsed timer callbacks in some cases to avoid duplicating code. In
403the case of crystal.c, also refactored two DMA handlers and shuffleed
404the init/reset code around a bit. [Atari Ace]
593Added mechanism to generically specify input port tags in place of
594machine/device handlers. Unfortunately, the implementation relies on
595sentinel values to distinguish a port tag versus a pointer to function
596code. However, since this is a very common situation, it will
597hopefully be worth the slight grossness. New macros are defined in
598inptport.h:
405599
406Cleaned up and grouped the sound chip entries based on sound.mak.
407[Oliver Stoeneberg]
600   DEVICE8_PORT(name) - use this to specify the name of a port to read
601     wherever a read8_device_func would normally be used
408602
409Fixed sfiii3's title animation and the linear zoom effect that
410OopsWare didn't improve properly since 0.122u7. [Joshua Chang]
603   MACHINE8_PORT(name) - same as DEVICE8_PORT except it can be used
604     wherever a read8_machine_func would normally be used
411605
606   IS_HANDLER_PORT(ptr) - accepts a read8_device_func or
607     read8_machine_func and determines if it is an actual function or
608     a reference to a port; intended for use by devices that accept
609     DEVICE8_PORT-style functions
412610
611   CALL_DEVICE8_READ(ptr,device,offset) - either calls through the
612     given read8_device_func, or calls input_port_read with the
613     appropriate tag, depending on the result of IS_HANDLER_PORT;
614     intended for use by devices that accept DEVICE8_PORT-style
615     functions
413616
617   CALL_MACHINE8_READ(ptr,machine,offset) - same as CALL_DEVICE8_READ
618     except for read8_machine_func
619
620Note that in order for these to be useful, the consumer of the
621function pointer must be enhanced to use the CALL_* macros above
622instead of directly calling through the function. So far, only the
6238255 PPI is set up to do this, as part of the cleanup below. Also
624note that the sentinel value is currently 4 consecutive 0 bytes; this
625may need to change in the future, in either length or value, so it is
626important to stick to the macros above. [Aaron Giles]
627
6288255 PPI interface cleanup: [Aaron Giles]
629 - added MDRV_PPI8255_ADD, MDRV_PPI8255_RECONFIG and
630    MDRV_PPI8255_REMOVE macros; updated all drivers to use them
631 - changed callbacks to device read/write handlers intead of
632    machine read/write handlers; updated all drivers accordingly
633 - normalized function and variable names to be lower_under
634 - removed a number of redundant interfaces from the galaxian/
635    scamble line of games
636
637LD-V1000: added some (compile-time removed) information about the
638ROM and memory map [Aaron Giles]
639
640Changed 68000 interrupts to only trigger during execution. This
641means that multiple changes without any execution will be seen as
642atomic. It also means that PULSE_LINE no longer works for signalling
643IRQs. [Aaron Giles]
644
645Added checks in the debug build to catch people who try to use
646PULSE_LINE for non-NMI and non-RESET input lines on CPUs that no
647longer support direct interrupt generation. Over time expect this
648list to increase. [Aaron Giles]
649
650Fixed edge case bug in the Cube Quest line CPU involving adding with
651carry. [Matt Ownby]
652
653Fixed sbasketb DIP switch reading. [Fabio Priuli]
654
655Continued work on System1 inputs: [Sonikos]
656 - Added dips location in all game
657 - Moved in generic Cabinet dip for eliminate the redundancy
658 - Better implementation of generic input
659
660Changed the NSS/SNES loading code to support more cart/memory layouts
661and generally be more in line with the MESS way of handling SNES
662cartridges. [Fabio Priuli]
663
664
665
414666New games added or promoted from NOT_WORKING status
415667---------------------------------------------------
416Da Ban Cheng [Pierpaolo Prazzoli, Luca Elia]
417Xing Yen Man Guan [Luca Elia, Wei Mingzhi]
418Killer Instinct (SNES bootleg) [Tomasz Slanina]
419Final Fight 2 (SNES bootleg) [David Haywood, Tomasz Slanina, Kowal]
668Gals Panic (US, EXPRO-02 PCB)
669Pit Boss [Couriersud]
420670
421671
422672
423673New clones added
424674----------------
425Dai Makai-Mura (Japan new version) [Corrado Tomaselli]
426Defender (White label) [Andy Welburn]
427Free Kick (bootleg set 2) [David Haywood]
428Zhong Guo Long (China, V010C) [Luca Elia]
429Zhong Guo Long? (Hong Kong, V011H) [Luca Elia]
430Sonic Blast Man TURBO 2 (SNES bootleg) [Corrado Tomaselli]
67520 Year Reunion (V1.04) [Johan Samuelsson]
676Capcom Sports Club (EURO 971017) [Corrado Tomaselli]
431677
432678
433679
4340.126u4
6800.127u5
435681-------
436682
437683
438684MAMETesters Bugs Fixed
439685----------------------
44001958: [Crash/Freeze] skns: Segfaults on load (Pierpaolo Prazzoli)
44101817: [Crash/Freeze] intrepi2: Game stops at PCB test
442       (Pierpaolo Prazzoli)
44302090: [Crash/Freeze] thedeep: Game didn't start (black screen).
444       (Pierpaolo Prazzoli)
44502067: [Crash/Freeze] mustangb, tdragonb: Access Violation
446       (Aaron Giles)
44702069: [Crash/Freeze] astrofl: Access Violation (Aaron Giles)
44802068: [Crash/Freeze] All sets in mhavoc.c: Access Violation
449       (Aaron Giles)
45002070: [Crash/Freeze] atlantol: Access Violation (Aaron Giles)
45102066: [Graphics] All sets in mhavoc.c: all graphics is missing
452       (Aaron Giles)
45302033: [Crash/Freeze] soccerss and clones: the romtest report
454       two bad roms (robiza)
45502049: [Graphics] invaders: Built in red color overlay goes too low
456       and shows on top line of invaders heads in Vista only. (robiza)
45702079: [DIP/Input] radr, radru: Dipswitch info (robiza)
45802056: [DIP/Input] pbobble, qzshowby, spacedx, spacedxj: Unable to
459       enter coins (Fabio Priuli)
46002060: [Graphics] spinlbrk, spinlbru, spinlbrj: Priorities wrong in
461       second level (robiza)
686- 01187: [Graphics] gseeker: In attract mode, there is a priority
687         error where a stealth bomber is coming out of a hanger.
688         (couriersud)
689- 02381: [DIP/Input] peke1012: Lightpen not mapped in option
690         (Fabio Priuli)
691- 02191: [Sound] wseries, basebal2, dblplay, strkzone: Speech quality
692         regression (couriersud)
693- 02322: [Core] All Drivers using 8080 CPU: 8080 Core problem with
694         score/credit counts and other variables (Miodrag Milanovic)
695- 02254: [DIP/Input] All Sets in namcond1.c: Unable to coin/start
696         game properly (Fabio Priuli)
697- 02156: [Color/Palette] naughtyb: Wrong RESNET calculation of the
698         green component. (couriersud)
699- 02280: [Misc.] any set with multiple CPUs: Disassembler freezes when
700         doing a Run on any CPU other than CPU 0 (Aaron Giles)
701- 02259: [Misc.] tinklpit: Debug messages displayed on exit
702         (Phil Bennett)
703- 02258: [Crash/Freeze] srmp6: Game displays black screen, plays two
704         NiLe samples every three seconds over and over again
705         (Fabio Priuli)
462706
463707
464708
465709Source Changes
466710--------------
467Added information to the 1943 driver (video) about priorities encoded
468in PROM. [robiza]
711Added newest Naomi 2 BIOS. [Brian Troha]
469712
470Minor optimization to the DISCRETE_INPUT modules. The node output is
471now calculated when a discrete_sound_w() is called instead of each
472step in the simulation. Also removed the Enable line from the
473DISCRETE_ADJUSTMENT modules. They should never be disabled.
474[Derrick Renaud]
713Correct NeoGeo M1 decryption for all CMC50 sets [Andreas Naive]
475714
476Removed per-frame metadata support from chdman. Creating an A/V now
477simply requires an AVI file input. [Aaron Giles]
715Rewrite of the Motorola DSP56k disassembler. [Andrew Gardner]
716 * Removes arbitrary opcode groupings in favor of flat decode model.
717 * Fixes a number of small issues with unknown opcodes.
718 * Added the final ALU parallel move ops.
719 * Fixes branch relative offset decoding.
478720
479Changed laserdisc support to parse white flags and other data from
480the VBI data directly, rather than relying on the textual metadata.
481Expanded video frame cache to 3. Changed the way frames are assembled
482to decrease the likelihood of getting an interlaced weave. Fixed sound
483creation so that it is done at reset time instead of device start,
484when the sound devices aren't yet live. [Aaron Giles]
721NB1/NB2: fix default dips, added diplocations, used latest idioms. 
722IMPORTANT: you must delete all cfg and nv files for these games!
723[R. Belmont]
485724
486Fixed bug in winwork that caused the creation of single work items to
487return NULL, and thus lead to massive memory leaks when using A/V
488CHDs. [Aaron Giles]
725Removed sprite to tile priority in firefox, it doesn't exist. [smf]
489726
490Added new functions cputag_set_input_line() to assert input lines
491via CPU tag instead of index. [Aaron Giles]
727System 23 updates: [R. Belmont]
728 * Fixed text layer to show (colors are wrong)
729 * Added very preliminary support for Gorgon h/w
730 * Added Rapid River readme
731 * Adjusted Gorgon h/w MIPS clock to 133 MHz based on readme
732 * Renamed GP500 to 500GP, which is it's correct name
733 * Fixed sound CPU shared RAM. Comms not yet correct.
492734
493Disks opened by the romload module are no longer identified by index.
494Instead, they are identified by the region they were loaded in. This
495generally means one disk per region. get_disk_handle() now takes a
496region name in place of an index. Updated all callers to do this.
497The SCSI modules in particular posed a challenge to make this work,
498so watch out for potential bugs there. [Aaron Giles]
73565816/377xx: fix disassembly of BRL [ShimaPong]
499736
500Changed the IDE interfaces to default to choosing the region with the
501same tag as the device for its master disk (assuming no slave). Added
502support for specifying explicit master/slave disk regions as part of
503the configuration, though slave disks are still not supported yet.
737Fixed AF calculation in mcs48. [Aaron Giles]
738
739Fixed Leland ay8910/12 output combining. [couriersud]
740
741rescale_notifier() changed to always allow rescaling for screenless
742drivers. [Wilbert Pol]
743
744Added 22VP931 emulation, which is mostly working. Communication works
745fine and basic searching/playback/skipping is functional. Still a bit
746glitchy. [Aaron Giles]
747
748Firefox improvements: [Aaron Giles]
749 - memory map is complete from schematics
750 - gutted laserdisc hacks in favor of actual laserdisc implementation
751 - fixed all CPU and sound clocks
752 - removed need for deprecat.h
753
754Added generic timer devices, which simply allocate a timer but don't
755prime it. This is the preferred method for allocating timers, and may
756eventually be the only mechanism for doing so in the future.
504757[Aaron Giles]
505758
506Change the laserdisc interface to no longer require a disk number or
507a custom sound device. Both are now assumed to be tagged the same as
508the laserdisc device. Updated all drivers accordingly. [Aaron Giles]
759Fixed copy + paste error in geebeeg romset. [David Haywood]
509760
510Merged memory maps for drivers: blmbycar, blockade, blockhl, blockout,
511bombjack, boogwing, and bottom9. [Andrew Gardner]
761Move dkong memory_region calls into initialization routines.
762[couriersud]
512763
513Added readmes for Galaga, The Outfoxies, Splatter House, Top Racer,
514Kyros No Yakata, Bombs Away, Meikyuu Hunter G, Crazy Kong, Moero Pro
515Yakyuu Homerun Kyousou, Lucky & Wild, Match It, Country Club,
516Enforce, Elevator Action, Chuka Taisen, The New Zealand Story,
517Buck Rogers Zoom 909, Head On, Victorious Nine, Youma Ninpou Chou,
518Pairs, Woodpecker, Slap Fight, Alcon, Tiger Heli, Superman,
519WWF Superstars, Area 51, Animalandia Jr, Avengers In Galactic Storm,
520Alien 3: The Gun, Aquajack, and Missile Command. [Guru]
764Fixed -listroms to know about device-specific ROMs. [Aaron Giles]
521765
522Fix region jumper on psikyo4 (loderndf). [David Haywood]
766Another pass to make static functions static, almost entirely
767affecting code added in the last few months to MAME.  The fixes are
768the usual lot, changing enum definitions so they aren't declared,
769decorating dead code/declarations with #if...#endif, and of course,
770adding static where appropriate.  In addition, I fixed a bunch of
771UNUSED_FUNCTON symbols to be spelled correctly (I didn't introduce
772this). [Atari Ace]
523773
524Backported a bunch of FM OPN (YM2608/2612) fixes from Genesis Plus
525GX.  All of this was verified on real hardware. 
526[Eke-Eke, Nemesis, Alone Coder, AamirM]
527 - implemented PG overflow, aka "detune bug" (Ariel, Comix Zone,
528    Shaq Fu, Spiderman...)
529 - fixed SSG-EG support
530 - modified EG rates and frequency
531 - fixed EG attenuation level on KEY ON (Ecco 2 splash sound)
532 - fixed LFO phase update for CH3 special mode (Warlock, Alladin)
774More system1.c input cleanups. [Sonikos]
533775
534Scanline exact rendering for dkong & clones [couriersud]
535 * Sprite limit of 16 sprites per scanline implemented from
536    schematics.
537 * Proper wrap around from bottom to top
538 * Added some notes about sprite limits and hardware to dkong
539    driver (thanks to R. Belmont)
776Naomi update: [Samuele Zannoli]
777 * now show the contents of the framebuffer if the 3d accelerator is
778    not used so that now the atomiswave logo and messages are shown
779    (if you wait enough).
780 * removed a maple bug (no more strange messages in cvs2gd).
781 * improveed documentation of the communication registers with the
782    dimm board
783 * if DEBUG_VERTICES is defined as 1 the vertices sent to the tile
784    accelerator are collected and then drawn connected by a segment to
785    give a wireframe-like view of the scene.
540786
541Added edge connector pinout info to flower.c. [Brian Troha]
787Minor optimization to fillbitmap when non-zero fills are done.
788[Christophe Jaillet]
542789
543Some initial work on the adp driver. [robiza]
790Moved memory_region() call (which is slow) out of core sprite loop in
791the neogeo renderer, giving a dramatic speed boost.
792[Christophe Jaillet]
544793
545Fixed window in shanghai and shangha2. [robiza]
546794
5478257dma and z80dma devices now require device callback handlers
548instead of machine handlers. Updated affected drivers accordingly.
549[couriersud]
550795
551Improved Dsp56k CPU interrupt handling. Polygonet Commanders now
552advances past its first dsp handshake. [Andrew Gardner]
796New games added or promoted from NOT_WORKING status
797---------------------------------------------------
798TX-1 (Atari/Namco/Taito license) [Phil Bennett, Guru]
799Chanbara [Tomasz Slanina, David Haywood]
800Paradise Deluxe 2 [Chris Hardy]
553801
554Added proper laserdisc support for MACH 3, Us vs. Them, and Cobra
555Commander (MACH 3 hardware). Old laserdisc hacks are now removed.
556The code now talks to the standard Pioneer PR-8210 interface. Also
557removed hacky "target list" from the MACH 3 ROMs; this information
558is now decoded on the fly from the right channel laserdisc audio.
559[Aaron Giles]
560 
561Other Gottlieb cleanups: [Aaron Giles]
562 - fixed rev 2 sound again
563 - fleshed out memory maps and behaviors according to the schematics
564 - hooked up coin counters.
565 - moved sound inputs to audio/gottlieb and included them in
566    all relevant drivers
567 - ordered input ports and ROM definitions consistently
568 
569Other laserdisc changes: [Aaron Giles]
570 - changed PR-8210 interface to work consistently for both Gottlieb
571    and Stern games
572 - added audio callback mechanism to allow drivers to peek at the
573    raw audio streams
574802
575Set the initial 8253 timer output to 2 to indicate that it is
576undetermined. [Wilbert Pol]
577803
578Removed obsolete makemeta tool. Replaced it with new ldverify
579tool which walks through either an AVI or CHD capture from a
580laserdisc and ensures that there are no anomalies lurking in
581the VBI data. [Aaron Giles]
804New games marked as GAME_NOT_WORKING
805------------------------------------
806Rapid River (RD3 Ver. C) [Guru, R. Belmont]
807Time Crisis 2 (TSS2 Ver. B) [Guru]
808GameCristal (version 2.613) [ANY, f205v]
582809
583Added new option to chdman, where if you use -createav with
584a special filename (either 2:2 or 3:2) it will create a fake
585laserdisc files with the equivalent cadence. This can be used
586for testing until full captures are available. Most games used
5872:2 apart from Dragon's Lair and Space Ace, which were 3:2.
588Note that even though these files are essentially blank, they
589are Huffman-compressed, meaning that the maximum compression
590ratio you will get is 8:1, so they still end up ~5GB. [Aaron Giles]
591810
592Moved error strings from chdman.c to chd.c, where they can be
593fetched from any caller via the new chd_error_string()
594function. [Aaron Giles]
595811
596Updated vbiparse to improve Manchester code decoding. It now
597assigns a confidence level per bit based on how solid the
598data is. Also added a new function vbi_parse_all which parses
599the white flag and all three lines of metadata from a
600laserdisc frame. It then compares line 17 and 18 against each
601other and selects the most likely candidate based on per-bit
602confidence and other factors. [Aaron Giles]
8120.127u4
813-------
603814
604Added frame number display to laserdsc.c. It is off by
605default, though most players can be configured to turn it on
606(not sure if any actually do). It can be manually toggled via
607the backslash key during playback. [Aaron Giles]
608815
609Discrete sound core optimizations: [couriersud]
610 * moved a couple of exp(x) from _step into _reset where appropriate
611 * use tabulated function values for the transfer function in
612    DSS_INVERTER_OSC
816MAMETesters Bugs Fixed
817----------------------
818- 02210: [Misc.] fieldday, undoukai: Game doesn't start. Source typo in
819         0.126u2. (MASH)
820- 02240: [Crash/Freeze] All Sets in namcos12.c: Game Freeze (Aaron Giles)
821- 02241: [Sound] kncljoe, kncljoea: Missing AY-3-8910A sound effects.
822         (Aaron Giles)
823- 02248: [Sound] All sets in m58.c: No sound in game (Aaron Giles)
824- 02239: [Sound] stunrun: No OKI6295 sound. (Aaron Giles)
825- 02249: [Crash/Freeze] All Sets in zn.c: Game Hangs (Aaron Giles)
826- 02233: [Speed] chboxing, chwrestl, dokidoki: Game Speed/Timing issue
827         (Curt Coder)
828- 01897: [Original Reference] birdtry: DIP switch settings from manual.
829         (Tafoid)
830- 02242: [Gameplay] ikarijp, ikarijpb: Test screen now required to be
831         cycled to enter game. (Nicola Salmoria)
613832
614Forced synchronization (stream_update()) before the YM2151 status is
615actually read. [Jarek Burczynski]
616833
617Added Discrete Sound to Fantasy, Nibbler and Pioneer Balloon.
618[Derrick Renaud]
619834
620Fixed I/O watchpoints. [Aaron Giles]
835Source Changes
836--------------
837Added redump of indytemc. There's sprite/playfield flipping issues,
838hence GAME_IMPERFECT_GRAPHICS. [Dazzer]
621839
622Changes to the cheat.xml format: [Aaron Giles]
623 - new tag <comment> (within <cheat>) is read and preserved
624    when saved
625 - removed variable attribute from <parameter>; it is now
626    assumed to be 'param'
627 - added default attribute for <parameter>
840Improvements to Funworld driver: [Roberto Fresca]
841 - Added new clone: Pool 10 (italian, set 4).
842 - Improved lamps layout for all games.
843 - Added Pool 10 pinout and DIP switches info.
844 - Updated technical notes.
628845
629Added new variable 'frame' accessible from cheat scripts. This
630can be used in the conditional to prevent execution on every
631frame, or for other effects (like displaying temporary messages).
632[Aaron Giles]
846Continued I/O map merging. [Andrew Gardner]
633847
634Added new variable 'argindex' which is the index when processing
635an <argument> with a count attribute greater than 1. [Aaron Giles]
848Changed Namco NB-x to use real C75 BIOS, read controls the real
849hardware way. [R. Belmont]
636850
637Reinstated the cheat menu. It now displays all loaded cheats and
638allows for them to be activated. All known cheat behaviors should
639be working now. Cheats are toggled on/off with the left/right
640arrow keys. Oneshot cheats are activated by hitting enter. Pressing
641enter on other cheats resets them to their default values.
642[Aaron Giles]
851Added lamps support + layout to magjoker and galaxi. Magjoker has a
852good lamps sequence in the attract. [Roberto Fresca]
643853
644Continued the cleanup of inputs in drivers starting with C (the
645remaining ones), D and E. Improvements include conditional dips
646added to dynduke and diplocations for chinagat, chqflag, circus,
647citycon, cloak, contra and dynduke. [Fabio Priuli]
854Fixed crash when hitting watchpoints on static handlers. [Aaron Giles]
648855
649Added tags to EVERY input port in drivers starting with F->Z.
650[Fabio Priuli]
856Changed Namco NA-2 to use real C70 BIOS. Removed sound and input
857simulation code. Changed the NA-1/2 MCU type to M37702. [Phil Bennett]
651858
652Removed PORT_START macro. Renamed old PORT_START_TAG to PORT_START.
653All input ports must have tags. [Aaron Giles]
859Added correct colour PROMS to arkatour. [Dazzer]
654860
655Added support for DEL as well as BS for backspacing in the game
656select menu. Also limited input to ASCII characters. [Aaron Giles]
861Fixed inputs in Main Event (SNK) based on the info in
862http://otoya.sheep-cloud.net/dipsw/ma-mo/mainevent.html. [9IEM1smI0]
657863
658Fixed Rim Rockin' Basketball to use the HD6309 core. [Tim Lindner]
864Jaleco 'Bomb's Away' Improvements [aDG4W+qp0]
659865
660Added diplocations to bigrun, scudhamm, cischeat & f1gpstar.
661Removed the current hacky handling of f1gpstar coinage dips to use
662conditional ports instead. In order to do this, the possible
663conditions were extended to support less than/greater than
664comparisons. [Fabio Priuli]
866Fixed refresh rate and interrupts in sg1000a driver, added 8255PPI and
867coin counter. [Curt Coder]
665868
666Fixed bug that would break conditions on ports using the
667PORT_DIPUNKNOWN_DIPLOC macro. [Aaron Giles]
869Changed requirements for laserdisc CHDs to require a new chunk of
870metadata with pre-decoded frame information. Modified chdman to
871automatically produce this for CHDs that are of the appropriate
872parameters. To fix up existing CHDs, use chdman -fixavdata on the
873CHD. [Aaron Giles]
668874
669Added diplocations to the following drivers: combatsc.c, copsnrob.c,
670cosmic.c, crgolf.c, crimfght.c, crospang.c (here I also added service
671dips to heuksun and bestri, which allowed me to verify locations),
672crshrace.c, dambustr.c, darkseal.c, dassault.c, dblewing.c,
673ddrible.c, deadang.c. Also added locations to the following games:
674ddragon & ddragon2 on ddragon.c and docastle, dorunrun & dowild in
675docastle.c. [Fabio Priuli]
875Modified the laserdisc core to leverage the pre-decoded frame
876metadata, which is now required. This improves seek times when
877searching and allows the player-specific emulation access to the
878VBI data as soon as it would really be available. Changed update
879callback timing to fire just before the first line of VBI data
880would be read; at that point, the frame selection is assumed to
881be committed. [Aaron Giles]
676882
677Verified CPU clocks for athena. [Corrado Tomaselli]
883Converted PR-8210 emulation over to using the actual MCU from the
884laserdisc player. This MCU controls low-level functions such as
885slider position and laser on/off, and receives decoded vertical
886blanking data in order to make decisions. Removed old HLE behavior.
887Note that the overlay text is displayed via the UI; this is
888temporary and will be fixed shortly. [Aaron Giles]
678889
679Added module profiling to discrete sound core [couriersud]
680 * added DISCRETE_PROFILING macro to discrete.h
681 * Upon discrete_stop, the worst performing modules will be listed
890Converted Simutrek-hacked laserdisc emulation to using the actual
891MCU from the game, which in turn hands off commands to the PR-8210
892MCU. This is still not 100% but is pretty close at this point and
893achieves the correct behaviors in most cases. [Aaron Giles]
682894
683Verified and corrected CPS1 refresh rate. [Corrado Tomaselli]
895Fixed Cube Quest overlay scaling to cover the whole screen.
896[Aaron Giles]
684897
685Changed sound cpu clock of Spinal Breakers to 5Mhz as verified on the
686pcb. [Corrado Tomaselli]
898Changed laserdisc video parameters to position the screen area at
899the bottom rather than the top, since this corresponds more closely
900to standard line numbering. [Aaron Giles]
687901
688Corrected MPU4 AY8910 output weightings. [James Wallace]
902Extended the vbiparse code to support pack/unpack, and to more
903fully document all the meanings of the VBI codes. [Aaron Giles]
689904
690Added word alternates for operators in expressions: [Aaron Giles]
691  +   plus
692  -   minus
693  *   times or mul
694  /   div
695  %   mod
696  !   not
697  ~   bnot
698  &&  and
699  &   band
700  ||  or
701  |   bor
702  ^   bxor
703  lt  <
704  le  <=
705  gt  >
706  ge  >=
707  eq  ==
708  ne  !=
905Updated ldplayer to support slow/fast forward movement, frame/chapter
906display, and separate controls for scanning/stepping. [Aaron Giles]
709907
710Changed cheat escaping to automatically escape && & < and <=
711to and band lt and le. [Aaron Giles]
908Added new built-in variable "frame" to the debugger. [Aaron Giles]
712909
713Decrypted Da Ban Cheng (dbc set in igs_blit.c) [Pierpaolo Prazzoli]
910Fixed device-based ROM loading to support loading ROMs from the
911game's ZIP as well. [Aaron Giles]
714912
715Removed bad dumps from ad2083. [Pierpaolo Prazzoli]
913CPU-internal regions now have priority again. Fixed mario by installing
914a handler in the SOUND_START function. [Aaron Giles]
716915
717Fixed bug in aviio.c which could cause an infinite loop if attempting
718to read sound beyond the end of the file. [Aaron Giles]
916Improved DIP switch handling and added DIP locations in epos.c. [Tafoid]
719917
720Added expression validation callback to verify names for CPUs and
721memory regions. Extended error codes to report incorrect memory
722spaces, memory names, or memory sizes. Added verification callback
723to the debugger to validate CPU and memory region names, as well
724as verifying that a requested address space exists for a given
725CPU. [Aaron Giles]
918Added DIP locations to the dec0 driver. [Tafoid]
726919
727Restored previous behavior that allowed popmessage() messages to
728overlay menus and other UI. [Aaron Giles]
920Separate NBA Jam TE from NBA Jam as they are not technically clones of
921each other. [Atari Ace]
729922
923Verified cpu clocks and corrected/verified OKI M6295 frequencies and pin
924for Shadow Force. [Corrado Tomaselli]
730925
731926
927
732928New games added or promoted from NOT_WORKING status
733929---------------------------------------------------
734Kyuukyoku no Othello [robiza, Fabio Priuli]
735S.O.S. [Alex, Max, Antro]
930Fire Fox (still needs proper laserdisc support) [smf]
736931
737932
738933
739934New clones added
740935----------------
741Indianapolis 500 Deluxe [Kris Anks]
742Champion Poker (v200G) [Luca Elia]
743Megatouch III (9255-20-01 RON) [Brian Troha]
744New clone: Crystal Castles (joystick version) [Guru]
936Tengai (World) [Jet Black / Tormod]
937Pool 10 (italian, set 4) [Roberto Fresca]
938Hot Mind (adjustable prize) [David Haywood, Roberto Fresca]
939Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123) [bonky_0013]
940Three Wonders (hack?) [EMMA team]
745941
746942
747943
748944New games marked as GAME_NOT_WORKING
749945------------------------------------
750Quiz Punch 2 [Luca Elia]
751Jingle Bell [Luca Elia]
946Funny Land de Luxe [Tomasz Slanina]
752947
753948
754949
7550.126u3
9500.127u3
756951-------
757952
758953
759954MAMETesters Bugs Fixed
760955----------------------
761- 02023: [Crash/Freeze] irobot: hang (Aaron Giles)
762- 02043: [Crash/Freeze] All games in cps2.c: All Parent Sets for CPS2
763         Games Abort (Firewave)
764- 02046: [DIP/Input] cachat, tubeit: screen upsidedown (Fabio Priuli)
765- 00456: [Graphics] combascb: Missing Most Graphics (Fabio Priuli)
766- 02050: [DIP/Input] skyfox, exerizrb: Issue with credits input
767         (Fabio Priuli)
768- 02045: [DIP/Input] wofhfh: Player 3 inputs aren't working (stephh)
956- 00614: [DIP/Input] sspeedr: The pedal controls don't work at all,
957         in game or in the test. (Mike Green)
958- 02198: [DIP/Input] stocker: Coinage Dip Switch has incorrect
959         configuration (Mike Green)
960- 02206: [Sound] cubeqst: Cubequest now missing narrator and music
961         during attract mode. (Aaron Giles)
962- 02166: [Cheat System] garou and clones: Work RAM Error (Aaron Giles)
963- 02200: [Cheat System] galaga: Locks up (Aaron Giles)
964- 02189: [Cheat System] gradius4: C'ant pass Setup (Aaron Giles)
965- 02214: [Cheat System] rchase: Player's lorry doesn't move at all.
966         (Aaron Giles)
967- 02177: [Cheat System] All lethal.c sets: T 4 EEPROM error(BAD)
968         (Aaron Giles)
969- 02188: [Cheat System] Many sets in neodrvr.c: Freeze on start up
970         with a Work RAM Error. (Aaron Giles)
971- 02207: [Crash/Freeze] marioj, marioo: Access Violation (Aaron Giles)
972- 02204: [Crash/Freeze] masao: Memory bank error (Aaron Giles)
973- 02202: [Crash/Freeze] Many Sets in segas16a.c: Access Violation
974         (Aaron Giles)
975- 02222: [Crash/Freeze] monsterb, monster2: Monster Bash crashes on
976         launch. (Aaron Giles)
977- 02205: [Graphics] jackal, jackalj, topgunbl, topgunr: Enemy tank
978         colors are wrong (Nicola Salmoria)
979- 02201: [Compiling] 64 bit compiling error (Aaron Giles)
980- 01689: [Graphics] riskchal, gussun: Missing raster effect
981         (Pierpaolo Prazzoli)
769982
770983
771984
772985Source Changes
773986--------------
774More documentation on the Kiki KaiKai MCU. [Guru, Brian Troha]
987Implemented m90 playfield 1 and playfield 2 y-offset table. This
988fixes, at least, the water effect in riskchal and the text fading
989effect in the matchit2 demo. [Pierpaolo Prazzoli, Tomasz Slanina]
775990
776A bit more cleanup in the gottlieb driver, still incomplete.
777[Aaron Giles]
991Started changing naomi gdrom sets to load the CHDs. [David Haywood]
778992
779Verified Free Kick PROMs and improved documentation. [Brian Troha]
993Additional documentation for Egg Venture & Lethal Justice:
994[Brian Troha]
995 - Added JAMMA pinout
996 - Gun Connector pinout
997 - Sound & Amp information
780998
781Added the ability to pass an optional destructor to
782ui_menu_alloc_state(). [Nathan Woods]
999snk.c coin inputs seem to be active high (except for jcross)
1000[Nicola Salmoria]
7831001
784Updated to build with the latest DirectX SDK, which doesn't support
785Direct 3D 8 & Direct Input 7. By default, the makefile is set up to
786compile the old way, but you can set DIRECT3D=9 and DIRECTINPUT=8 in
787windows.mak or on the command-line to build with a more modern SDK.
788[smf, RansAckeR, uRebelScum]
1002Fixed bg tile banking in Canvas Croquis. Removed snkwave since it
1003doesn't seem to be used and might not be present on the pcb at all.
1004General driver cleanup, bringing it in line with snk.c but not
1005merging it since somthing doesn't quite fit. [Nicola Salmoria]
7891006
790Irem m63 - adjusted AY frequencies to proper 1.5 MHz [Stefan Lindberg]
1007Merged memory maps in munchmo.c. [Nicola Salmoria]
7911008
792DSP56156 CPU Core updates [Andrew Gardner]
793 - Rewrote core logic, communications, and interfaces.
794 - Added three parallel memory moves to the disassembler.
795 - Initial interrupt logic in place.
1009Changes to magic10 driver: [Roberto Fresca]
1010 - Better structure and organization.
1011 - Added Super Gran Safari.
1012 - Added improved lamps layout to Super Gran Safari and Magic's 10.
7961013
797Plygonet.c updates [Andrew Gardner]
798 - All communication hacks have been removed.
799 - Memory maps have been temporarily reverted while new DSP56k cpu
800    core catches up.
1014Added new device interface selector: DEVINFO_PTR_ROM_REGION. This
1015allows a device to provide a set of ROM regions to be loaded along
1016with the game ROMs. It is expected that most regions defined for
1017devices will use the ROMREGION_LOADBYNAME flag to enable the ROMs to
1018live in a central location. [Aaron Giles]
8011019
802Merged memory maps for beezer.c, bishi.c, and bladestl.c.
803[Andrew Gardner]
1020Added new device interface selector: DEVINFO_PTR_MACHINE_CONFIG. This
1021allows a device to specify a partial machine driver which is appended
1022to the end of the machine driver for any game using that device. The
1023intention for this is to allow devices which have their own BIOS logic
1024to specify CPUs and other characteristics common to all systems using
1025the device. [Aaron Giles]
8041026
805AICA updates [Deunan Knute, ajax16384, R. Belmont]
806 - Fixed ADPCM decoder to remove bad optimization and match YMZ280B.
807    DC offset is fixed and output quality is higher
808 - Improved handling of slot monitor and timers B and C
809 - Simplified interpolation code
1027Added new ROMREGION flag: ROMREGION_LOADBYNAME, which means that if
1028the ROMs in that region are not found in the usual driver files, then
1029the name of the region will be used as a driver filename for loading.
1030[Aaron Giles]
8101031
811SH2DRC: Add PC-relative load optimization and ability to disable if
812necessary [R. Belmont, based on an idea by Mariusz Wojcieszek]
1032Extended the ldcore interface structure to allow each player type to
1033provide its own ROM region and partial machine driver. [Aaron Giles]
8131034
814Changed the way memory regions are referenced. Instead of a single
815integer value, regions are now referred to by a region tag. The
816region tag must be unique among all regions defined for a given
817game. This change required updating all the ROM region definitions
818in the project to specify the tag instead of region number.
1035Moved preliminary PR-8210 emulation code from ldplayer.c to
1036ldpr8210.c. It is currently disabled behind the EMULATE_PR8210_ROM
1037compile time flag. [Aaron Giles]
1038
1039Added built-in "Off" states to the cheats with parameters. This is
1040also the default state, obviating the need for a default value.
1041Removed the "default" attribute as a result. Switching from "Off" to
1042another state first executes the "on" script followed by the "change"
1043script. Switching to "Off" from another state executes the "off"
1044script. While not off, the "run" script is executed each frame.
8191045[Aaron Giles]
8201046
821Updated the core memory_region_* functions to accept a tag instead
822of an integer. Added new memory_region_next() function to allow for
823iteration over all memory regions. [Aaron Giles]
1047Moved reset to default behavior in the cheat menu to IPT_UI_CLEAR.
1048[Aaron Giles]
8241049
825Changed the auto-binding behavior of CPU regions. Previously, the
826first CPU would auto-bind to REGION_CPU1 (that is, any ROM references
827would automatically assume that they lived in the corresponding
828region). Now, each CPU automatically binds to the region with the
829same tag as the CPU itself. This behavior required ensuring that
830all previous REGION_CPU* regions were changed to regions with the
831same tag as the CPU. [Aaron Giles]
1050Moved all naomi-gd keys to external. [David Haywood]
8321051
833Introduced a new auto-binding mechanism for sound cores. This works
834similarly to the CPU binding. Each sound core that requires a memory
835region now auto-binds to the region with the same tag as the sound
836core. In almost all cases, this allowed for the removal of the
837explicit region item in the sound configuration, which in turn
838allowed for many sound configurations to removed altogether.
1052Cleaned up shadfrce.c input port mapping. [David Haywood]
1053
1054Merged I/O maps in a number of drivers. [Andrew Gardner]
1055
1056Fixed sprites in imago [Pierpaolo Prazzoli, Tomasz Slanina]
1057
1058Added concept of rom sources to the rom loader. Updated auditing,
1059CLI utilities, validity checks, and ROM loading to use these new
1060functions so that device-specific ROMs are handled properly.
8391061[Aaron Giles]
8401062
841Updated the expression engine's memory reference behavior. A recent
842update expanded the scope of memory references to allow for referencing
843data in non-active CPU spaces, in memory regions, and in EEPROMs.
844However, this previous update required an index, which is no longer
845appropriate for regions and will become increasingly less appropriate
846for CPUs over time. Instead, a new syntax is supported, of the form:
847"[tag.][space]size@addr", where 'tag' is an optional tag for the CPU
848or memory region you wish to access, followed by a period as a
849separator; 'space' is the memory address space or memory class you
850wish to access (p/d/i for program/data/I/O spaces; o for opcode space;
851r for direct RAM; m for memory regions; e for EEPROMs); and 'size' is
852the usual b/w/d/q for byte/word/dword/qword. [Aaron Giles]
1063Added a core_fopen_ram_copy() call, similar to core_fopen_ram()
1064except that it copies the memory. [Nathan Woods]
8531065
854Cleaned up ROM definition flags and removed some ugly hacks that had
855existed previously. Expanded to support up to 256 BIOSes. Updated
856ROM_COPY to support specifying a tag for the source region. Also
857updated the address map AM_REGION macro to support specifying a
858tag for the region. [Aaron Giles]
1066Added redumped welltris program ROMs. [Dazzer]
8591067
860Updated debugger windows to display the CPU and region tags where
861appropriate. [Aaron Giles]
1068CPUs, sound chips, devices, and ROM-regions which are specified by
1069devices now have their tags auto-prefixed with the device's tag. This
1070allows for multiple instances to be present. For example, the PR-8210
1071laserdisc player has a CPU with a tag of "pr8210". When it is included
1072as a device by a driver, the driver may tag the device "laserdisc".
1073The resulting final CPU tag name will be "laserdisc:pr8210". Also
1074updated the debugger expression engine to support names with embedded
1075colons. [Aaron Giles]
8621076
863Updated -listxml to output region class and tag for each ROM entry.
864[Aaron Giles]
1077Added checks to ensure that tags used for CPUs, sound chips, regions,
1078and devices follow some basic rules: they should be less than 15
1079characters long, be all lower-case, and only contain letters, numbers,
1080underscores, or dots (no spaces). This is to ensure that they can be
1081used properly in debugger expressions and don't get too long or
1082unwieldy to type (even 15 chars is rather long). Fixed up all tags in
1083the system that failed these checks. [Aaron Giles]
8651084
866Changes to lucky74.c driver: [Roberto Fresca]
867 - Pre-defined CPU and SND clocks.
868 - Switched the color system to RESNET calculations.
869 - Completed the remaining DIP switches.
870 - Added lamps support. Created a layout to show them.
871 - Changes on the interrupt system (need to be verified on the PCB).
872 - Renamed the graphics regions to more descriptive names.
873 - Corrected the manufacturer's name.
874 - Splitted the driver to driver + video.
875 - Updated technical notes.
1085Space Win changes: [Roberto Fresca]
1086 - Some corrections to the memory map.
1087 - Added proper working RAM.
1088 - Added Dallas DS1220Y NVRAM.
1089 - Added output port.
1090 - Added lamps layout.
1091 - Added complete inputs.
1092 - Changed description to "Scacco Matto / Space Win" since the
1093    default game is Scacco Matto.
1094 - Fixed memory maps.
1095 - Documented Super Derby outputs.
1096 - Added lamps support + layout to Super Derby.
1097 - Fixed the phisical RAM size to all games.
1098 - Fixed the wrong NVRAM size to spacewin (16Kb instead of 16KB).
1099 - Added proper NVRAM to sderby and pmroulet.
1100 - Added the missing 3rd input to pmroulet (needed for 3-button mode).
1101 - Cleaned up the driver.
1102You must enter the service mode and change graphics in order to
1103switch the game.
8761104
877Changed unmapped read for mspacman to see if it changes tunnel
878behavior. [David Haywood, as suggested by dwidel]
1105Changed DEVICE_START functions to return an error code. Currently
1106this is either DEVICE_START_OK or DEVICE_START_MISSING_DEPENDENCY.
1107The latter should be returned by a device if there is another device
1108it depends on which hasn't been started yet. Added new flag in the
1109device interface to indicate whether a device has been started.
1110[Aaron Giles]
8791111
880SH2DRC: add SUBV, replace ADDV with C version as a precaution. (Fixes
881most of Mantis #2026, except the part which is a separate bug). Added
882new implementation which uses flags directly, keeping the C versions
883in reserve in case they are needed. [R. Belmont, Aaron Giles]
1112Changed laserdisc interface to explicitly specify the screen and sound
1113devices it should route to. Drivers no longer have to manually call
1114laserdisc_vsync(). Instead, the laserdisc code connects up to the
1115routed screen device and works based on that screen's VBLANK timing.
1116Removed all existing calls to laserdisc_vsync(). [Aaron Giles]
8841117
885Added more validation to the address map detokenization, in order to
886catch cases where multiple read/write handlers are assigned to a range.
887Fixed cases in the code that failed these checks. [Atari Ace]
1118Changed laserdisc behavior so that it completes the previous video
1119read and initiates the next read at the end of VBLANK instead of the
1120beginning. This gives player logic time during VBLANK to alter the
1121slider position prior to fetching the next frame. [Aaron Giles]
8881122
889i8051 cpu core timer updates: [Wilbert Pol]
890 - Added support for timer mode 0 (13 bit timer)
891 - Cleaned up timer code a bit, fixing some off-by-one errors when
892    timers overflow.
1123Added new laserdisc callback for vsync begin and changed the update
1124callback to be called at the end of VBLANK. Also added functions to
1125set the slider speed, advance the slider, and directly control the
1126video/audio squelch. In addition, there is a new status function to
1127get the slider position in general terms. [Aaron Giles]
8931128
894Naomi updates [Samuele Zannoli]
895 1) refactors many global and static variables in video\dc.c into a
896     structure to hold the tile accelerator state
897 2) textures should be better decoded with more pixel formats
898 3) adds placeholders for some register probably used by the dimm board
899 4) corrects a little error in a rom board register (very important,
900     now at least the gdrom games try to start)
1129Added parameter to the VBLANK callbacks supported in emu/video.c.
1130Updated all callers to provide a callback value. [Aaron Giles]
9011131
902Added region and regionbytes fields to the deviceconfig, which are
903auto-filled by the device manager before starting the device. This
904simplifies the auto-binding process for devices. Added new selector
905for device-specific ROM regions. Not yet wired up in the ROM loader.
906[Aaron Giles]
1132Fixed bug that would cause watchpoints to trigger if you had a memory
1133window open to the watchpoint address. [Aaron Giles]
9071134
908Simplified SH2 DRC shift/rotate instruction implementations.
1135Further updates to the PR-8210 ROM simulation. Still not quite there
1136but the system is much better understood now. Added layout to the
1137PR-8210 which displays the state of the front-panel LEDs.
9091138[Aaron Giles]
9101139
911Fixed menu handling so it doesn't swallow the tab key. [Aaron Giles]
1140Clickable input support. Layouts can now have items which when clicked
1141will alter the state of an input port. This is done via the new
1142attributes 'inputtag' and 'inputmask', which specify an input port tag
1143and mask. When the given element is clicked, the state of the element
1144changes to 1 and the given bits in the input port are set the same as
1145if you had pressed the equivalent switch. [Nathan Woods]
9121146
913Changed symbol table reference parameters to void * from UINT32.
1147Started adding naomi2 sets. [David Haywood]
1148
1149Added sprites buffering to Limenko driver and removed imperfect video
1150flag from spotty. [Pierpaolo Prazzoli]
1151
1152Improvements to Croupier (Playmark Roulette): [Roberto Fresca]
1153 - Simulated the MCU communication/protection.
1154   The game seems to work properly, but is hard to win.
1155   I conserved the game flags till we have the MCU decapped,
1156   and emulated properly.
1157 - Added full sound support.
1158 - Added lamps support + layout.
1159
1160Fixed memory handling of internal banks. They should be LOWER priority
1161than the driver's memory maps. Reverted recent changes to MCS-48 core
1162that were very hacky and which crashed many games. You can now
1163properly override the internal memory map and do your own banking.
9141164[Aaron Giles]
9151165
916Enable strict PC relative loads for ST-V games; at least Cotton
917Boomerang needs them. [R. Belmont]
11668080/8085 CPU core updates: [Miodrag Milanovic]
1167 1. ANA/ANI instruction, HF flag was not set right because error in
1168     calculation of it (missing brackets)
1169 2. 8080 have NF flag always set (it is not used flag but bit is
1170     always set)
1171 3. Added support for status output lines.
9181172
919Added new option 'cheatpath' to specify one or more paths for cheat
920files. Removed old option 'cheat_file'. [Aaron Giles]
1173Moved more static data into const and added some more explicit
1174initialization. [Atari Ace]
9211175
922Updated xmlfile.c to specify the line number for each node, for more
923accurate error reporting. [Aaron Giles]
1176Added LSI BIOS to the Atari System 1 driver. Made the System 1 BIOS
1177a proper BIOS. Removed restriction that BIOS-related ROMs must
1178immediately follow the BIOS definition. [Kevin Eshbach, Aaron Giles]
9241179
925Removed old cheat.c/.h and replaced them with code that will read and
926write the new XML-based cheat format using the new cheatpath option
927(cheats still need to be enabled in order to load at all). Note that
928the cheats are not implemented yet, but they are fully parsed. To test
929saving, whenever a cheat file is successfully loaded, it is immediately
930written back out as 'output.xml' to the cheat directory for validation.
931[Aaron Giles]
1180cave.c changes: [Kevin Eshbach]
1181 * Changed the hardcoded MHz values in the Cave driver to the XTAL
1182    equivalents
1183 * Updated the Cave driver for the game Guwange with gals that need
1184    to be dumped
9321185
933Minor cleanups: [Oliver Stoenberg]
934 - removed of unprintable chars (newlines) in SH-2 disassembler
935 - removed a few unnecessary checks after malloc_ort_die() calls
936 - changed two romload.c warnings to use GAMENOUN instead
937 - added "deprecat.h" in a  few src/mame/drivers files
938 - cleaned up the mame.mak by adding all missing defines and grouping
939    them based on cpu.mak
940 - renamed video_exit() to winvideo_exit() for consistency in function
941    names
1186Jail Break changes: [Kevin Eshbach]
1187 * Updated the Jail Break driver with the dip locations
1188 * Corrected the Jail Break driver sound chip from a SN76496 to a
1189    SN76489
1190 * Corrected the Jail Break rom names
1191 * Redumped the Jail Break VLM rom dump
9421192
943Changed commented-out functions to #ifdefs. [Atari Ace]
1193Super Basketball changes: [Kevin Eshbach]
1194 * Corrected the Super Basketball Revision H rom dump
1195 * Updated the Super Basketball driver with the dip locations
1196 * Corrected the Super Basketball VLM XTAL
1197 * Corrected the Super Basketball parent/child relationships by making
1198    the Revision H the parent
1199 * Turned on save state support for the Super Basketball driver
9441200
1201Updated the Sega System 1 driver with more board information on the
1202Choplifter bootleg and updated the placeholders for the pals that need
1203to be dumped. [Kevin Eshbach]
9451204
1205Updated the WWF Wrestlefest driver rom names. Added save state support
1206to the WWF Wrestlefest driver. [Kevin Eshbach]
9461207
1208C352 cleanup: Removed an unused volume table dating from before the
1209volume was (correctly) implemented as linear. [Olivier Galibert]
1210
1211Added memory checking and error logic to ledutil.c.
1212[Christophe Jaillet]
1213
1214Added running_machine * to some more locations in the system. Updated
1215drivers accordingly. [Oliver Stoeneberg]
1216
1217
1218
9471219New games added or promoted from NOT_WORKING status
9481220---------------------------------------------------
949Galaxi [Luca Elia]
1221Super Gran Safari [Roberto Fresca]
1222Scacco Matto / Space Win [David Haywood, Roberto Fresca]
9501223
9511224
9521225
9531226New clones added
9541227----------------
955Pool 10 (italian, set 3) [Roberto Fresca]
956Killer Instinct 2 (v1.3k, upgrade kit) [Brian Troha] (NOT WORKING)
1228The Great Ragtime Show (Japan v1.3, 92.11.26) [Stefan Lindberg]
1229Imago (cocktail set) [Chris Hardy]
1230The NewZealand Story (Japan, newer) [Tirino73]
1231Marble Madness (set 5 - LSI Cartridge) [Kevin Eshbach]
9571232
9581233
9591234
960New games marked as GAME_NOT_WORKING
961------------------------------------
962Bust a Move 2 (JAPANESE ROM ver. 1999/07/17 10:00:00) [R. Belmont]
963
964
965
9660.126u2
12350.127u2
9671236-------
9681237
9691238
9701239MAMETesters Bugs Fixed
9711240----------------------
972- 01448: [DIP/Input] twotiger: If you have your controller centered,
973         it is in fact tilted slightly to the right. (Aaron Giles)
974- 00595: [DIP/Input] playch10.c games: Button 1 and 2 are reversed
975         with respect to all other standard mapping. (Fabio Priuli)
976- 02007: [Misc.] avengrgs: SH2 Recompiler Bug: Avenrgs crash
977         (R. Belmont)
978- 01892: [Sound] calspeed: Refreshspeed causes horrible screetching
979         in some games [Calspeed used for example]. (Aaron Giles)
980- 01472: [DIP/Input] flower: Starting a game doesn't always register.
981         (David Haywood)
982- 02029: [DIP/Input] aurail and clones: Coinage Dip Switches ignored
983         (Fabio Priuli)
984- 01902: [Core] galpani3: crash at start (Fabio Priuli)
985- 01718: [DIP/Input] bishi: Coin 1 and Service 1 mapped twice.
986         (Fabio Priuli)
987- 01572: [DIP/Input] hypreact: Kan, Pon, Chi, Reach, Ron are mapped
988         twice. (Fabio Priuli)
989- 01568: [DIP/Input] gstrik2: Service mode is mapped twice.
990         (Fabio Priuli)
991- 02019: [Core] vfkids: Logging for the SH-2 has been left on.
992         (R. Belmont)
993- 01113: [Speed] btlkroad: [possible] This game runs like slow-motion
994         during gameplay, with 60/60 on fps. (Nicola Salmoria)
995- 00479: [DIP/Input] livegal: P1 Start start a P2 game (and some
996         inputs are misread in Test Mode) (Fabio Priuli)
1241- 00596: [DIP/Input] pocketrc: The car turns only to the right and
1242         there is no way to calibrate controls. (smf)
1243- 02075: [DIP/Input] mooncrgx: Cabinet DIP setting is duplicated.
1244         (MikeDX)
1245- 02137: [DIP/Input] rockduck: DIP setting for LIVES is incorrect
1246         (MikeDX)
1247- 02179: [DIP/Input] lethalej: lethalej crosshairs backwards
1248         (Luigi30, MikeDX)
1249- 02035: [DIP/Input] gwarb: Guerrilla War bootleg doesn't need a
1250         rotary joy (robiza)
1251- 02174: [Sound] dkongjr and clones + mario and clones + pestplce:
1252         Music speed regression (Aaron Giles)
1253- 02173: [Crash/Freeze] radarscp, radarsc1: Hang or Reset before game
1254         start. (Aaron Giles)
9971255
9981256
9991257
10001258Source Changes
10011259--------------
1002Robustified key behavior when the debugger is visible. Should now
1003properly ignore the "break into debugger" keypress and not allow
1004related characters to filter through. Removed some hacks related to
1005making that work in the past. [Aaron Giles]
1260Optimized DISCRETE_RCDISC_MODULATED. Added X_TALs to circus. Optimized
1261DISCRETE_RCINTEGRATE and DISCRETE_555_ASTABLE. Optimized
1262DISCRETE_555_ASTABLE_CV and DISCRETE_MIXER. Optimized DISCRETE_555_CC.
1263The 555 and mixer changes also speed up just about every current
1264discrete game. [Derrick Renaud]
10061265
1007Changed osd_wait_for_debugger() to take a machine parameter and a
1008"firsttime" parameter, which is set to 1 the first time the function
1009is called after a break. The Windows debugger uses this to ensure
1010that the debugger has focus when you break into it. [Aaron Giles]
1266Added updated information about Sorcer Striker and moved Fix Eight
1267bootleg PCB layout down by the roms like the other layouts in the
1268driver. [Brian Troha]
10111269
1012Changed short names for STV BIOS back to single words. [Brian Troha]
1270Added redumped roms for the Bubble Symphony (bootleg with OKI6295)
1271set. [Brian Troha]
10131272
1014Added information on how to toggle the built-in speedup in Ms Pacman
1015or the fast shot in Galaga in 20pacgal. [Brian Troha]
1273Started removing extraneous enable lines from the discrete modules. 
1274Most modules are always enabled anyways. [Derrick Renaud]
10161275
1017Removed MDRV_SOUND_ADD. Renamed MDRV_SOUND_ADD_TAG to MDRV_SOUND_ADD.
1018All sound chips must now include a tag. Changed all existing drivers
1019to define a unique tag for each sound chip. [Aaron Giles]
1276Changed MCS-48 core to write p1 and p2 on reset. [couriersud]
10201277
1021Fixed incorrect i960 behavior when generating interrupts. [ElSemi]
1278dkong/dkongjr: use MB8884 as sound cpu / verified on schematics.
1279[couriersud]
10221280
1023Changed -listxml to now output the tag names for CPUs and sound chips.
1024[Aaron Giles]
1281mcs48.c: Use banking to handle ea line: [couriersud]
1282 * Adds MCS48_INTERNAL_ROMBANK define to header
1283 * Drivers which need to control the ea line have to initialize
1284    banking for internal/external rom
1285This is not yet optimal but works as expected with existing drivers
1286and modified mario.c
10251287
1026Added validity checks to ensure no duplicate sound or CPU tags.
1027Fixed several duplicates. [Aaron Giles]
1288Changed MCS-48 EA line handling to use an explicit bank for now.
1289[couriersud]
10281290
1029Changed MDRV_CPU_ADD to require a tag. Removed MDRV_CPU_ADD_TAG.
1030Tagged all CPUs. [Aaron Giles]
1291Added EggVenture readme to lethalj.c. [Guru]
10311292
1032TGP / Model 2 fixes [ElSemi]
1033 - TGP now correctly uses table roms (model1/2 updated accordingly)
1034 - removed FIFO hack on srallyc (game now runs)
1035 - added analog ports reading for model 2A/B/C
1036 - fixed some loading instructions in the TGP. that fixes srallyc
1037    automatic transmission bug
1293Changed sound cpu type in saiyugb1 to I8748. [couriersud]
10381294
1039Merged CPU0 and 1 memory maps in flower, improved interrupt generation
1040[David Haywood]
1295dkong.c: S2650 based games consolidated [couriersud]
1296 * consolidated memory maps for S2650 based games
1297 * renamed handlers to s2650_*
1298 * joined protection handlers
10411299
1042Dsp56156 Disassembler rewrite. [Andrew Gardner]
1043 - Rearranged decoding behavior.
1044 - Updated code style to MAME standards.
1045 - Tested each single-word opcode with custom ROMs.
1300Added Cruis'n USA and new Raiden DX/2 readme. Cleaned up some
1301documentation in raiden2.c. Renamed "Raiden DX (set 2)" to "Raiden DX
1302(Tuning license)", and renamed ROMs to match the actual PCB.
1303[Guru]
10461304
1047Laserdiscs are now devices. Updated all drivers accordingly.
1048[Aaron Giles]
1305Updated documentation and disk/ROM names in segas24 based on new
1306information. [Brian Troha, T.Fujita]
10491307
1050Merged memory maps in battlnts, bbusters, bigevglf, bigstrkb, and
1051bionicc. [Aaron Giles]
1308Removed "game_no_sound" from the 2 Hotrod games (in segas24.c) as all
13093 seem to have the same sound capabilities. [Brian Troha]
10521310
1053Added new functions attotime_to_ticks() and ticks_to_attotime() to
1054convert between attotimes and a clock tick at an integral frequency.
1055[Aaron Giles]
1311toaplan2: [Brian Troha]
1312 * removed duplicate info
1313 * changed most speeds to "xtal_xxMHz" define
1314 * corrected Battle Battle Bakraid Z80 clock based on readme info
10561315
1057Changed the 6532 RIOT device into a proper device. Rewrote the
1058logic to be simpler and leverage the new attotime functions. Changed
1059the I/O port setters to specify a mask, and changed the I/O port
1060callbacks to pass in the previous value. Updated tourtabl and
1061gameplan drivers to use the new device interface. [Aaron Giles]
1316Fixed Dip Switches and Inputs for 'aso', 'alphamis', 'arian' (same as
1317'alphamis'), 'tnk3', 'tnk3j' (same as 'tnk3') and 'athena'. [stephh]
10621318
1063Converted audio/starwars.c, audio/exidy.c, and audio/gottlieb.c to
1064use the new RIOT implementation instead of rolling their own.
1065[Aaron Giles]
1319Improvements to galaxi driver... [Roberto Fresca]
1320 - Added Magic Joker.
1321 - Fixed the 3rd background offset to Galaxi.
1322 - Remapped inputs to match the standard poker games.
10661323
1067Began gottlieb.c cleanup. Converted palette calculations to resistor
1068weights. Corrected video timing. Reduced the number of separate
1069machine drivers. Fixed incorrect spriteram sizes. Populated full
1070memory maps for the main CPU and the rev 1 sound board. More to
1071come. [Aaron Giles]
1324Began the "big IO_MAP merge of 2008". A number of drivers have had
1325their I/O space address maps merged. [Andrew Gardner]
10721326
1073Fixed 8257 DMA terminal count stop for autoload mode and added
1074callback function existance check. [Miodrag Milanovic]
1327Changed the default bootleg gwar pcb to be joystick only, and removed
1328code duplication. Fixed jcross cabinet dip switches. [Nicola Salmoria]
10751329
1076Completed removal of all explicit calls to input_port_read_indexed().
1077[Fabio Priuli]
1330M377xx:  8-bit I/O port reads no longer cause bogus reads of
1331neighboring ports. [R. Belmont]
10781332
1079Converted tinklpit keycus implementation from a table to a LFSR.
1080[Olivier Galibert]
1333Removed unnecessary ARM7 hooks so MRC and MCR disassemble properly.
1334[R. Belmont]
10811335
1082Removed unnecessary ROM shuffling code in namconb2. [Olivier Galibert]
1336Updated TMS5100 LPC tables based on mathematical analysis of 1st and
13372nd derivatives of the values and comparison to the best quality
1338patent image, which nearly always showed which values were in error.
1339Some off-by-one issues may remain, but it is now nearly perfect.
1340Further perfection will require PROMOUT dumping, which is planned.
1341[Lord Nightmare]
10831342
1084Made the initialization of various Konami PPC drivers consistent
1085from run to run, hopefully fixing most multisession issues. Also moved
1086some allocations from static to dynamic storage. [Atari Ace]
1343snk update: [Nicola Salmoria]
1344 * added another ikari us clone
1345 * renamed ikaria to ikarinc (for Ikari No Continues)
1346 * ikari is the JAMMA board, with conitnues
1347 * ikaria is the non-JAMMA board, with continues
1348 * ikarinc is the non-JAMMA board, without continues
1349 * fixed sound in Jumping Cross
1350 * adjusted some input bits in several games
1351 * merged hal21.c into snk.c
1352 * removed hacks and kludges
1353 * fixed colors (I think--though some sprites do look weird)
1354 * fixed emulation of the "SNK Wave" custom sound used by Marvin's
1355    Maze and Vanguard II and made it into a proper sound core
1356 * fixed palette decoding of early SNK games (from marvins to
1357    athena + fitegolf). The least significan bits were assigned
1358    incorrectly.
1359 * merged marvins.c into snk.c, with all resulting fixes (removed
1360    hacks, correct shadows, scroll offsets etc)
10871361
1088Made input_port_read_indexed() private to machine/generic.c.
1089Eventually it will probably disappear altogether. Fixed the two
1090remaining instances. [Aaron Giles]
1362Replaced aso ROMs (which were possibly from a bootleg) with split ones
1363that are definitely from an original. Renamed ROMs across sets
1364accordingly. [Nicola Salmoria]
10911365
1092Converted a number of drivers from A-C to using tagged input ports,
1093and AM_PORT_READ in the address maps. [Fabio Priuli]
1366Converted timekeeper to a device, all default contents are loaded from
1367disk. slapshot & opwolf3 read/write memory map have been merged.
1368[smf]
10941369
1095Added DIP locations to a large number of drivers: bwidow.c, bzone.c,
1096bestleag, blackt96, bogeyman, bombjack, boogwing, bottom9, brkthru,
1097darwin, buggychl, squaitsa, btime, bnj, lnc, zoar, disco, cabal,
1098canyon, cbuster, cclimber, swimmer and guzzler. [Fabio Priuli]
1370Shadow Force changes: [Pierpaolo Prazzoli]
1371 - Added irqs ack
1372 - Implemented raster irq
1373 - Fixed coin2 and service input not working during the game
1374 - Added watchdog
1375 - Fixed visible area
1376 - Added video enable and irqs enable flags
10991377
1100Made DIP switch renderings consistent regardless of UI aspect.
1378Added decryption of 39in1. Doesn't get far due to very odd RAM check
1379routine. [Andreas Naive]
1380
1381Changed all MCS-48 chips to have a 12-bit address space, regardless
1382of internal ROM size. [Aaron Giles]
1383
1384Enabled internal COP410 program map. [Curt Coder]
1385
1386Fixed Dip Switches and Inputs for 'hal21', 'hal21j' (same as 'hal'),
1387'fitegolf', 'fitegol2' (same as 'fitegolf') and 'countryc'. [stephh]
1388
1389Changed refreshspeed target to 0.25Hz below rate provided, in order to
1390guarantee that inexact timings do not lead to sound stuttering.
11011391[Aaron Giles]
11021392
1103Moved more items out of .data by either applying const, removing the
1104non-zero initializer (if its overwritten by init/reset) or by adding
1105appropriate initialization code. [Atari Ace]
1393Added Fist of the North Star and (partial) Demolish Fist sets
1394(Atomiswave) and decryption. [Andreas Naive]
11061395
1107Removed conditional logging code in favor of allowing the compiler to
1108optimize it out. This prevents bitrot of #ifdef'ed code. [Atari Ace]
1396Added PCB info for Hard Yardage & earlier World Class Bowling.
1397Corrected a few rom names. [Brian Troha]
11091398
1399Split core laserdisc functionality into separate file ldcore.c.
1400Each player now gets its own source file, along with new hooks
1401which enable more precise control over the behavior. Updated the
1402PR-8210 and LD-V1000 implementations to the new spec. Other
1403players will come online shortly. [Aaron Giles]
11101404
1405Changed laserdisc scan behavior so that it requires a constant stream
1406of signals to continue scanning. Updated ldplayer accordingly.
1407[Aaron Giles]
11111408
1409Updated debugger to pass running_machine around where appropriate.
1410Added running_machine to several devices which really should
1411eventually be converted into proper devices. [Oliver Stoenberg]
1412
1413Concluded input port cleanups for drivers W->Z. Changed Primal Rage
1414start buttons into input buttons. Removed unused protection bit in
1415Driver's Edge. Introduced a new PORT_CUSTOM which returns a tagged
1416input that can be used to route bits from one port into another.
1417[Fabio Priuli]
1418
1419Added the missing SHA1 checksums to the atrowar set.
1420[Oliver Stoenberg]
1421
1422Added basic implementation of the "update ended" interrupt flag to the
1423MC146818. [Barry Rodewald]
1424
1425
1426
11121427New games added or promoted from NOT_WORKING status
11131428---------------------------------------------------
1114Shinobi III (Mega Play) [Tomasz Slanina, Kowal]
1115Player's Edge Plus (X002069P) Double Double Bonus Poker [Hammer300]
1429Video Poker [Grull Osgo, Roberto Fresca]
1430Black Jack [Grull Osgo, Roberto Fresca]
1431Video Dado [Grull Osgo, Roberto Fresca]
1432Video Cordoba [Grull Osgo, Roberto Fresca]
1433Magic Joker (v1.25.10.2000) [Roberto Fresca]
11161434
11171435
11181436
11191437New clones added
11201438----------------
1121Major Title (World) [Tirino73 / MAME Italia]
1122Winding Heat (EAA, Euro v1.11) [Highwayman]
1123Demon's World / Horror Story (set 5) [Corrado Tomaselli]
1439Egg Venture (A.L. Release) [Guru]
1440Ikari Warriors (US) [Nicola Salmoria]
1441Double Dragon (bootleg) [Sonikos]
11241442
11251443
11261444
11271445New games marked as GAME_NOT_WORKING
11281446------------------------------------
1129Rail Chase 2 [AndyGeezer]
1447Mad Zoo [Roberto Fresca]
11301448
11311449
11321450
11330.126u1
14510.127u1
11341452-------
11351453
1136NOTE: The cheat engine is disabled as of this version. It is
1137currently undergoing a desperately-needed complete redesign and
1138rewrite from scratch. By the time 0.127 is ready, we should have
1139support for the vast majority of existing cheats working once
1140again.
11411454
1142
11431455MAMETesters Bugs Fixed
11441456----------------------
1145- 00368: [Graphics] aliens: There are a few graphics glitches.
1146          (Nicola Salmoria)
1147- 00871: [Graphics] pow: At 3/4 of the 1st level, there is a large
1148          pillar, which pops up too late. (Nicola Salmoria)
1149- 02006: [DIP/Input] rtriv: All four buttons for player 1 are mapped
1150          twice (Fabio Priuli)
1151- 02009: [Graphics] frogger and clones: background doesn't rotate in
1152          cocktail mode (couriersud)
1153- 01547: [Sound] cabalbl: Cabal (bootleg) soundfx wrong
1154          (Nicola Salmoria)
1155- 00244: [Graphics] aliens: In two player mode, there are some
1156          problems with the player sprites. (Nicola Salmoria)
1157- 01910: [DIP/Input] changela: Gear Shift defaults to Reverse
1158          (RansAckeR)
1159- 00900: [Color/Palette] kaiserkn, kaiserkj, gblchmp, dankuga: When
1160          thrown by Azteca's medium punch throw the palette of the
1161          thrown character gets all messed up. (Nicola Salmoria)
1162- 00895: [Color/Palette] arabianm and clones: During level 6, there
1163          is a rain effect, but the water is coloured green.
1164          (Nicola Salmoria)
1165- 01917: [Color/Palette] gunlock, rayforce, rayfocj: The color of
1166          Battleships is wrong in the 1st stage. (Nicola Salmoria)
1167- 01058: [Documentation] exctsccb: Exciting soccer bootleg should be
1168          placed in champbas.c. (Nicola Salmoria)
1169- 00079: [Graphics] faceoff: When you go for a penalty shot the
1170          screen is upside down. (Nicola Salmoria)
1171- 01887: [DIP/Input] pushman, pushmana, pushmans: Flip screen DIP
1172          switch doesn't work. (Nicola Salmoria)
1173- 01891: [DIP/Input] matchit, shisen, sichuan2, sichuana: Flip screen
1174          DIP switch doesn't work. (Nicola Salmoria)
1175- 01574: [DIP/Input] dankuga, gblcmhp, kaiserkj, kaiserkn: Player 1
1176          and Player 2 Button 4 mapped twice. (Nicola Salmoria)
1177- 01925: [Color/Palette] gunlock, rayforce, rayforcj: The explosive
1178          color of the demo is different. (Nicola Salmoria)
1179- 01973: [Core] champbbj: Game resets itself in the middle of test
1180          process (Nicola Salmoria)
1457- 00228: [Graphics] sgladiat: Emulation is missing some enemy sprites
1458         that are present on the pcb. (Nicola Salmoria)
1459- 02147: [Interface] Annoying behaviour of highlighted entries in
1460         minimal UI (Aaron Giles)
1461- 02159: [Crash/Freeze] cubeqst: Cubequest crashes on ATI hardware
1462         w/ prescale > 1 (Aaron Giles)
1463- 02035: [DIP/Input] gwarb: Guerrilla War bootleg doesn't need a
1464         rotary joy (Nicola Salmoria)
1465- 00650: [DIP/Input] stv.c games: P1 and P2 Button 4 are duplicated.
1466         (Fabio Priuli)
1467- 02154: [DIP/Input] ckongg: Coinage settings are wrong.
1468         (Fabio Priuli)
1469- 02143: [Graphics] ozmawars, ozmawar2, solfight, spaceph: Streaks
1470         and dashes appear on screen after playing awhile
1471         (Fabio Priuli)
1472- 02142: [Sound] centipdb, magworm, millpac: No Sound (couriersud)
1473- 02150: [DIP/Input] spacegun: Missing crosshairs (Nicola Salmoria)
1474- 02144: [DIP/Input] ozmawars, ozmawar2, solfight, spaceph: DIP
1475         settings for coinage are incorrect (Fabio Priuli)
1476- 02126: [Core] corrupt CHDs are reported as missing (Aaron Giles)
1477- 02133: [Misc.] chindrah: The title of Zhong Guo Long?(Hong Kong,
1478         V011H) is Dong Fang Zhi Zhu(Hong Kong, V011H) (Aaron Giles)
1479- 02139: [Misc.] In audio/system16.c, there is a reference to
1480         REGION_SOUND1 (Aaron Giles)
1481- 02138: [Cheat System] flamegun: Debugger/Cheat System upper case
1482         cpu tag of MAIN doesn't work (Aaron Giles)
1483- 02110: [Side-by-side] All sets in cps3.c: video from a DV cam
1484         proves the refresh rate of CPS3 in MAME is wrong (Aaron Giles)
1485- 02127: [Documentation] xymg: The game name should be Xing Yun Man
1486         Guan and "Pin Yin:"should be omitted (Aaron Giles)
1487- 02136: [Interface] cubeqst: from minimal UI cubeqst requires the
1488         optional CHD (Aaron Giles)
1489- 00869: [Graphics] ikari: The title screen and high score screen do
1490         not have a black background, as MAME displays.
1491         (Nicola Salmoria)
1492- 02135: [DIP/Input] rtypej: DIP Switch "Demo Sounds" is wrong
1493         (Fabio Priuli)
1494- 00429: [Gameplay] fastlane: the random function of this doesn't work
1495         well and always gives a "no bonus"... (ShimaPong)
11811496
11821497
11831498
11841499Source Changes
11851500--------------
1186makemeta changes: [Aaron Giles]
1187 * Split out Manchester code parsing into a separate utility module.
1188 * Rewrote Manchester code parsing to be clock based.
1189 * Updated makemeta to call the new functions.
1190 * Changed makemeta to parse a different format for metadata.
1191 * Fixed Huffyuv decompression in aviio.
1192 * Added more robust logic to parse out the white flag.
1501Changed DIRECTINPUT & DIRECT3D handling, so they can be overridden by
1502environment variables. [smf]
11931503
1194Newest Japanese Naomi BIOS added [batman2509, starke/peap]
1504Readded generic calls to install memory handlers that were in long
1505before 0.126u5 - these are useful on the MESS side for things like
1506the PC driver. [Nathan Woods]
11951507
1196pit8253 updates: [Wilbert Pol]
1197 - Changed the implementation to use timers internally.
1198 - Removed the frequency change callbacks.
1508HD63484 improvements: [robiza]
1509 * fixed cpx and cpy when a ptn or a agcpy command is executed
1510 * fixed for PTN command: copy direction and dot color
1511 * first implementation of PAINT command (for now only 4bpp and 8bpp
1512    supported and the pattern is not supported)
11991513
1200slapfght driver update: [stephh]
1201 * Renamed sets :
1202    - tigerh2  -> tigerhb1 ("Japan set 2"   -> "bootleg set 1")
1203    - tigerhb1 -> tigerhb3 ("bootleg set 1" -> "bootleg set 3")
1204    - gtstarba -> gtstarb1 ("bootleg set 2" -> "bootleg set 1")
1205    - getstarb -> gtstarb2 ("bootleg set 1  -> "bootleg set 2")
1206 * "Performan" :
1207    - cleaned/fixed Dip Switches and added port locations
1208 * "Tiger Heli" :
1209    - added MCU simulation for 'tigerhb1' (in fact, I only had to
1210       return the correct value for the hardware test as there
1211       doesn't seem to be any other communication - I'm still not
1212       convinced that this bootleg had a MCU)
1213    - cleaned/fixed Dip Switches and added port locations
1214    - added notes with the differences between the different sets
1215 * "Get Star" / "Guardian" :
1216    - added MCU simulation for 'getstar' and 'getstarj' heavily based
1217       on 'gtstarb1' bootleg
1218    - cleaned/fixed Dip Switches and added port locations
1219    - added notes with the differences between the different sets
1220       (and especially detailed the numerous ingame bugs in
1221       'gtstarb2')
1514Cleaned up the discrete code and fixed discrete logging.
1515[Derrick Renaud]
12221516
1223Added new module uiinput.c which manages input for the user interface.
1224The OSD is responsible for pushing mouse events and character events
1225to this interface in order to support mouse movement and text-based
1226input (currently only used for the select game menu). Added support
1227for navigating through the menus using the mouse.
1228[Nathan Woods, Aaron Giles]
1517Fixed handling of a number of static variables to avoid multisession
1518issues. [Atari Ace]
12291519
1230Redesigned the UI menus so that they can maintain a richer state. Now
1231the menus can be generated once and reused, rather than requiring
1232them to be regenerated on each frame. All menus also share a comment
1233eventing system and navigation through them is managed centrally.
1234Rewrote all the menus to use the new system, apart from the cheat
1235menus, which are now disabled. Reorganized the video menu to make it
1236easier to understand. [Aaron Giles]
1520Moved FD1089 decryption keys to external files. [Atari Ace]
12371521
1238Converted UI startup screens to use astrings. [Aaron Giles]
1522Changed 68000 IRQ support so that the IRQ lines explicitly simulate
1523a standard demux chip connected to the IRQ lines. This means that the
1524sequence:
12391525
1240Fixed edge case in the DRC front-end that would incorrectly tag the
1241end of a sequence as "return to start" even if the last instruction
1242did not abet the starting instruction. [Aaron Giles]
1526      cpunum_set_input_line(5, ASSERT_LINE);
1527      cpunum_set_input_line(3, ASSERT_LINE);
1528      cpunum_set_input_line(3, CLEAR_LINE);
12431529
1244Replaced the crazy number of get/set functions for render containers
1245with a single get/set of a user settings struct. [Aaron Giles]
1530now works as expected. This required fixes to several Atari and other
1531drivers. [Olivier Galibert]
12461532
1247merged exctsccr.c into champbas.c. [Nicola Salmoria]
1533Input port cleanup pass over drivers from N-V, leveraging
1534AM_READ_PORT, converting to full 32-bit inputs where suitable, using
1535CUSTOM_PORTs for EEPROM bits, etc. [Fabio Priuli]
12481536
1249UDRC-based SH-2 dynamic recompiler: [R. Belmont]
1250 - All games on all drivers should work as before except "colmns97"
1251    and "stress" which crash due to sound system trouble.
1252- All idle skips are still included. They are quite a bit less
1253   effective than they were on the interpreter, but they still give a
1254   boost.
1255- Fast RAM bypass is not included yet so this does not represent
1256   final performance. That said, it's consistently faster than the
1257   interpreter even now. Example: sfiii3 on 0.126 gets 609% on the
1258   interpreter and 961% on the DRC.
1537Additional input port cleanups in the cps1, deco, pgm, psikyo, nbmj,
1538and jaleco drivers. [Fabio Priuli]
12591539
1260Added ST-V BIOS info based on text at 0x800 (byte swapped).
1261Reorganized the BIOS list & description. Added the USA bios to
1262smleague and it's a USA only cart. [Brian Troha]
1540snk.c rewrite: [Nicola Salmoria]
1541 - fixed sprite-sprite priorities
1542 - TNK3, Athena, Fighting Golf, Country Club
1543    - converted to tilemaps
1544    - removed hacks
1545    - proper memory maps
1546    - screen flip / cocktail mode support
1547    - DIP locations
1548    - better implementation of sound CPU communication
1549    - hooked sound CPU interrupts to YM chips
1550    - fitegolf hax 1xYM3812, not 2xYM3526
1551 - Ikari Warriors, Victory Road
1552    - removed ROM patches
1553    - simulated "hard flags" behaviour
1554    - proper memory maps
1555    - fixed ikarijp color test
1556    - renamed dogosokj to dogosokb and loaded the correct palette PROMs
1557    - inputs, dip locations, etc.
1558    - removed NO_COCKTAIL flag since these games don't have a flip
1559       screen dip switch
1560 - Guerrilla War, Psycho Soldier, Chopper I, TouchDown Fever /
1561   Fighting Soccer
1562    - tilemaps
1563    - proper memory map
1564    - input, dip locations, etc.
1565 - Bermuda Triangle / World Wars
1566    - removed ROM patches
1567    - simulated "turbo front" check
1568    - renamed bermudao->bermudaj
1569    - clarified the relationship between the four sets
1570    - made World Wars a main set instead of a clone of Bermuda Triangle
1571    - tliemaps, proper memory maps, inputs, etc.
1572 - ASO
1573    - moved from hal21.c to snk.c
1574    - removed hacks, fixed bg color
1575 - Gladiator
1576    - moved from sgladiat.c to snk.c
1577    - fixed shadows, visible area, tilemaps, inputs, etc.
1578 - Jumping Cross
1579    - moved from jcross.c to snk.c
1580    - fixed fg layer and visible area
1581    - the game seems to be ok now? is there still something wrong?
12631582
1264Added save state suport to Konami CPU & Aliens. [Nicola Salmoria]
1583Added 8303 ROM to the games using it and updated MCU simulation to
1584match the new findings. [Nicola Salmoria]
12651585
1266Moved kodb to fcrash.c (which will probably end up being the home of
1267the cps1 bootlegs). [David Haywood]
1586Removed duplicate buttons in sf2hack. Promoted sf2m2 clone to
1587working. [robiza]
12681588
1269SH-4 update [Samuele Zannoli]
1270 - Fixed TRAPA and some versions of FMOV
1271 - Improved disassembly for MOV.W, MOVA, MOV.L, FIPR, and FSCA.
1589Added helper function devtag_get_device(machine, type, tag) to
1590retrieve the device_config for (type, tag). [couriersud]
12721591
1273Fixed memory leak in romcmp. [Nicola Salmoria]
1592Hooked up sound CPU comms in Power Instinct 2. This enables
1593synchronized dancing for the background characters. [ShimaPong]
12741594
1275Merged memory maps in the cabal driver. [Nicola Salmoria]
1595Fixed bug when writing AVI files with more than one RIFF chunk.
1596Added missing chdman error messages when extracting to an AVI file.
1597[Aaron Giles]
12761598
1277i960: respect the rounding mode for CVTRI [ElSemi]
1599Derived CPS2/CPS3 video timing based on measurements. These are
1600educated guesses. The logic behind the derivations is shown in the
1601source. [Aaron Giles]
12781602
1279Corrected g13knd wave ROM 0 offset. [Philip Bennett]
1603Game-A-Tron gambling hardware updates: [Roberto Fresca]
1604 - Added sound support to "Poker 4-1" and "Pull Tabs".
1605 - Figured out the output ports. Documented each bit accessed.
1606 - Added button lamps support. Created layouts for both games.
1607 - Switched the 8255 port C to be used as output port.
1608 - Adjusted the coin pulse timing.
1609 - Updated technical notes.
1610 - Splitted the driver to driver + video.
1611 - Final clean-up.
12801612
1281Fixed cocktail sprite position in galaxian.c. Fixes that the frog
1282disappears for player 2 if moved backwards. [couriersud]
1613Fixed problem that would cause the "Return To Prior Menu" menu item to
1614not stick if one is calling ui_menu_reset() with
1615UI_MENU_RESET_REMEMBER_POSITION, and that menu item is selected.
1616[Nathan Woods]
12831617
1284Changed direct access EEPROM interface to return the "bus width" of
1285the EEPROM data, and the size is in terms of units, not bytes.
1286Updated all drivers accordingly. [Aaron Giles]
1618Added PR-8210 support to the ldplayer. Fixed step forward command on
1619the PR-8210. [Aaron Giles]
12871620
1288Changed the ROM loading code to actually alter the region flags based
1289on the CPU endianness and bus width when creating the region, rather
1290than fixing them up on the fly. This means that callers to
1291memory_region_flags() will get the correct results. [Aaron Giles]
1621Changed Journey and Domino Man to 4-way joysticks. [John Rieman]
12921622
1293Changed the expression engine to use two callbacks for read/write
1294rather than relying on externally defined functions. [Aaron Giles]
1623Added Discrete Sound for Starship 1. Still need to properly emulate
1624the MC3340. [Derrick Renaud]
12951625
1296Expanded memory access support in the expression engine. Memory
1297accesses can now be specified as [space][num]<size>@<address>.
1298'space' can be one of the following:
1626Changed some decryptions in igs_blit.c to use program roms loaded
1627byteswapped. Decrypted Mahjong Man Guan Cai Shen, Mahjong Long
1628Hu Zheng Ba 2, Mahjong Shuang Long Qiang Zhu 2, and Mahjong Super
1629Da Man Guan 2. [Pierpaolo Prazzoli]
12991630
1300   p = program address space of CPU #num (default)
1301   d = data address space of CPU #num
1302   i = I/O address space of CPU #num
1303   o = opcode address space of CPU #num (R/W access to decrypted opcodes)
1304   r = direct RAM space of CPU #num (always allows writes, even for ROM)
1305   e = EEPROM index #num
1306   c = direct REGION_CPU#num access
1307   u = direct REGION_USER#num access
1308   g = direct REGION_GFX#num access
1309   s = direct REGION_SOUND#num access
1631Added save state for discrete node->output to ensure that input nodes
1632save states. [couriersud]
13101633
1311The 'num' field is optional for p/d/i/o/r, where is defaults to the
1312current CPU, and for e, where it defaults to EEPROM #0. 'num' is
1313required for all region-related prefixes. Some examples:
1634Added a new generic latch device. Generic emulation of 74LS174/175,
163574LS259 and other latches. Apart from providing synched latch
1636operation, these latches can be configured to read their input
1637bitwise from other devices as well and individual bits can be
1638connected to discrete nodes. Please see audio/dkong.c for examples.
1639[couriersud]
13141640
1315   w@curpc = word at 'curpc' in the active CPU's program address space
1316   dd@0    = dword at 0x0 in the active CPU's data address space
1317   r2b@100 = byte at 0x100 from a RAM region in CPU #2's program space
1318   ew@7f   = word from EEPROM address 0x7f
1319   u2q@40  = qword from REGION_USER2, offset 0x40
1320   
1321The 'size' field is always required, and can be b/w/d/q for byte, word,
1322dword, and qword accesses. [Aaron Giles]
1641dkong & friends: Use new latch device [couriersud]
1642 * adds new latch device where appropriate
1643 * increased accuracy since now all main/sound cpu communications
1644    are properly latched
1645 * removed quite some code as a consequence
1646 * minor cosmetic edits
13231647
1324Added World Rally support to tiny.mak/.c. [Macareno]
1648Updated adp memory map. [robiza]
13251649
1326changela input improvements: [RansAckeR]
1327 - DIP switch fixes
1328 - Added DIP locations.
1650m4510 core fixes: [robiza]
1651 - banking in read and write operations
1652 - jsr and jsrx instruction
1653 - fixed TSY instruction
13291654
1330Minor srmp5 update: [Sonikos]
1331 - Removed hack in drive machine R3000
1332 - Adjusted  R3000 frequency to 25 Mhz according to speglsht
1333    (the hardware is the same)
1334 - Adjusted visible area (but i'm not sure it's correct)
1335 - Fix one rom loading
1655Optimized ycc_to_rgb conversion code. [couriersud]
13361656
1337Changed partial refresh policy in snk68.c and updated comments.
1338[Nicola Salmoria]
1657Added readme for The Simpsons. [Guru]
13391658
1340More conversion to input_port_read(): [Fabio Priuli]
1341 * converted to use tagged inputs and handlers all drivers starting
1342    with S & T
1343 * simplified input reads in system24 (removing a redundant handler)
1344 * cleaned up a bit inputs in system 16 & 18 bootlegs (among the
1345    other things, now coinage and P2 inputs in fpointbl & fpointbj
1346    work again)
1347 * removed a lot of redundant #define from taito drivers, replacing
1348    them with PORT_INCLUDEs and definitions from taitoipt.h
1659zn.c improvements: [smf]
1660 - Improved dip switch emulation, ram hacks to get games booting are
1661    no longer required.
1662 - Added gun emulation for judge dredd.
1663 - Fixed judge dredd ide emulation when building with visual studio.
1664 - Mapped primal rage 2 inputs
1665 - Mapped player 3 & 4 inputs for 1 on 1 government, these are now
1666    the default with the 6 button inputs only mapped for games that
1667    need them.
1668 - Converted AT28C16 to a device.
1669 - Added preliminary support for devices to load/save nvram.
13491670
1671Added some initial logic to boot and run the PR-8210 ROM (i8049)
1672in ldplayer.c. Currently this is disabled behind a compile-time
1673switch. Once this is working, the plan is to incorporate this into
1674the existing PR-8210 emulation, but we're not there yet. [Aaron Giles]
13501675
1676Changed Trivia Quest clocks based on some really old information.
1677[Pierpaolo Prazzoli]
13511678
1352New clones added
1353----------------
1354World Class Bowling v1.6N [Brian Troha]
1355Tiger Heli (bootleg set 1) [stephh]
1356Guardian (US) [stephh]
1357Get Star (Japan) [stephh]
1358Virtua Fighter 2 (Revision A) [Peabo / ElSemi]
1679Added new function tilemap_set_pen_data_offset(). While this isn't
1680'free' as tilemap_set_palette_offset() is (when the offset changes,
1681the pixmap cache needs to be invalidated), it helps removing some
1682redundant code from drivers. Updated snk.c and snk68.c to take
1683advantage of the new function. [Nicola Salmoria]
13591684
1685Significant cleanup/rewrite of the MCS-48 CPU core:
1686 * renamed from i8039 to mcs48
1687 * changed to use data address space for internal RAM
1688 * added internal memory maps for variants with internal RAM/ROM
1689 * added a number of variants from documentation
1690 * removed redundant and unused definitions from header file
1691 * renamed constants and functions to be MCS48* prefixed
1692 * re-verified all opcode behaviors and timing
1693 * changed illegal opcodes to count 1 cycle to avoid infinite loops
1694 * changed EA behavior so that it is a push from the driver instead of a pull on each opcode fetch
1695    (this may change further in the future).
1696 * reimplemented IRQ generation and timer behavior according to documentation
1697 * updated all drivers accordingly
1698 * fixed several uses of PULSE_LINE, which no longer works
13601699
1700SH4, Naomi, and Hikaru updates [Samuele Zannoli]
1701 - Fixed SH-4 core to support multiple SH-4s
1702 - Fixed LDCSR instruction
1703 - Fixed SH-4 I/O ports
1704 - Skeleton Hikaru driver with memory maps and both SH-4s
1705 - Fixed JVS/Maple translation so Naomi 2 BIOS runs
13611706
1362New games marked as GAME_NOT_WORKING
1363------------------------------------
1364Daytona USA Deluxe '93 [Peabo / ElSemi]
1707Fixed Dip Switches and Inputs for 'jcross' and 'sgladiat'. [stephh]
1708
1709Changed slider controls into a menu. For now, removed the old direct
1710access mechanism; instead, you must access the sliders via the main
1711menu. While in the menu, you can use the ~ key to turn off the menu
1712display and leave only the bar display, in order to see more of the
1713screen. [Aaron Giles]
1714
1715Namco NB 1/2 work: [Olivier Galibert]
1716 - Shares the memory with the c75.
1717 - Renames the c75 region to c7x from user4.
1718 - Implements the c75 reset/halt control.
1719 - Implements the irqs more correctly.
1720
1721Small optimization to memory handling for 68000 core.
1722[Christophe Jaillet]
1723
1724Fixed input port confusion in the 8080bw driver. Connected AVGDVG
1725status bits via PORT_CUSTOM. [Fabio Priuli]
1726
1727Updated stepper motor code to use a MAME-style config interface,
1728rather than a load of setting functions. Changed optic functions to
1729use clearly defined start and end points. Added standard layout for
1730Starpoint units used in many machines. Updated all affected drivers.
1731[James Wallace]
1732
1733Removed useless backslashes lurking throughout the code. [Atari Ace]
1734
1735Improvements to magic10.c driver: [Roberto Fresca]
1736 - Added Magic's 10 version 16.15
1737 - Remapped all inputs to match other poker games.
1738 - Added a missing input to Magic's 10 games.
1739
1740
1741
1742New games added or promoted from NOT_WORKING status
1743---------------------------------------------------
1744Aero Fighters Special (Tiawan) [smf]
1745Super Football Champ [smf]
1746Magical Date / Magical Date - dokidoki kokuhaku daisakusen [smf]
1747Fighters' Impact [smf]
1748Judge Dredd [smf]
1749
1750
1751
1752New clones added
1753----------------
1754Top Skater (USA) [Gerald (COY)]
1755Ikari Warriors (US) [Corrado Tomaselli]
1756Magic's 10 (ver. 16.15) [Roberto Fresca]
1757s

Previous 15994 Revisions Next


© 1998-2018 The MESS Team