Changes of Revision 2

libretro-mame2003-plus.changes Changed
x
 
1
@@ -1,4 +1,42 @@
2
 -------------------------------------------------------------------
3
+Sat Jun 06 10:14:00 UTC 2020 - i@guoyunhe.me
4
+
5
+- Update to version 0~git20200525:
6
+  * Mention the new one
7
+  * Gulun.Pa! gfx mapping
8
+  * gulunpa
9
+  * New working game Gulun.Pa! CPS1 prototype
10
+  * Update CHANGELOG.md
11
+  * Update CHANGELOG.md
12
+  * sample volume
13
+  * Update samples.h
14
+  * Update samples.c
15
+  * Update mixer.h
16
+  * Update mixer.c
17
+  * sample pause support for journey
18
+  * Let's support another joystick bootleg this time for TANK III
19
+  * mention the new one
20
+  * TANK III Joystick bootleg
21
+  * Update mcr2.c
22
+  * Whatsnew and credits
23
+  * Update mcr2.c
24
+  * Update samples.c
25
+  * fix big samples dynamic loading when not an ost item
26
+  * Update mcr2.c
27
+  * Update mcr2.c
28
+  * Update foodf.c
29
+  * Update inptport.c
30
+  * Update mame2003.c
31
+  * Update mame.h
32
+  * Update inptport.c
33
+  * Update foodf.c
34
+  * Fix a bug in loop condition
35
+  * grant2258 A fix for Midway MCR3 game saving
36
+  * Update dat grant2258
37
+  * Last one from me
38
+  * hmmm
39
+
40
+-------------------------------------------------------------------
41
 Sun Feb 09 14:12:36 UTC 2020 - i@guoyunhe.me
42
 
43
 - Update to version 0~git20200209:
44
libretro-mame2003-plus.spec Changed
10
 
1
@@ -17,7 +17,7 @@
2
 
3
 
4
 Name:           libretro-mame2003-plus
5
-Version:        0~git20200209
6
+Version:        0~git20200525
7
 Release:        0
8
 Summary:        MAME 2003 Plus libretro core for arcade emulation
9
 License:        NonFree
10
_servicedata Changed
9
 
1
@@ -1,4 +1,4 @@
2
 <servicedata>
3
 <service name="tar_scm">
4
                 <param name="url">https://github.com/libretro/mame2003-plus-libretro.git</param>
5
-              <param name="changesrevision">c5f041d974de5154314153a29ecbafef19eaa4f9</param></service></servicedata>
6
\ No newline at end of file
7
+              <param name="changesrevision">8242007805b4e382c9dca3198957c9c62d0e273e</param></service></servicedata>
8
\ No newline at end of file
9
libretro-mame2003-plus-0~git20200209.tar.xz/CHANGELOG.md -> libretro-mame2003-plus-0~git20200525.tar.xz/CHANGELOG.md Changed
61
 
1
@@ -55,6 +55,7 @@
2
 * Golden Tee '99 (v1.00)
3
 * Golden Tee 2K (v1.00)
4
 * Golden Tee Classic (v1.00)
5
+* Gulun.Pa! 
6
 * Gunbarich
7
 * GunMaster
8
 * Hang Zo
9
@@ -165,6 +166,7 @@
10
 * Magical Drop
11
 * Magical Drop Plus 1
12
 * Progear No Arashi
13
+* Renegade (US, Bootleg)
14
 * Super Bishi Bashi Championship (ver KAA, 3 Players)
15
 * Tetris the Absolute The Grand Master 2 Plus
16
 * The Great Ragtime Show
17
@@ -177,14 +179,16 @@
18
 * Bubble Bobble Lost Cave
19
 * Bubble Bobble Ultra
20
 * Do DonPachi (Arrange Ver. 1.1) (trap15, hack)
21
-* Dogou Souken (joystick hack bootleg)
22
+* Dogou Souken / Victory Road (joystick hack bootleg)
23
 * Donkey Kong II Jumpman Returns
24
 * DownTown (joystick hack)
25
 * Final Fight 30th Anniversary Edition (Grego And Rotwang)
26
+* Food Fight - Live Center Rev 5 w/ debounce delay position hack
27
 * Guerrilla War (joystick hack bootleg)
28
 * Ikari (joystick hack bootleg)
29
 * Metal Slug 2 - Turbo (Trap15, Hack)
30
 * Midnight Resistance (joystick hack bootleg)
31
+* TANK III (joystick hack bootleg)
32
 * Tron freeplay custom rom
33
 
34
 
35
@@ -328,6 +332,7 @@
36
 * Galaga 3
37
 * Gaplus
38
 * Grobda
39
+* Journey (Added sepways.wav sample)
40
 * Libble Rabble
41
 * Mappy
42
 * Mortal Kombat - Added OST soundtrack (via KMFDManic)
43
@@ -357,6 +362,7 @@
44
 * Cosmic Alien
45
 * Frogs
46
 * Ghox (Toaplan Samples)
47
+* Journey
48
 * Sasuke Vs Commander 
49
 * Space Firebird
50
 * Teki Paki (Toaplan Samples)
51
@@ -453,3 +459,9 @@
52
 * Added Bryan McPhail's C-Chip simulation code for Operation Wolf from MAME98 and MAME176 respectively [arcadez]
53
 * Fixed graphical problems in GunNail and better balanced the sound for the games using the NMK004 [arcadez]
54
 * Removed imperfect MCU simulation code and hooked the proper M68705 MCU's for Renegade and Nekketsu Kouha Kunio-kun [dink, arcadez]
55
+* Hooked up the sepways.wav sample for journey in mcr2.c [mahoneyt944, grant2258, arcadez]
56
+* Created new hack for food fight - allows player to face the direction last applied. [mahoneyt944, grant2258]
57
+* Added core option for axis centering to allow digital joysticks to play analog joystick games (food fight, roadrunner, paperboy)
58
+* Added pause support for use with samples.
59
+* Fixed mcr3 game saving
60
+
61
libretro-mame2003-plus-0~git20200209.tar.xz/metadata/mame2003-plus.xml -> libretro-mame2003-plus-0~git20200525.tar.xz/metadata/mame2003-plus.xml Changed
201
 
1
@@ -3921,6 +3921,54 @@
2
        </dipswitch>
3
        <driver status="preliminary" color="good" sound="good" palettesize="32"/>
4
    </game>
5
+   <game name="eeekk">
6
+       <description>Eeekk!</description>
7
+       <year>1983</year>
8
+       <manufacturer>Epos Corporation</manufacturer>
9
+       <rom name="u10_e12063.u10" size="4096" crc="edd05de2" sha1="25dfa7ad2e29b1ca9ce9bb36bf1a573baabb4d5b" region="cpu1" offset="0"/>
10
+       <rom name="u9_e12063.u9" size="4096" crc="6f57114a" sha1="417b910a4343da026426b4cfd0a83b9142c87353" region="cpu1" offset="1000"/>
11
+       <rom name="u8_e12063.u8" size="4096" crc="bcb0ebbd" sha1="a2a00dedee12d6006817021e98fb44b2339127a0" region="cpu1" offset="2000"/>
12
+       <rom name="u7_e12063.u7" size="4096" crc="a0df8f77" sha1="ee2afed25ab32bf09b14e8638d03b6e2f8e6b337" region="cpu1" offset="3000"/>
13
+       <rom name="u6_e12063.u6" size="4096" crc="61953b0a" sha1="67bcb4286e39cdda20684a4f580392468b08800e" region="cpu1" offset="4000"/>
14
+       <rom name="u5_e12063.u5" size="4096" crc="4c22c6d9" sha1="94a8fc951994746f8ccfb77d80f8b98fde8a6f33" region="cpu1" offset="5000"/>
15
+       <rom name="u4_e12063.u4" size="4096" crc="3d341208" sha1="bc4d2567df2779d97e718376c4bf682ba459c01e" region="cpu1" offset="6000"/>
16
+       <rom name="u11_e12063.u11" size="2048" crc="417faff0" sha1="7965155ee32694ea9a10245db73d8beef229408c" region="cpu1" offset="7000"/>
17
+       <rom name="74s288.u66" size="32" crc="f2078c38" sha1="7bfd49932a6fd8840514b7af93a64cedb248122d" region="proms" offset="0"/>
18
+       <chip type="cpu" name="Z80" clock="2750000"/>
19
+       <chip type="audio" name="AY-3-8910" clock="2750000"/>
20
+       <video screen="raster" orientation="vertical" width="236" height="272" aspectx="3" aspecty="4" refresh="60.000000"/>
21
+       <sound channels="1"/>
22
+       <input players="1" control="joy8way" buttons="2" coins="1" service="yes"/>
23
+       <dipswitch name="Coinage">
24
+           <dipvalue name="1 Coin/1 Credit" default="yes"/>
25
+           <dipvalue name="1 Coin/2 Credits"/>
26
+       </dipswitch>
27
+       <dipswitch name="Lives">
28
+           <dipvalue name="3" default="yes"/>
29
+           <dipvalue name="4"/>
30
+           <dipvalue name="5"/>
31
+           <dipvalue name="6"/>
32
+       </dipswitch>
33
+       <dipswitch name="Difficulty">
34
+           <dipvalue name="1 (Easy)"/>
35
+           <dipvalue name="2"/>
36
+           <dipvalue name="3"/>
37
+           <dipvalue name="4"/>
38
+           <dipvalue name="5" default="yes"/>
39
+           <dipvalue name="6"/>
40
+           <dipvalue name="7"/>
41
+           <dipvalue name="8 (Hard)"/>
42
+       </dipswitch>
43
+       <dipswitch name="Extra Life Range">
44
+           <dipvalue name="100000 - 170000 points" default="yes"/>
45
+           <dipvalue name="20000 - 90000 points"/>
46
+       </dipswitch>
47
+       <dipswitch name="Demo Sounds">
48
+           <dipvalue name="Off"/>
49
+           <dipvalue name="On" default="yes"/>
50
+       </dipswitch>
51
+       <driver status="good" color="good" sound="good" palettesize="32"/>
52
+   </game>
53
    <game name="suprglob">
54
        <description>Super Glob</description>
55
        <year>1983</year>
56
@@ -58578,278 +58626,6 @@
57
        </dipswitch>
58
        <driver status="good" color="good" sound="preliminary" palettesize="8"/>
59
    </game>
60
-
61
-   <game name="helifire">
62
-       <description>HeliFire (revision B)</description>
63
-       <year>1980</year>
64
-       <manufacturer>Nintendo</manufacturer>
65
-       <rom name="tub.f1b" size="1024" crc="032f89ca" sha1="63b0310875ed78a6385e44eea781ddcc4a63557c" region="cpu1" offset="0"/>
66
-       <rom name="tub.f2b" size="1024" crc="2774e70f" sha1="98d845e80db61799493dbebe8db801567277432c" region="cpu1" offset="400"/>
67
-       <rom name="tub.g1b" size="1024" crc="b5ad6e8a" sha1="1eb4931e85bd6a559e85a2b978d383216d3988a7" region="cpu1" offset="800"/>
68
-       <rom name="tub.g2b" size="1024" crc="5e015bf4" sha1="60f5a9707c8655e54a8381afd764856fb25c29f1" region="cpu1" offset="c00"/>
69
-       <rom name="tub.h1b" size="1024" crc="23bb4e5a" sha1="b59bc0adff3635aca1def2b1997f7edc6ca7e8ee" region="cpu1" offset="1000"/>
70
-       <rom name="tub.h2b" size="1024" crc="358227c6" sha1="d7bd678ef1737edc6aa609e43e3ae96a8d61dc15" region="cpu1" offset="1400"/>
71
-       <rom name="tub.i1b" size="1024" crc="0c679f44" sha1="cbe31dbe5f2c5f11a637cb3bde4e059c310d0e76" region="cpu1" offset="1800"/>
72
-       <rom name="tub.i2b" size="1024" crc="d8b7a398" sha1="3ddfeac39147d5df6096f525f7ef67abef32a28b" region="cpu1" offset="1c00"/>
73
-       <rom name="tub.j1b" size="1024" crc="98ef24db" sha1="70ad8dd6e1e8f4bf4ce431737ca1856eecc03d53" region="cpu1" offset="2000"/>
74
-       <rom name="tub.j2b" size="1024" crc="5e2b5877" sha1="f7c747e8a1d9fe2dda71ee6304636cf3cdf727a7" region="cpu1" offset="2400"/>
75
-       <rom name="tub.snd" size="1024" crc="9d77a31f" sha1="36db9b5087b6661de88042854874bc247c92d985" region="cpu2" offset="0"/>
76
-       <chip type="cpu" name="8080" clock="2520000"/>
77
-       <chip type="cpu" soundonly="yes" name="I8035" clock="400000"/>
78
-       <chip type="audio" name="DAC"/>
79
-       <video screen="raster" orientation="vertical" width="224" height="248" aspectx="3" aspecty="4" refresh="60.000000"/>
80
-       <sound channels="1"/>
81
-       <input players="2" control="joy8way" buttons="1" coins="1"/>
82
-       <dipswitch name="Lives">
83
-           <dipvalue name="3" default="yes"/>
84
-           <dipvalue name="4"/>
85
-           <dipvalue name="5"/>
86
-           <dipvalue name="6"/>
87
-       </dipswitch>
88
-       <dipswitch name="Bonus Life">
89
-           <dipvalue name="5000"/>
90
-           <dipvalue name="6000"/>
91
-           <dipvalue name="8000"/>
92
-           <dipvalue name="10000" default="yes"/>
93
-       </dipswitch>
94
-       <dipswitch name="Coinage">
95
-           <dipvalue name="2 Coins/1 Credit"/>
96
-           <dipvalue name="1 Coin/1 Credit" default="yes"/>
97
-       </dipswitch>
98
-       <dipswitch name="Cabinet">
99
-           <dipvalue name="Upright" default="yes"/>
100
-           <dipvalue name="Cocktail"/>
101
-       </dipswitch>
102
-       <dipswitch name="VR1 sun glow brightness">
103
-           <dipvalue name="00"/>
104
-           <dipvalue name="10"/>
105
-           <dipvalue name="20"/>
106
-           <dipvalue name="30"/>
107
-           <dipvalue name="40"/>
108
-           <dipvalue name="50" default="yes"/>
109
-           <dipvalue name="60"/>
110
-           <dipvalue name="70"/>
111
-           <dipvalue name="7f"/>
112
-       </dipswitch>
113
-       <dipswitch name="VR2 sea brightness">
114
-           <dipvalue name="00" default="yes"/>
115
-           <dipvalue name="10"/>
116
-           <dipvalue name="20"/>
117
-           <dipvalue name="30"/>
118
-           <dipvalue name="40"/>
119
-           <dipvalue name="50"/>
120
-           <dipvalue name="60"/>
121
-           <dipvalue name="70"/>
122
-           <dipvalue name="7f"/>
123
-       </dipswitch>
124
-       <dipswitch name="VR3 height of the sea">
125
-           <dipvalue name="00"/>
126
-           <dipvalue name="01"/>
127
-           <dipvalue name="02"/>
128
-           <dipvalue name="03"/>
129
-           <dipvalue name="04" default="yes"/>
130
-           <dipvalue name="05"/>
131
-           <dipvalue name="06"/>
132
-           <dipvalue name="07"/>
133
-           <dipvalue name="08"/>
134
-           <dipvalue name="09"/>
135
-           <dipvalue name="10"/>
136
-           <dipvalue name="11"/>
137
-           <dipvalue name="12"/>
138
-           <dipvalue name="13"/>
139
-           <dipvalue name="14"/>
140
-           <dipvalue name="15"/>
141
-       </dipswitch>
142
-       <dipswitch name="VR4 height of the waves">
143
-           <dipvalue name="00"/>
144
-           <dipvalue name="01"/>
145
-           <dipvalue name="02"/>
146
-           <dipvalue name="03"/>
147
-           <dipvalue name="04" default="yes"/>
148
-           <dipvalue name="05"/>
149
-           <dipvalue name="06"/>
150
-           <dipvalue name="07"/>
151
-       </dipswitch>
152
-       <driver status="good" color="good" sound="imperfect" palettesize="1032"/>
153
-   </game>
154
-   <game name="helifira" cloneof="helifire" romof="helifire">
155
-       <description>HeliFire (revision A)</description>
156
-       <year>1980</year>
157
-       <manufacturer>Nintendo</manufacturer>
158
-       <rom name="f1a.bin" size="1024" crc="92c9d6c1" sha1="860a7b3980e9e11d48769fad347c965e04ed3f89" region="cpu1" offset="0"/>
159
-       <rom name="f2a.bin" size="1024" crc="a264dde8" sha1="48f972ad5af6c2ab61117f60d9244df6df6d313c" region="cpu1" offset="400"/>
160
-       <rom name="tub.g1b" merge="tub.g1b" size="1024" crc="b5ad6e8a" sha1="1eb4931e85bd6a559e85a2b978d383216d3988a7" region="cpu1" offset="800"/>
161
-       <rom name="g2a.bin" size="1024" crc="a987ebcd" sha1="46726293c308c18b28941809419ba4c2ffc8084f" region="cpu1" offset="c00"/>
162
-       <rom name="h1a.bin" size="1024" crc="25abcaf0" sha1="a14c795de1fc283405f71bb83f4ac5c98fd406cb" region="cpu1" offset="1000"/>
163
-       <rom name="tub.h2b" merge="tub.h2b" size="1024" crc="358227c6" sha1="d7bd678ef1737edc6aa609e43e3ae96a8d61dc15" region="cpu1" offset="1400"/>
164
-       <rom name="tub.i1b" merge="tub.i1b" size="1024" crc="0c679f44" sha1="cbe31dbe5f2c5f11a637cb3bde4e059c310d0e76" region="cpu1" offset="1800"/>
165
-       <rom name="i2a.bin" size="1024" crc="296610fd" sha1="f1ab379983e45f3cd718dd82962c609297b4dcb8" region="cpu1" offset="1c00"/>
166
-       <rom name="tub.j1b" merge="tub.j1b" size="1024" crc="98ef24db" sha1="70ad8dd6e1e8f4bf4ce431737ca1856eecc03d53" region="cpu1" offset="2000"/>
167
-       <rom name="tub.j2b" merge="tub.j2b" size="1024" crc="5e2b5877" sha1="f7c747e8a1d9fe2dda71ee6304636cf3cdf727a7" region="cpu1" offset="2400"/>
168
-       <rom name="tub.snd" merge="tub.snd" size="1024" crc="9d77a31f" sha1="36db9b5087b6661de88042854874bc247c92d985" region="cpu2" offset="0"/>
169
-       <chip type="cpu" name="8080" clock="2520000"/>
170
-       <chip type="cpu" soundonly="yes" name="I8035" clock="400000"/>
171
-       <chip type="audio" name="DAC"/>
172
-       <video screen="raster" orientation="vertical" width="224" height="248" aspectx="3" aspecty="4" refresh="60.000000"/>
173
-       <sound channels="1"/>
174
-       <input players="2" control="joy8way" buttons="1" coins="1"/>
175
-       <dipswitch name="Lives">
176
-           <dipvalue name="3" default="yes"/>
177
-           <dipvalue name="4"/>
178
-           <dipvalue name="5"/>
179
-           <dipvalue name="6"/>
180
-       </dipswitch>
181
-       <dipswitch name="Bonus Life">
182
-           <dipvalue name="5000"/>
183
-           <dipvalue name="6000"/>
184
-           <dipvalue name="8000"/>
185
-           <dipvalue name="10000" default="yes"/>
186
-       </dipswitch>
187
-       <dipswitch name="Coinage">
188
-           <dipvalue name="2 Coins/1 Credit"/>
189
-           <dipvalue name="1 Coin/1 Credit" default="yes"/>
190
-       </dipswitch>
191
-       <dipswitch name="Cabinet">
192
-           <dipvalue name="Upright" default="yes"/>
193
-           <dipvalue name="Cocktail"/>
194
-       </dipswitch>
195
-       <dipswitch name="VR1 sun glow brightness">
196
-           <dipvalue name="00"/>
197
-           <dipvalue name="10"/>
198
-           <dipvalue name="20"/>
199
-           <dipvalue name="30"/>
200
-           <dipvalue name="40"/>
201
libretro-mame2003-plus-0~git20200209.tar.xz/src/driver.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/driver.c Changed
24
 
1
@@ -2156,9 +2156,12 @@
2
    DRIVER( pang3j )    /* 11/05/1995 (c) 1995 Mitchell (Japan) not listed on Capcom's site */
3
    DRIVER( megaman )   /* 06/10/1995 (c) 1995 (Asia)  */
4
    DRIVER( rockmanj )  /* 22/09/1995 (c) 1995 (Japan) */
5
+    
6
+  /* CPS Prototype */
7
+   DRIVER( gulunpa )   /* (c) 1993 (prototype) */  
8
        
9
-    /* Capcom CPS Changer */
10
-    DRIVER( wofch )        /* 31/10/1992 (c) 1992 (Japan) (CPS1 + QSound) */
11
+  /* Capcom CPS Changer */
12
+  DRIVER( wofch )      /* 31/10/1992 (c) 1992 (Japan) (CPS1 + QSound) */
13
 
14
    /* Capcom CPS2 games */
15
    /* list completed by CPS2Shock */
16
@@ -4198,6 +4201,7 @@
17
    DRIVER( aso )       /*            (c) 1985 */
18
    DRIVER( tnk3 )      /* A5001      (c) 1985 */
19
    DRIVER( tnk3j )     /* A5001      (c) 1985 */
20
+   DRIVER( tnk3b )     /* bootleg    (c) 1985 */    
21
    DRIVER( athena )    /*       'UP' (c) 1986 */
22
    DRIVER( fitegolf )  /*       'GU' (c) 1988 */
23
    DRIVER( fitegol2 )  /*       'GU' (c) 1988 */
24
libretro-mame2003-plus-0~git20200209.tar.xz/src/drivers/cps1.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/drivers/cps1.c Changed
162
 
1
@@ -4010,6 +4010,114 @@
2
    PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
3
 INPUT_PORTS_END    
4
 
5
+INPUT_PORTS_START( gulunpa )
6
+   PORT_START      /* IN0 */
7
+   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
8
+   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
9
+   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )  /* Service, but it doesn't give any credit */
10
+   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
11
+   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
12
+   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
13
+   PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
14
+   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
15
+   
16
+   PORT_START
17
+   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
18
+   PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
19
+   PORT_DIPSETTING(    0x01, DEF_STR( 3C_1C ) )
20
+   PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
21
+   PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
22
+   PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
23
+   PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
24
+   PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
25
+   PORT_DIPSETTING(    0x03, DEF_STR( 1C_6C ) )
26
+   PORT_DIPNAME( 0x18, 0x18, "Coin slots" )
27
+   PORT_DIPSETTING(    0x18, "1, Common" )
28
+   PORT_DIPSETTING(    0x00, "2, Common" )
29
+   PORT_DIPSETTING(    0x10, "2, Common (duplicate 1)" )
30
+   PORT_DIPSETTING(    0x08, "2, Common (duplicate 2)" )
31
+   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
32
+   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
33
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
34
+   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
35
+   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
36
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
37
+   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
38
+   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
39
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
40
+   
41
+   PORT_START
42
+   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) )
43
+   PORT_DIPSETTING(    0x07, "1 Easiest" )
44
+   PORT_DIPSETTING(    0x06, "2 Very Easy" )
45
+   PORT_DIPSETTING(    0x05, "3 Easy" )
46
+   PORT_DIPSETTING(    0x04, "4 Medium" )
47
+   PORT_DIPSETTING(    0x03, "5 Medium Hard" )
48
+   PORT_DIPSETTING(    0x02, "6 Hard" )
49
+   PORT_DIPSETTING(    0x01, "7 Very Hard" )
50
+   PORT_DIPSETTING(    0x00, "8 Hardest" )
51
+   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
52
+   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
53
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
54
+   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
55
+   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
56
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
57
+   /* flipping this on any screen causes scroll1 layer left edge to be filled with tile 0x0014 */
58
+   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
59
+   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
60
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
61
+   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
62
+   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
63
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
64
+   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
65
+   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
66
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
67
+   
68
+   PORT_START
69
+   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
70
+   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
71
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
72
+   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
73
+   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
74
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
75
+   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
76
+   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
77
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
78
+   PORT_DIPNAME( 0x08, 0x08, "Freeze" )
79
+   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
80
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
81
+   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
82
+   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
83
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
84
+   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
85
+   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
86
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
87
+   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
88
+   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
89
+   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
90
+   PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME, "Game Mode", IP_KEY_NONE, IP_JOY_NONE )
91
+   PORT_DIPSETTING(    0x80, "Game" )
92
+   PORT_DIPSETTING(    0x00, "Test" )
93
+
94
+   PORT_START
95
+   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
96
+   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
97
+   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
98
+   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
99
+   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
100
+   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
101
+   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
102
+   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
103
+   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
104
+   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
105
+   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
106
+   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
107
+   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
108
+   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
109
+   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
110
+   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
111
+INPUT_PORTS_END                                        
112
+                                        
113
 
114
 static struct GfxLayout layout8x8 =
115
 {
116
@@ -7812,7 +7920,33 @@
117
    ROM_LOAD( "rcm_18.rom",    0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
118
    ROM_LOAD( "rcm_19.rom",    0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
119
 ROM_END
120
+         
121
+/* CPS Prototype */                                        
122
 
123
+ROM_START( gulunpa )
124
+   ROM_REGION( CODE_SIZE, REGION_CPU1, 0 )      /* 68000 code */
125
+  ROM_LOAD16_BYTE( "26",  0x00000, 0x020000, CRC(f30ffa29) SHA1(9e70daf4229485dc5700b074dba55839c7357351) )
126
+  ROM_LOAD16_BYTE( "30",  0x00001, 0x020000, CRC(5d35f737) SHA1(47b6bfa6eaa512684e12c23162243d1a21cb1a7a) )
127
+
128
+   ROM_REGION( 0x200000, REGION_GFX1, 0 )
129
+   ROMX_LOAD( "1",     0x000000, 0x080000, CRC(b55e648f) SHA1(e22eec707b3b1ad8fb93c0f2df41ccf72cd03440) , ROM_GROUPWORD | ROM_SKIP(6) )
130
+   ROMX_LOAD( "2",     0x000002, 0x080000, CRC(ad033bce) SHA1(b37b1d341e61502aa4213b049b14974fab8a0445) , ROM_GROUPWORD | ROM_SKIP(6) )
131
+   ROMX_LOAD( "3",     0x000004, 0x080000, CRC(36c3951a) SHA1(74edaca2c78dd6a304ea702091a9f0b7f6036e41) , ROM_GROUPWORD | ROM_SKIP(6) )
132
+   ROMX_LOAD( "4",     0x000006, 0x080000, CRC(ff0cb826) SHA1(fec7833652e6789e886a1ec7b4680a608ddbbe20) , ROM_GROUPWORD | ROM_SKIP(6) )
133
+  ROM_FILL(0x000006, 1, 0xff)
134
+   
135
+   ROM_REGION( 0x8000, REGION_GFX2, 0 )
136
+   ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x8000 ) /* stars */
137
+   
138
+   ROM_REGION( 0x18000, REGION_CPU2, 0 ) /* 64k for the audio CPU (+banks) */
139
+   ROM_LOAD( "9",      0x00000, 0x08000, CRC(15afd06f) SHA1(1a4ff3e11e55266e7c93743b6564c226eaaba142) )
140
+   ROM_CONTINUE(       0x10000, 0x08000 )
141
+
142
+   ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Samples */
143
+   ROM_LOAD( "18",     0x00000, 0x20000, CRC(9997a34f) SHA1(8e107d6413836c48fc57e4a9b89ae99a9e381e8b) )
144
+   ROM_LOAD( "19",     0x20000, 0x20000, CRC(e95270ac) SHA1(dc684abfa1ea276a00ec541ab8f3f9f131375faa) )
145
+ROM_END                                        
146
+                                        
147
 /* Home 'CPS Changer' Unit  */
148
 
149
 /* B-Board 91635B-2 */
150
@@ -8013,7 +8147,10 @@
151
 /* Japanese version of Pang 3 is encrypted, Euro version is not */
152
 GAME( 1995, pang3,    0,        pang3,    pang3,    cps1,     ROT0,   "Mitchell", "Pang! 3 (Euro 950511)" )
153
 GAME( 1995, pang3j,   pang3,    pang3,    pang3,    pang3,    ROT0,   "Mitchell", "Pang! 3 (Japan 950511)" )
154
-                   
155
+                                        
156
+/* CPS Prototype */
157
+GAME( 1993, gulunpa,  0,        cps1,     gulunpa,  cps1,     ROT0,   "Capcom", "Gulun.Pa! (Japan 931220 L Prototype)" )
158
+                                                   
159
 /* CPS Changer */
160
 GAME( 1994, wofch,    0,        qsound,   wofch,    wof,      ROT0,   "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031)" )
161
            
162
libretro-mame2003-plus-0~git20200209.tar.xz/src/drivers/foodf.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/drivers/foodf.c Changed
134
 
1
@@ -172,9 +172,83 @@
2
  *
3
  *************************************/
4
 
5
+static UINT8 position_update ( UINT8 temp )
6
+{
7
+  if (temp > 127) {
8
+    if (temp > 190) return 190;
9
+    else return temp; }
10
+
11
+  else {
12
+    if (temp < 65) return 65;
13
+    else return temp; }
14
+}
15
+
16
 static READ16_HANDLER( analog_r )
17
 {
18
-   return readinputport(whichport);
19
+
20
+ /****************************************************
21
+  * Live Center - rev 5 - by mahoneyt944 & grant2258 *
22
+  ****************************************************/
23
+
24
+  static UINT8 currentx  = 0x80; // upright
25
+  static UINT8 currenty  = 0x7F;
26
+  static UINT8 currentx2 = 0x80; // cocktail
27
+  static UINT8 currenty2 = 0x7F;
28
+  static UINT8 delay     = 0;    // debounce counter
29
+  static UINT8 t         = 0;    // debounce count to reach
30
+  UINT8  center          = 0;    // reset center checks
31
+  UINT8  center2         = 0;
32
+
33
+
34
+  // live center dip switch set -> On
35
+  if (readinputport(6) == 0x01)
36
+  {
37
+    // user set debounce delay from dip menu
38
+    if (readinputport(7) == 0xFF) t = 0;
39
+    else t = readinputport(7);
40
+    if (delay > t) delay = 0;
41
+
42
+    // check for centers
43
+    if (readinputport(0) == 0x7F && readinputport(2) == 0x7F) center = 1;
44
+    if (readinputport(1) == 0x7F && readinputport(3) == 0x7F) center2 = 1;
45
+
46
+    if (delay == t) // debounce protection
47
+    {
48
+      delay = 0;
49
+
50
+      if (center == 0)
51
+      { // update upright stopping positions
52
+        currentx = position_update(readinputport(0));
53
+        currenty = position_update(readinputport(2));
54
+      }
55
+
56
+      if (center2 == 0)
57
+      { // update cocktail stopping positions
58
+        currentx2 = position_update(readinputport(1));
59
+        currenty2 = position_update(readinputport(3));
60
+      }
61
+    }
62
+    else delay++;
63
+
64
+    // return upright x stopping position
65
+    if (whichport == 0)
66
+    { if (center) return currentx; }
67
+
68
+    // return upright y stopping position
69
+    else if (whichport == 2)
70
+    { if (center) return currenty; }
71
+
72
+    // return cocktail x stopping position
73
+    else if (whichport == 1)
74
+    { if (center2) return currentx2; }
75
+
76
+    // return cocktail y stopping position
77
+    else if (whichport == 3)
78
+    { if (center2) return currenty2; }
79
+  }
80
+
81
+  // return actual input 
82
+  return readinputport(whichport);
83
 }
84
 
85
 
86
@@ -248,16 +322,16 @@
87
 
88
 INPUT_PORTS_START( foodf )
89
    PORT_START  /* IN0 */
90
-   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_X | IPF_PLAYER1 | IPF_REVERSE, 100, 60, 0, 255 )
91
+   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_X | IPF_PLAYER1 | IPF_REVERSE, 100, 100, 0, 255 )
92
 
93
    PORT_START  /* IN1 */
94
-   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_X | IPF_PLAYER2 | IPF_REVERSE | IPF_COCKTAIL, 100, 60, 0, 255 )
95
+   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_X | IPF_PLAYER2 | IPF_REVERSE | IPF_COCKTAIL, 100, 100, 0, 255 )
96
 
97
    PORT_START  /* IN2 */
98
-   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_Y | IPF_PLAYER1 | IPF_REVERSE, 100, 60, 0, 255 )
99
+   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_Y | IPF_PLAYER1 | IPF_REVERSE, 100, 100, 0, 255 )
100
 
101
    PORT_START  /* IN3 */
102
-   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_Y | IPF_PLAYER2 | IPF_REVERSE | IPF_COCKTAIL, 100, 60, 0, 255 )
103
+   PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_Y | IPF_PLAYER2 | IPF_REVERSE | IPF_COCKTAIL, 100, 100, 0, 255 )
104
 
105
    PORT_START  /* IN4 */
106
    PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
107
@@ -289,6 +363,26 @@
108
    PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ))
109
    PORT_DIPSETTING(    0xc0, DEF_STR( 1C_2C ))
110
    PORT_DIPSETTING(    0x40, DEF_STR( Free_Play ))
111
+   
112
+   PORT_START  /* Port #6 - Toggle for Live Center */
113
+   PORT_DIPNAME( 0x01, 0x00, "Live Center" )
114
+   PORT_DIPSETTING(    0x01, "On" )
115
+   PORT_DIPSETTING(    0x00, "Off" )
116
+   
117
+   PORT_START  /* Port #7 - Settings for Debounce Delay */
118
+   PORT_DIPNAME( 0xFF, 0xFF, "Debounce Delay" )
119
+   PORT_DIPSETTING(    0xFF, "0" )
120
+   PORT_DIPSETTING(    0x01, "1" )
121
+   PORT_DIPSETTING(    0x02, "2" )
122
+   PORT_DIPSETTING(    0x03, "3" )
123
+   PORT_DIPSETTING(    0x04, "4" )
124
+   PORT_DIPSETTING(    0x05, "5" )
125
+   PORT_DIPSETTING(    0x06, "6" )
126
+   PORT_DIPSETTING(    0x07, "7" )
127
+   PORT_DIPSETTING(    0x08, "8" )
128
+   PORT_DIPSETTING(    0x09, "9" )
129
+   PORT_DIPSETTING(    0x0A, "10")
130
+
131
 INPUT_PORTS_END
132
 
133
 
134
libretro-mame2003-plus-0~git20200209.tar.xz/src/drivers/mcr2.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/drivers/mcr2.c Changed
77
 
1
@@ -195,6 +195,17 @@
2
    }
3
 }
4
 
5
+static WRITE_HANDLER( journey_sample_select_w )
6
+{
7
+  /* start sample with looping on and pause it) */
8
+  if (!sample_playing(0) )
9
+  {
10
+    sample_start(0, 0, 1);
11
+    sample_set_pause(0, 1);
12
+  }
13
+
14
+    sample_set_pause(0, ~data & 1);
15
+}
16
 
17
 
18
 /*************************************
19
@@ -660,6 +671,25 @@
20
    { -1 } /* end of array */
21
 };
22
 
23
+/*************************************
24
+ *
25
+ *  Sound definitions
26
+ *
27
+ *************************************/
28
+
29
+static const char *journey_sample_names[] =
30
+{
31
+   "*journey",
32
+   "sepways.wav",
33
+   0
34
+};
35
+
36
+struct Samplesinterface journey_samples_interface =
37
+{
38
+   1,
39
+   50,
40
+   journey_sample_names
41
+};
42
 
43
 
44
 /*************************************
45
@@ -714,6 +744,9 @@
46
    /* video hardware */
47
    MDRV_VIDEO_START(journey)
48
    MDRV_VIDEO_UPDATE(journey)
49
+
50
+   /* sound hardware */
51
+   MDRV_SOUND_ADD(SAMPLES, journey_samples_interface )
52
 MACHINE_DRIVER_END
53
 
54
 
55
@@ -1074,6 +1107,15 @@
56
    mcr12_sprite_xoffs_flip = 0;
57
 }
58
 
59
+static DRIVER_INIT( journey )
60
+{
61
+   MCR_CONFIGURE_SOUND(MCR_SSIO);
62
+   install_port_write_handler(0, 0x00, 0x00, mcr_control_port_w);
63
+   install_port_write_handler(0, 0x04, 0x04, journey_sample_select_w);
64
+
65
+   mcr12_sprite_xoffs = 0;
66
+   mcr12_sprite_xoffs_flip = 0;
67
+}
68
 
69
 static DRIVER_INIT( kroozr )
70
 {
71
@@ -1118,4 +1160,4 @@
72
 GAME( 1982, wacko,    0,        mcr2,     wacko,    wacko,    ROT0,  "Bally Midway", "Wacko" )
73
 GAME( 1984, twotiger, 0,        mcr2,     twotiger, mcr2,     ROT0,  "Bally Midway", "Two Tigers" )
74
 GAME( 1984, twotigra, twotiger, twotigra, twotigra, twotigra, ROT0,  "Bally Midway", "Two Tigers (dedicated)" )
75
-GAMEX(1983, journey,  0,        journey,  journey,   mcr2,     ROT90, "Bally Midway", "Journey", GAME_IMPERFECT_SOUND )
76
+GAME( 1983, journey,  0,        journey,  journey,  journey,  ROT90, "Bally Midway", "Journey" )
77
libretro-mame2003-plus-0~git20200209.tar.xz/src/drivers/mcr3.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/drivers/mcr3.c Changed
18
 
1
@@ -427,12 +427,12 @@
2
 
3
 static NVRAM_HANDLER( mcr3 )
4
 {
5
+  unsigned char *ram = memory_region(REGION_CPU1);
6
+
7
    if (read_or_write)
8
-       mame_fwrite(file, videoram, videoram_size);
9
+       mame_fwrite(file, &ram[0xe000], 0x800);
10
    else if (file)
11
-       mame_fread(file, videoram, videoram_size);
12
-   else
13
-       memset(videoram, 0, videoram_size);
14
+       mame_fread(file, &ram[0xe000], 0x800);
15
 }
16
 
17
 
18
libretro-mame2003-plus-0~git20200209.tar.xz/src/drivers/renegade.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/drivers/renegade.c Changed
10
 
1
@@ -746,7 +746,7 @@
2
 
3
 ROM_START( renegadeb )
4
    ROM_REGION( 0x14000, REGION_CPU1, 0 )   /* 64k for code + bank switched ROM */
5
-   ROM_LOAD( "40.ic51",       0x08000, 0x8000, CRC(3dbaac11) SHA1(a40470514f01a1a9c159de0aa416ea3940be76e8) ) // bootleg
6
+   ROM_LOAD( "40.ic51",       0x08000, 0x8000, CRC(3dbaac11) SHA1(a40470514f01a1a9c159de0aa416ea3940be76e8) ) /* bootleg */
7
    ROM_LOAD( "na-5.bin",      0x04000, 0x4000, CRC(de7e7df4) SHA1(7d26ac29e0b5858d9a0c0cdc86c864e464145260) )
8
    ROM_CONTINUE(              0x10000, 0x4000 )
9
    
10
libretro-mame2003-plus-0~git20200209.tar.xz/src/drivers/snk.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/drivers/snk.c Changed
65
 
1
@@ -1478,6 +1478,40 @@
2
    ROM_LOAD( "tnk3-p9.bin", 0x10000, 0x4000, CRC(872e3fac) SHA1(98e7e9315fe7ccc51151c67dc60a362a1c2d8372) )
3
 ROM_END
4
 
5
+ROM_START( tnk3b ) /* Korean bootleg, hacked to use standard joysticks */
6
+   ROM_REGION( 0x10000, REGION_CPU1, 0 )   /* 64k for cpuA code */
7
+   ROM_LOAD( "tnk3-p1a.bin", 0x0000, 0x4000, CRC(26c45b82) SHA1(5ba944e9508a935f77e1555c6920b0bc638b6423) )
8
+   ROM_LOAD( "tnk3-p2.bin",  0x4000, 0x4000, CRC(0ae0a483) SHA1(6a1ba86da4fd75bfb00855db04eac2727ec4159e) )
9
+   ROM_LOAD( "tnk3-p3.bin",  0x8000, 0x4000, CRC(d16dd4db) SHA1(dcbc61251c13e11ce3cdd7a5ad200cd2d2758cab) )
10
+
11
+   ROM_REGION( 0x10000, REGION_CPU2, 0 )   /* 64k for cpuB code */
12
+   ROM_LOAD( "tnk3-p4.bin",  0x0000, 0x4000, CRC(01b45a90) SHA1(85ba3b157cd6463c92ed831bb48d38f3a16f9537) )
13
+   ROM_LOAD( "tnk3-p5.bin",  0x4000, 0x4000, CRC(60db6667) SHA1(9c4bb99473c6d9b8ac9086b7364b6278b70757f6) )
14
+   ROM_LOAD( "tnk3-p6.bin",  0x8000, 0x4000, CRC(4761fde7) SHA1(dadf60e33f5dd8108478ca480bcef6b2624cfca8) )
15
+
16
+   ROM_REGION( 0x10000, REGION_CPU3, 0 )   /* 64k for sound code */
17
+   ROM_LOAD( "tnk3-p10.bin",  0x0000, 0x4000, CRC(7bf0a517) SHA1(0197feeaf511ac59f3df8195ec57e947fb08e995) )
18
+   ROM_LOAD( "tnk3-p11.bin",  0x4000, 0x4000, CRC(0569ce27) SHA1(7aa73f57ad97445ce5729f05cd8d24973886dbf5) )
19
+
20
+   ROM_REGION( 0x0c00, REGION_PROMS, 0 )
21
+   ROM_LOAD( "7122.2",  0x000, 0x400, CRC(34c06bc6) SHA1(bb68e96a8fcc754840420952dab961e03bf6acdd) )
22
+   ROM_LOAD( "7122.1",  0x400, 0x400, CRC(6d0ac66a) SHA1(e792218ec43dd10473dc020afed8527cf43ea0d0) )
23
+   ROM_LOAD( "7122.0",  0x800, 0x400, CRC(4662b4c8) SHA1(391c2b8a17ce2e092b46a17fc4170dc1e3bde426) )
24
+
25
+   ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */
26
+   ROM_LOAD( "p14.1e", 0x0000, 0x2000, CRC(6bd575ca) SHA1(446bb929fa19a7ff8b92731f71ab3e3252899f07) )
27
+   ROM_RELOAD(         0x2000, 0x2000 )
28
+
29
+   ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* background tiles */
30
+   ROM_LOAD( "tnk3-p12.bin", 0x0000, 0x4000, CRC(ff495a16) SHA1(e6b97a63efe58018260ff34f0ea4edc81718cb14) )
31
+   ROM_LOAD( "tnk3-p13.bin", 0x4000, 0x4000, CRC(f8344843) SHA1(c741dc84b48f830f6d4eaa4476f5c2a391153acc) )
32
+
33
+   ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */
34
+   ROM_LOAD( "tnk3-p7.bin", 0x00000, 0x4000, CRC(06b92c88) SHA1(b39c2cc4a58937d89f9b0c9093b9742509db64a3) )
35
+   ROM_LOAD( "tnk3-p8.bin", 0x08000, 0x4000, CRC(63d0e2eb) SHA1(96182639bb620d9692a4c8266130769c44dd29f8) )
36
+   ROM_LOAD( "tnk3-p9.bin", 0x10000, 0x4000, CRC(872e3fac) SHA1(98e7e9315fe7ccc51151c67dc60a362a1c2d8372) )
37
+ROM_END
38
+
39
 /***********************************************************************/
40
 
41
 ROM_START( athena )
42
@@ -4215,6 +4249,14 @@
43
    snk_gamegroup = 1;
44
 }
45
 
46
+static DRIVER_INIT( tnk3b ){
47
+   snk_sound_busy_bit = 0x20;
48
+   snk_io = ikarijpb_io; /* Ikari joystick bootleg inputs are fine for this one */
49
+   hard_flags = 0;
50
+   snk_bg_tilemap_baseaddr = 0xd800;
51
+   snk_gamegroup = 1;
52
+}
53
+
54
 static DRIVER_INIT( athena ){
55
    snk_sound_busy_bit = 0x01;
56
    snk_io = athena_io;
57
@@ -4242,6 +4284,7 @@
58
 /*          rom       parent    machine   inp       init */
59
 GAMEX( 1985, tnk3,     0,        tnk3,     tnk3,     tnk3,     ROT270, "SNK", "T.N.K. III (US)", GAME_NO_COCKTAIL )
60
 GAMEX( 1985, tnk3j,    tnk3,     tnk3,     tnk3,     tnk3,     ROT270, "SNK", "T.A.N.K. (Japan)", GAME_NO_COCKTAIL )
61
+GAMEX( 1985, tnk3b,    tnk3,     tnk3,     tnk3,     tnk3b,    ROT270, "bootleg", "T.A.N.K. (joystick hack bootleg)", GAME_NO_COCKTAIL ) 
62
 GAMEX( 1986, athena,   0,        athena,   athena,   athena,   ROT0,   "SNK", "Athena", GAME_NO_COCKTAIL )
63
 GAMEX( 1988, fitegolf, 0,        athena,   fitegolf, fitegolf, ROT0,   "SNK", "Fighting Golf (World[Q])", GAME_NO_COCKTAIL )
64
 GAMEX( 1988, fitegol2, fitegolf, athena,   fitegolf, fitegolf, ROT0,   "SNK", "Fighting Golf (US)", GAME_NO_COCKTAIL )
65
libretro-mame2003-plus-0~git20200209.tar.xz/src/inptport.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/inptport.c Changed
201
 
1
@@ -7,17 +7,17 @@
2
 TODO:  remove the 1 analog device per port limitation
3
        support for inputports producing interrupts
4
        support for extra "real" hardware (PC throttle's, spinners etc)
5
-       
6
+
7
                  Controller-Specific Input Port Mappings
8
                  ---------------------------------------
9
 
10
-The main purpose of the controller-specific configuration is to remap 
11
-inputs.  This is handled via two mechanisms: key re-mapping and 
12
+The main purpose of the controller-specific configuration is to remap
13
+inputs.  This is handled via two mechanisms: key re-mapping and
14
 sequence re-mapping.
15
 
16
 Key re-mapping occurs at the most basic level.  The specified keycode is
17
-replaced where ever it occurs (in all sequences) with the specified 
18
-replacement.  Only single keycodes can be used as a replacement (that is, a 
19
+replaced where ever it occurs (in all sequences) with the specified
20
+replacement.  Only single keycodes can be used as a replacement (that is, a
21
 single key cannot be replaced with a key sequence).
22
 
23
 Sequence mapping occurs at a higher level.  In this case, the entire
24
@@ -27,15 +27,15 @@
25
 Keycodes are specified as a single keyword.  Key sequences are specified
26
 as a series of keycodes separated by spaces (the full sequence must be
27
 enclosed in quotes if spaces exist).  Two special keywords are available
28
-for defining key sequences, CODE_OR and CODE_NOT (which can abbreviated | 
29
+for defining key sequences, CODE_OR and CODE_NOT (which can abbreviated |
30
 and ! respectively).
31
 
32
 When two keycodes are specified together (separated by only whitespace),
33
 the default action is a logical AND, such that both keys must be pressed
34
 at the same time for the action to occur.  Often it desired that either
35
-key can be pressed for the action to occur (for example LEFT CTRL and 
36
+key can be pressed for the action to occur (for example LEFT CTRL and
37
 Joystick Button 0), in which case the two keycodes need to be separated
38
-by a CODE_OR (|) keyword.  Finally, certain combinations may be 
39
+by a CODE_OR (|) keyword.  Finally, certain combinations may be
40
 undesirable and warrant no action by MAME.  For these, the keywords should
41
 be specified by a CODE_NOT (!) (for example, ALT-TAB on a windows machine).
42
 
43
@@ -57,9 +57,9 @@
44
 
45
 -ctrlr "name"
46
 
47
-Specifies a controller name for customization.  The .ini files for the 
48
+Specifies a controller name for customization.  The .ini files for the
49
 controller are stored in either a directory or a .zip file with the same
50
-name as the specified controller.  
51
+name as the specified controller.
52
 
53
 The first file in the directory/zip to be scanned is the file default.ini.
54
 From there, game-specific files are scanned starting with the top-most
55
@@ -85,12 +85,12 @@
56
 require joystick and/or mouse support, those keywords can be placed in
57
 the main default.ini file.
58
 
59
-All of the options that can be specified on the command-line or in the 
60
-main mame.ini file can be specified in the controller-specific ini files, 
61
-though because of when these files are parsed, the specified options may 
62
+All of the options that can be specified on the command-line or in the
63
+main mame.ini file can be specified in the controller-specific ini files,
64
+though because of when these files are parsed, the specified options may
65
 have no effect.  The only two general options guaranteed to be supported
66
 are mouse and joystick.  Note that command-line specification of these
67
-options takes precedence.  Since most front-ends, including MAME32, 
68
+options takes precedence.  Since most front-ends, including MAME32,
69
 specify these options through the command-line, the mouse and/or joystick
70
 options specified in the .ini files will be ignored.
71
 
72
@@ -98,7 +98,7 @@
73
 
74
 ctrlrname               "name"
75
 
76
-This keyword defines a detailed name for the selected controller.  Names 
77
+This keyword defines a detailed name for the selected controller.  Names
78
 that include spaces must be enclosed in quotes.
79
 
80
 
81
@@ -107,8 +107,8 @@
82
 
83
 Keywords are separated into two categories, keycodes and input port
84
 definitions.  To specify a key re-mapping, specify the keycode as the
85
-keyword to re-define (that is, on the left-hand side) followed by the 
86
-replacement code.  To specify a sequence re-map, specify the input port 
87
+keyword to re-define (that is, on the left-hand side) followed by the
88
+replacement code.  To specify a sequence re-map, specify the input port
89
 code to be re-defined on the left followed by the sequence.
90
 
91
 In addition to the standard codes, additional OSD specific codes may be
92
@@ -131,8 +131,8 @@
93
 the first joystick (J1).  If it had been configured as a different input,
94
 the generated codes would have a different Jx number.
95
 
96
-All keyword matching including the standard keywords is case sensitive.  
97
-Also, some of the automatically generated OSD codes may be redundant. 
98
+All keyword matching including the standard keywords is case sensitive.
99
+Also, some of the automatically generated OSD codes may be redundant.
100
 For example, J1_Button_0 is the same as JOYCODE_1_BUTTON1.  Standard codes
101
 are preferred over OSD codes.
102
 
103
@@ -240,15 +240,15 @@
104
 
105
 P3_JOYSTICK_UP           P3_JOYSTICK_DOWN         P3_JOYSTICK_LEFT
106
 P3_JOYSTICK_RIGHT        P3_BUTTON1               P3_BUTTON2
107
-P3_BUTTON3               P3_BUTTON4               
108
+P3_BUTTON3               P3_BUTTON4
109
 
110
 P4_JOYSTICK_UP           P4_JOYSTICK_DOWN         P4_JOYSTICK_LEFT
111
 P4_JOYSTICK_RIGHT        P4_BUTTON1               P4_BUTTON2
112
-P4_BUTTON3               P4_BUTTON4               
113
+P4_BUTTON3               P4_BUTTON4
114
 
115
 P1_PEDAL                 P1_PEDAL_EXT             P2_PEDAL
116
 P2_PEDAL_EXT             P3_PEDAL                 P3_PEDAL_EXT
117
-P4_PEDAL                 P4_PEDAL_EXT             
118
+P4_PEDAL                 P4_PEDAL_EXT
119
 
120
 P1_PADDLE                P1_PADDLE_EXT            P2_PADDLE
121
 P2_PADDLE_EXT            P3_PADDLE                P3_PADDLE_EXT
122
@@ -266,19 +266,19 @@
123
 
124
 P1_TRACKBALL_X           P1_TRACKBALL_X_EXT       P2_TRACKBALL_X
125
 P2_TRACKBALL_X_EXT       P3_TRACKBALL_X           P3_TRACKBALL_X_EXT
126
-P4_TRACKBALL_X           P4_TRACKBALL_X_EXT       
127
+P4_TRACKBALL_X           P4_TRACKBALL_X_EXT
128
 
129
 P1_TRACKBALL_Y           P1_TRACKBALL_Y_EXT       P2_TRACKBALL_Y
130
 P2_TRACKBALL_Y_EXT       P3_TRACKBALL_Y           P3_TRACKBALL_Y_EXT
131
-P4_TRACKBALL_Y           P4_TRACKBALL_Y_EXT       
132
+P4_TRACKBALL_Y           P4_TRACKBALL_Y_EXT
133
 
134
 P1_AD_STICK_X            P1_AD_STICK_X_EXT        P2_AD_STICK_X
135
 P2_AD_STICK_X_EXT        P3_AD_STICK_X            P3_AD_STICK_X_EXT
136
-P4_AD_STICK_X            P4_AD_STICK_X_EXT        
137
+P4_AD_STICK_X            P4_AD_STICK_X_EXT
138
 
139
 P1_AD_STICK_Y            P1_AD_STICK_Y_EXT        P2_AD_STICK_Y
140
 P2_AD_STICK_Y_EXT        P3_AD_STICK_Y            P3_AD_STICK_Y_EXT
141
-P4_AD_STICK_Y            P4_AD_STICK_Y_EXT        
142
+P4_AD_STICK_Y            P4_AD_STICK_Y_EXT
143
 
144
 OSD_1                    OSD_2                    OSD_3
145
 OSD_4
146
@@ -2124,7 +2124,7 @@
147
     memcpy(inputport_defaults,inputport_defaults_digital,sizeof(inputport_defaults));
148
     memcpy(inputport_defaults_backup,inputport_defaults,sizeof(inputport_defaults));
149
   }
150
-  else 
151
+  else
152
   {
153
     memcpy(inputport_defaults,inputport_defaults_analog,sizeof(inputport_defaults));
154
     memcpy(inputport_defaults_backup,inputport_defaults_analog,sizeof(inputport_defaults));
155
@@ -2167,7 +2167,7 @@
156
    struct mixer_config mixercfg;
157
    char buf[20];
158
 
159
-   if(options.mame_remapping) 
160
+   if(options.mame_remapping)
161
        sprintf(buf,"%s",Machine->gamedrv->name);
162
    else
163
        sprintf(buf,"ra_%s",Machine->gamedrv->name);
164
@@ -2221,7 +2221,7 @@
165
        config_file *cfg;
166
        struct mixer_config mixercfg;
167
        char buf[20];
168
-       if(options.mame_remapping) 
169
+       if(options.mame_remapping)
170
            sprintf(buf,"%s",Machine->gamedrv->name);
171
        else
172
            sprintf(buf,"ra_%s",Machine->gamedrv->name);
173
@@ -2282,7 +2282,7 @@
174
 
175
 InputSeq* input_port_seq(const struct InputPort *in)
176
 {
177
-// mark change the (! 0 && ((in-1)->type & IPF_CHEAT))) to a variable name if you want to make it a core option just disable for now until you make a choice 
178
+// mark change the (! 0 && ((in-1)->type & IPF_CHEAT))) to a variable name if you want to make it a core option just disable for now until you make a choice
179
    int i,type;
180
 
181
    static InputSeq ip_none = SEQ_DEF_1(CODE_NONE);
182
@@ -2399,7 +2399,7 @@
183
    delta = 0;
184
 
185
    player = IP_GET_PLAYER(in);
186
-    
187
+
188
     /* if second player on a dial, and dial sharing turned on, use Y axis from player 1 */
189
     if (options.dial_share_xy && type == IPT_DIAL && player == 1)
190
     {
191
@@ -2463,7 +2463,10 @@
192
        int new, prev;
193
 
194
        /* center stick */
195
-       if ((delta == 0) && (in->type & IPF_CENTER))
196
+       if (delta == 0 && options.digital_analog )
197
+           current = default_value;
198
+
199
+       else if ((delta == 0) && (in->type & IPF_CENTER))
200
        {
201
libretro-mame2003-plus-0~git20200209.tar.xz/src/mame.h -> libretro-mame2003-plus-0~git20200525.tar.xz/src/mame.h Changed
56
 
1
@@ -174,7 +174,7 @@
2
   CONTENT_PADDLE,
3
   CONTENT_AD_STICK,
4
   CONTENT_HAS_SERVICE,
5
-  CONTENT_HAS_TILT,  
6
+  CONTENT_HAS_TILT,
7
   CONTENT_ALTERNATING_CTRLS,
8
   CONTENT_MIRRORED_CTRLS,
9
   CONTENT_ROTATE_JOY_45,
10
@@ -231,12 +231,12 @@
11
   int      frameskip;
12
   int      color_depth;             /* valid: 15, 16, or 32. any other value means auto */
13
   int      ui_orientation;      /* orientation of the UI relative to the video */
14
-      
15
+
16
   int      vector_width;          /* requested width for vector games; 0 means default (640) */
17
   int      vector_height;         /* requested height for vector games; 0 means default (480) */
18
   float    beam;                 /* vector beam width */
19
   int      vector_flicker;      /* vector beam flicker effect control */
20
-  float       vector_intensity_correction;   
21
+  float       vector_intensity_correction;
22
   int      translucency;          /* 1 to enable translucency on vectors */
23
   int      antialias;               /* 1 to enable antialiasing on vectors */
24
   unsigned vector_resolution_multiplier;
25
@@ -248,17 +248,18 @@
26
   char     savegame;                /* character representing a savegame to load */
27
   int      crc_only;             /* specify if only CRC should be used as checksum */
28
   bool     nvram_bootstrap;
29
-  
30
+
31
   const char *bios;                     /* specify system bios (if used), 0 is default */
32
-  
33
+
34
   bool     system_subfolder;     /* save all system files within a subfolder of the libretro system folder rather than directly in the system folder */
35
-  bool     save_subfolder;       /* save all save files within a subfolder of the libretro system folder rather than directly in the system folder */  
36
-  
37
+  bool     save_subfolder;       /* save all save files within a subfolder of the libretro system folder rather than directly in the system folder */
38
+
39
   int      debug_width;             /* requested width of debugger bitmap */
40
   int      debug_height;          /* requested height of debugger bitmap */
41
   int      debug_depth;             /* requested depth of debugger bitmap */
42
   bool     cheat_input_ports;     /*cheat input ports enable/disable */
43
-  bool     machine_timing;         
44
+  bool     machine_timing;
45
+  bool     digital_analog;
46
   };
47
 
48
 
49
@@ -389,4 +390,4 @@
50
 /* return the index of the given CPU, or -1 if not found */
51
 int mame_find_cpu_index(const char *tag);
52
 
53
-#endif
54
\ No newline at end of file
55
+#endif
56
libretro-mame2003-plus-0~git20200209.tar.xz/src/mame2003/mame2003.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/mame2003/mame2003.c Changed
201
 
1
@@ -51,7 +51,7 @@
2
 struct ipd          *default_inputs; /* pointer the array of structs with default MAME input mappings and labels */
3
 int                 running = 0;
4
 int                 control_flag=-1;
5
-int                 legacy_flag=-1;    
6
+int                 legacy_flag=-1;
7
 static struct retro_input_descriptor empty[] = { { 0 } };
8
 
9
 retro_log_printf_t                 log_cb;
10
@@ -107,6 +107,7 @@
11
   OPT_NVRAM_BOOTSTRAP,
12
   OPT_Cheat_Input_Ports,
13
   OPT_Machine_Timing,
14
+  OPT_Digital_Analog,
15
   OPT_end /* dummy last entry */
16
 };
17
 
18
@@ -221,6 +222,7 @@
19
   init_default(&default_options[OPT_CORE_SAVE_SUBFOLDER], APPNAME"_core_save_subfolder", "Locate save files within a subfolder; enabled|disabled"); /* This is already available as an option in RetroArch although it is left enabled by default as of November 2018 for consistency with past practice. At least for now.*/
20
   init_default(&default_options[OPT_Cheat_Input_Ports],   APPNAME"_cheat_input_ports",   "Dip switch/Cheat input ports; disabled|enabled");
21
   init_default(&default_options[OPT_Machine_Timing],      APPNAME"_machine_timing",      "Bypass audio skew (Restart core); enabled|disabled");
22
+  init_default(&default_options[OPT_Digital_Analog],      APPNAME"_digital_analog",      "Center joystick axis for digital controls; enabled|disabled");
23
   init_default(&default_options[OPT_end], NULL, NULL);
24
   set_variables(true);
25
 }
26
@@ -496,9 +498,9 @@
27
           {
28
             if( options.analog !=1 && control_flag !=-1) control_flag =1;
29
             options.analog = 1;
30
-            if (running && control_flag == 1) 
31
+            if (running && control_flag == 1)
32
             {
33
-              change_control_type(); 
34
+              change_control_type();
35
               control_flag =0;
36
             }
37
           }
38
@@ -506,9 +508,9 @@
39
           {
40
             if(options.analog !=0 && control_flag !=-1)  control_flag =1;
41
             options.analog = 0;
42
-            if (running && control_flag == 1) 
43
+            if (running && control_flag == 1)
44
             {
45
-              change_control_type(); 
46
+              change_control_type();
47
               control_flag =0;
48
             }
49
           }
50
@@ -528,36 +530,43 @@
51
             options.tate_mode = 0;
52
           break;
53
 
54
+        case OPT_Digital_Analog:
55
+          if(strcmp(var.value, "enabled") == 0)
56
+            options.digital_analog = 1;
57
+          else
58
+            options.digital_analog = 0;
59
+          break;
60
+
61
         case OPT_VECTOR_RESOLUTION:
62
           if(strcmp(var.value, "640x480") == 0)
63
           {
64
             options.vector_width=640;
65
-            options.vector_height=480; 
66
+            options.vector_height=480;
67
           }
68
           else if(strcmp(var.value, "1024x768") == 0)
69
           {
70
             options.vector_width=1024;
71
-            options.vector_height=768; 
72
+            options.vector_height=768;
73
           }
74
           else if(strcmp(var.value, "1280x960") == 0)
75
           {
76
             options.vector_width=1280;
77
-            options.vector_height=960; 
78
+            options.vector_height=960;
79
           }
80
           else if(strcmp(var.value, "1440x1080") == 0)
81
           {
82
             options.vector_width=1440;
83
-            options.vector_height=1080; 
84
+            options.vector_height=1080;
85
           }
86
           else if(strcmp(var.value, "1600x1200") == 0)
87
           {
88
             options.vector_width=1600;
89
-            options.vector_height=1200; 
90
+            options.vector_height=1200;
91
           }
92
-          else 
93
+          else
94
           {
95
             options.vector_width=0; // mame will set this from the driver resolution set
96
-            options.vector_height=0; 
97
+            options.vector_height=0;
98
           }
99
           break;
100
 
101
@@ -644,13 +653,13 @@
102
             options.cheat_input_ports = true;
103
           else
104
             options.cheat_input_ports = false;
105
-          break;       
106
+          break;
107
        case OPT_Machine_Timing:
108
           if(strcmp(var.value, "enabled") == 0)
109
             options.machine_timing = true;
110
           else
111
             options.machine_timing = false;
112
-          break;   
113
+          break;
114
      }
115
     }
116
   }
117
@@ -672,24 +681,24 @@
118
 
119
 void retro_get_system_av_info(struct retro_system_av_info *info)
120
 {
121
-  mame2003_video_get_geometry(&info->geometry);  
122
+  mame2003_video_get_geometry(&info->geometry);
123
   if(options.machine_timing)
124
   {
125
     if (Machine->drv->frames_per_second < 60.0 )
126
-      info->timing.fps = 60.0; 
127
-    else 
128
+      info->timing.fps = 60.0;
129
+    else
130
       info->timing.fps = Machine->drv->frames_per_second; /* qbert is 61 fps */
131
 
132
-    if ( (Machine->drv->frames_per_second * 1000 < options.samplerate) || ( Machine->drv->frames_per_second < 60) ) 
133
+    if ( (Machine->drv->frames_per_second * 1000 < options.samplerate) || ( Machine->drv->frames_per_second < 60) )
134
     {
135
       info->timing.sample_rate = Machine->drv->frames_per_second * 1000;
136
       log_cb(RETRO_LOG_INFO, LOGPRE "Sample timing rate too high for framerate required dropping to %f",  Machine->drv->frames_per_second * 1000);
137
-    }       
138
+    }
139
 
140
     else
141
     {
142
       info->timing.sample_rate = options.samplerate;
143
-      log_cb(RETRO_LOG_INFO, LOGPRE "Sample rate set to %d\n",options.samplerate); 
144
+      log_cb(RETRO_LOG_INFO, LOGPRE "Sample rate set to %d\n",options.samplerate);
145
     }
146
   }
147
 
148
@@ -700,7 +709,7 @@
149
     if ( Machine->drv->frames_per_second * 1000 < options.samplerate)
150
      info->timing.sample_rate = 22050;
151
 
152
-    else 
153
+    else
154
      info->timing.sample_rate = options.samplerate;
155
   }
156
 
157
@@ -835,7 +844,7 @@
158
          default:
159
             break;
160
          }
161
-           
162
+
163
          break;
164
        }
165
    }
166
@@ -854,7 +863,7 @@
167
 #endif
168
               {
169
                   *type=CPU_CYCLONE;
170
-                   log_cb(RETRO_LOG_INFO, LOGPRE "Replaced CPU_CYCLONE\n"); 
171
+                   log_cb(RETRO_LOG_INFO, LOGPRE "Replaced CPU_CYCLONE\n");
172
               }
173
         if(!(*type)){
174
           break;
175
@@ -873,7 +882,7 @@
176
            if (type==CPU_Z80)
177
            {
178
                *type=CPU_DRZ80;
179
-        log_cb(RETRO_LOG_INFO, LOGPRE "Replaced Z80\n"); 
180
+        log_cb(RETRO_LOG_INFO, LOGPRE "Replaced Z80\n");
181
            }
182
        }
183
    }
184
@@ -887,7 +896,7 @@
185
            if (type==CPU_Z80 && Machine->drv->cpu[i].cpu_flags&CPU_AUDIO_CPU)
186
            {
187
                *type=CPU_DRZ80;
188
-        log_cb(RETRO_LOG_INFO, LOGPRE "Replaced Z80 sound\n"); 
189
+        log_cb(RETRO_LOG_INFO, LOGPRE "Replaced Z80 sound\n");
190
 
191
            }
192
        }
193
@@ -901,9 +910,9 @@
194
   options.libretro_content_path = strdup(game->path);
195
   path_basedir(options.libretro_content_path);
196
   /*fix trailing slash in path*/
197
-  for(i = 0; options.libretro_content_path[i] != '\0'; ++i); 
198
-  if ( options.libretro_content_path[i-1] == '/' || options.libretro_content_path[i-1]  == '\\' ) 
199
-   options.libretro_content_path[i-1] =0; 
200
+  for(i = 0; options.libretro_content_path[i] != '\0'; ++i);
201
libretro-mame2003-plus-0~git20200209.tar.xz/src/sound/k051649.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/sound/k051649.c Changed
10
 
1
@@ -142,7 +142,7 @@
2
    }
3
 
4
    /* reset all the voices */
5
-   for (i=0; i>5; i++) {
6
+   for (i=0; i<5; i++) {
7
        voice[i].frequency = 0;
8
        voice[i].volume = 0;
9
        voice[i].counter = 0;
10
libretro-mame2003-plus-0~git20200209.tar.xz/src/sound/mixer.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/sound/mixer.c Changed
36
 
1
@@ -81,6 +81,7 @@
2
    int is_stream;
3
    int is_playing;
4
    int is_looping;
5
+   int is_paused;
6
    int is_16bit;
7
    void* data_start;
8
    void* data_end;
9
@@ -714,6 +715,8 @@
10
    if (samples_to_generate <= 0)
11
        return;
12
 
13
+  if ( channel->is_paused) return;
14
+
15
         /* if we're playing, mix in the data */
16
    if (channel->is_playing)
17
    {
18
@@ -931,6 +934,17 @@
19
    channel->right_volume = volume;
20
 }
21
 
22
+/***************************************************************************
23
+   mixer_set_Pause
24
+***************************************************************************/
25
+
26
+void mixer_set_pause(int ch, int pause)
27
+{
28
+   struct mixer_channel_data *channel = &mixer_channel[ch];
29
+
30
+   mixer_update_channel(channel, sound_scalebufferpos(samples_this_frame));
31
+   channel->is_paused  = pause;
32
+}
33
 
34
 /***************************************************************************
35
    mixer_set_mixing_level
36
libretro-mame2003-plus-0~git20200209.tar.xz/src/sound/mixer.h -> libretro-mame2003-plus-0~git20200525.tar.xz/src/sound/mixer.h Changed
10
 
1
@@ -115,7 +115,7 @@
2
 void mixer_save_config(struct mixer_config *config);
3
 void mixer_read_config(mame_file *f);
4
 void mixer_write_config(mame_file *f);
5
-
6
+void mixer_set_pause(int ch, int pause);
7
 void mixer_set_stereo_volume(int ch, int l_vol, int r_vol );
8
 
9
 #endif
10
libretro-mame2003-plus-0~git20200209.tar.xz/src/sound/samples.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/sound/samples.c Changed
117
 
1
@@ -1,13 +1,11 @@
2
 #include "driver.h"
3
 
4
-
5
+void readsample(struct GameSample *SampleInfo, int channel, struct GameSamples *SamplesData, int load);
6
 
7
 static int firstchannel,numchannels;
8
 int leftSampleNum;
9
 int rightSampleNum;
10
 
11
-void readsample(struct GameSample *SampleInfo, int channel, struct GameSamples *SamplesData, int load);
12
-
13
 /* Start one of the samples loaded from disk. Note: channel must be in the range */
14
 /* 0 .. Samplesinterface->channels-1. It is NOT the discrete channel to pass to */
15
 /* mixer_play_sample() */
16
@@ -18,7 +16,7 @@
17
    if (Machine->samples->sample[samplenum] == 0) return;
18
    if (channel >= numchannels)
19
    {
20
-       log_cb(RETRO_LOG_DEBUG, LOGPRE" sample_start() called with channel = %d, but only %d channels allocated\n",channel,numchannels);
21
+       log_cb(RETRO_LOG_DEBUG, LOGPRE"error: sample_start() called with channel = %d, but only %d channels allocated\n",channel,numchannels);
22
        return;
23
    }
24
    if (samplenum >= Machine->samples->total)
25
@@ -29,28 +27,29 @@
26
 
27
    if (Machine->samples->sample[samplenum] != NULL)
28
    {
29
-       if ( (Machine->samples->sample[samplenum]->b_decoded == 0) && (options.content_flags[CONTENT_ALT_SOUND]) )
30
+       if (Machine->samples->sample[samplenum]->b_decoded == 0)
31
        {
32
            // Lets decode this sample before playing it.
33
            readsample(Machine->samples->sample[samplenum], samplenum, Machine->samples, 1);
34
        }
35
 
36
-       if ( (Machine->samples->sample[samplenum]->b_decoded == 1) && (options.content_flags[CONTENT_ALT_SOUND]) )
37
+       if (Machine->samples->sample[samplenum]->b_decoded == 1)
38
        {
39
            if (channel == 0)
40
                leftSampleNum = samplenum;
41
 
42
            if (channel == 1)
43
                rightSampleNum = samplenum;
44
-       }           
45
+       }
46
+
47
        if (Machine->samples->sample[samplenum]->resolution == 8 )
48
        {
49
-               log_cb(RETRO_LOG_DEBUG, LOGPRE"play 8 bit sample %d, channel %d\n",samplenum,channel);
50
-               mixer_play_sample(firstchannel + channel,
51
-                   Machine->samples->sample[samplenum]->data,
52
-                   Machine->samples->sample[samplenum]->length,
53
-                   Machine->samples->sample[samplenum]->smpfreq,
54
-                   loop);
55
+           log_cb(RETRO_LOG_DEBUG, LOGPRE"play 8 bit sample %d, channel %d\n",samplenum,channel);
56
+           mixer_play_sample(firstchannel + channel,
57
+           Machine->samples->sample[samplenum]->data,
58
+           Machine->samples->sample[samplenum]->length,
59
+           Machine->samples->sample[samplenum]->smpfreq,
60
+           loop);
61
        }
62
        else
63
        {
64
@@ -59,9 +58,9 @@
65
            (short *) Machine->samples->sample[samplenum]->data,
66
            Machine->samples->sample[samplenum]->length,
67
            Machine->samples->sample[samplenum]->smpfreq,
68
-               loop);
69
-           
70
+           loop);
71
        }
72
+
73
    }
74
 }
75
 
76
@@ -113,7 +112,7 @@
77
        c_sample = leftSampleNum;
78
    else if (channel == 1)
79
        c_sample = rightSampleNum;
80
-       
81
+
82
    if (Machine->sample_rate == 0) return;
83
    if (channel >= numchannels)
84
    {
85
@@ -122,12 +121,11 @@
86
    }
87
 
88
    mixer_stop_sample(channel + firstchannel);
89
-
90
+   //respect samples being disabled
91
    if (!options.use_samples) return;
92
-        if ( ( channel != 0) || (channel !=1) ) return; // return normally if not matching ost channel specs
93
-
94
+   if ( ( channel != 0) || (channel !=1) ) return; // return normally if not matching ost channel specs
95
 
96
-   if ( Machine->samples->sample[c_sample] != NULL ) {
97
+   if (Machine->samples->sample[c_sample] != NULL) {
98
        if (Machine->samples->sample[c_sample]->b_decoded == 1) {
99
            // A non pre loaded sample, lets free from memory. Useful for devices with limited amount of RAM using large sample files.
100
            if (Machine->samples->sample[c_sample]->length > GAME_SAMPLE_LARGE)
101
@@ -178,3 +176,15 @@
102
    }
103
    return 0;
104
 }
105
+
106
+int sample_set_pause(int channel,int pause)
107
+{
108
+  if (Machine->sample_rate == 0) return 0;
109
+   if (channel >= numchannels)
110
+   {
111
+       log_cb(RETRO_LOG_DEBUG, LOGPRE"error: sample_pause() called with channel = %d, but only %d channels allocated\n",channel,numchannels);
112
+       return 0;
113
+   }
114
+  mixer_set_pause(channel + firstchannel, pause);
115
+  return 1;
116
+}
117
libretro-mame2003-plus-0~git20200209.tar.xz/src/sound/samples.h -> libretro-mame2003-plus-0~git20200525.tar.xz/src/sound/samples.h Changed
12
 
1
@@ -17,8 +17,9 @@
2
 void sample_set_stereo_volume(int channel,int volume_left, int volume_right);
3
 void sample_set_volume(int channel,int volume);
4
 void sample_stop(int channel);
5
-int sample_playing(int channel);
6
 
7
+int sample_set_pause(int channel,int pause);
8
+int sample_playing(int channel);
9
 int samples_sh_start(const struct MachineSound *msound);
10
 
11
 #endif
12
libretro-mame2003-plus-0~git20200209.tar.xz/src/vidhrdw/cps1_vidhrdw.c -> libretro-mame2003-plus-0~git20200525.tar.xz/src/vidhrdw/cps1_vidhrdw.c Changed
13
 
1
@@ -378,7 +378,10 @@
2
    {"pnickj",  NOBATTRY, 0,0,0, 0x0000,0xffff,0x0000,0xffff },
3
    {"pang3",   NOBATTRY, 0,0,0, 0x0000,0xffff,0x0000,0xffff, 5 },  /* EEPROM port is among the CPS registers */
4
    {"pang3j",  NOBATTRY, 0,0,0, 0x0000,0xffff,0x0000,0xffff, 5 },  /* EEPROM port is among the CPS registers */
5
-       
6
+    
7
+    /* CPS Prototype */
8
+  {"gulunpa", NOBATTRY, 0,0,0, 0x0000,0xffff,0x0000,0xffff }, /* Best guess likely incorrect */
9
+    
10
     /* CPS Changer */
11
    {"wofch",   NOBATTRY, 0,0,0, 0x0000,0xffff,0x0000,0xffff },
12
 
13