Previous 199869 Revisions Next

r18854 Monday 5th November, 2012 at 02:24:04 UTC by Brian Troha
exprraid.c: Correct regions and copyrights. - NW
[src/mame]mame.lst
[src/mame/drivers]exprraid.c

trunk/src/mame/drivers/exprraid.c
r18853r18854
17171803-1803 DSW 1
18182100-2100 Sound latch write
19192800-2801 Protection
203800-3800 VBlank ( bootleg 1 only )
203800-3800 VBlank ( bootleg 2 only )
21214000-ffff ROM
22ffc0-ffc0 VBlank ( bootleg 2 only )
22ffc0-ffc0 VBlank ( bootleg 3 only )
2323
2424Sound Cpu: ( 6809 )
25250000-1fff RAM
r18853r18854
5757
5858Stephh's notes (based on the games M6502 code and some tests) :
5959
601) 'exprraid'
601) 'exprrada'
6161
62  - "@ 1986 DATA EAST USA, INC." (US)
63  - Number of enemies on "shoot" stages is determined by the level
64    (see code at 0x5d21 where location 0x0e is level number-1).
65    Note that time tables are coded backwards (locomotive first,
66    then 5th wagon, then 4th wagon ... up to 1st wagon).
67    This number of enemies is also supposed to be determined
68    by "Difficulty" settings (DSW1 bits 3 and 4).
69    There is however an ingame bug that reads DSW1 bits 4 and 5 :
70
71      5D2F: AD 03 18      lda  $1803
72      5D32: 49 FF         eor  #$FF
73      5D34: 4A            lsr  a
74      5D35: 4A            lsr  a
75      5D36: 4A            lsr  a
76      5D37: 29 06         and  #$06
77
78    So number of enemies is also determined by "Demo Sound" setting !
79    Correct code shall be :
80
81      5D37: 29 03         and  #$03
82
83  - Time for each wagon on "shoot" stage is determined by the level
84    (see code at 0x6873 where location 0x0e is level number-1).
85    Note that time tables are coded backwards (locomotive first,
86    then 5th wagon, then 4th wagon ... up to 1st wagon).
87  - In the US manual, "bonus lives" settings are told be either
88    "Every 50000" or "50000/80000".
89    However, when you look at code at 0xe4a1, you'll notice that
90    settings shall be "50000 only" and "50000/80000".
91  - "Coin Mode" as well "Mode 2 Coinage" settings (DSW0 bits 0 to 4)
92    are undocumented in the US manual.
93    "Coin Mode" is tested though via code at 0xe7c5.
94    Coinage tables :
95      * 0xe7e2 : COIN1 - 0xe7ea : COIN2 (Mode 1)
96      * 0xe7f2 : COIN1 - 0xe7fa : COIN2 (Mode 2)
97  - "Force Coinage" (DSW1 bit 6) setting is undocumented in the US manual.
98    It is tested though via code at 0xe794.
99    When this Dip Switch is set to "On", pressing COIN1 or COIN2 always
100    adds 1 credit regardless of the "Coinage" and "Coin Mode" settings.
101  - At the beginning of each level, you have text in upper case
102    which gives you some hints to pass the level or some advice.
103  - In this version, due to extra code at 0xfd80, you only have 4 wagons
104    for the "shoot" stages instead of 5.
105  - Continue play is always available and score is NOT reset to 0.
106
1072) 'exprrada'
108
10962  - "@ 1986 DATA EAST CORPORATION" + no code to display the Warning screen (World)
110  - Same way to code number of enemies in "shoot" stages as in 'exprraid'
63  - Same way to code number of enemies in "shoot" stages as in 'exprraidu'
11164    (code at 5ce4) and same ingame bug :
11265
11366      5CF4: AD 03 18      lda  $1803
r18853r18854
12275      5CFC: 29 03         and  #$03
12376
12477    You'll notice by looking at the tables that there are sometimes
125    more enemies than in 'exprraid'.
78    more enemies than in 'exprraidu'.
12679  - Time for each wagon on "shoot" stage is determined by the level
12780    (see code at 0x6834 where location 0x0e is level number-1).
12881    This time is also supposed to be determined by "Difficulty"
r18853r18854
158111  - In this version, you always have 5 wagons for the "shoot" stages.
159112  - Continue play is always available but score is reset to 0.
160113
1613) 'wexpressb'
1142) 'exprraidu'
162115
116  - "@ 1986 DATA EAST USA, INC." (US)
117  - Number of enemies on "shoot" stages is determined by the level
118    (see code at 0x5d21 where location 0x0e is level number-1).
119    Note that time tables are coded backwards (locomotive first,
120    then 5th wagon, then 4th wagon ... up to 1st wagon).
121    This number of enemies is also supposed to be determined
122    by "Difficulty" settings (DSW1 bits 3 and 4).
123    There is however an ingame bug that reads DSW1 bits 4 and 5 :
124
125      5D2F: AD 03 18      lda  $1803
126      5D32: 49 FF         eor  #$FF
127      5D34: 4A            lsr  a
128      5D35: 4A            lsr  a
129      5D36: 4A            lsr  a
130      5D37: 29 06         and  #$06
131
132    So number of enemies is also determined by "Demo Sound" setting !
133    Correct code shall be :
134
135      5D37: 29 03         and  #$03
136
137  - Time for each wagon on "shoot" stage is determined by the level
138    (see code at 0x6873 where location 0x0e is level number-1).
139    Note that time tables are coded backwards (locomotive first,
140    then 5th wagon, then 4th wagon ... up to 1st wagon).
141  - In the US manual, "bonus lives" settings are told be either
142    "Every 50000" or "50000/80000".
143    However, when you look at code at 0xe4a1, you'll notice that
144    settings shall be "50000 only" and "50000/80000".
145  - "Coin Mode" as well "Mode 2 Coinage" settings (DSW0 bits 0 to 4)
146    are undocumented in the US manual.
147    "Coin Mode" is tested though via code at 0xe7c5.
148    Coinage tables :
149      * 0xe7e2 : COIN1 - 0xe7ea : COIN2 (Mode 1)
150      * 0xe7f2 : COIN1 - 0xe7fa : COIN2 (Mode 2)
151  - "Force Coinage" (DSW1 bit 6) setting is undocumented in the US manual.
152    It is tested though via code at 0xe794.
153    When this Dip Switch is set to "On", pressing COIN1 or COIN2 always
154    adds 1 credit regardless of the "Coinage" and "Coin Mode" settings.
155  - At the beginning of each level, you have text in upper case
156    which gives you some hints to pass the level or some advice.
157  - In this version, due to extra code at 0xfd80, you only have 4 wagons
158    for the "shoot" stages instead of 5.
159  - Continue play is always available and score is NOT reset to 0.
160
1613) 'wexpressb1'
162
163163  - "@ 1986 DATA EAST CORPORATION" + no code to display the Warning screen (World)
164164  - This version is based on 'exprrada' so all comments also fit
165165    for this set. The main difference is that reads from 0x2800
r18853r18854
172172
173173  - "@ 1986 DATA EAST CORPORATION" + extra code to display the Warning screen (Japan)
174174  - Modified Warning screen
175  - This version is heavily based on 'exprrada' (even if I think
175  - This version is heavily based on 'exprrad' (even if I think
176176    that there shall exist a "better" Japan undumped version)
177177    so all comments also fit for this set. The main difference is
178    the way protection is bypassed (in a different way than 'wexpress'
178    the way protection is bypassed (in a different way than 'wexpressb1'
179179    as reads from 0x2801 only occur when a life is lost).
180180    The other difference is that you can NOT continue a game.
181181  - "Bonus lives" routine starts at 0xe4e5.
r18853r18854
189189  - "@ 1986 DATA EAST CORPORATION" + extra code to display the Warning screen (Japan)
190190  - Original Warning screen
191191  - "CREDIT" misspelled to "CRDDIT".
192  - This version is heavily based on 'exprrada' (even if I think
192  - This version is heavily based on 'exprrad' (even if I think
193193    that there shall exist a "better" Japan undumped version)
194194    so all comments also fit for this set. The main difference is
195    the way protection is bypassed (in a different way than 'wexpress'
196    but also in a different way than 'wexpressb' as reads from 0x2801
195    the way protection is bypassed (in a different way than 'wexpressb1'
196    but also in a different way than 'wexpressb2' as reads from 0x2801
197197    occur when you lose a life but also on "shoot" stages).
198    The other difference is that you can NOT continue a game as in 'wexpressb'.
199  - "Bonus lives" routine starts at 0xe4e5 (same as 'wexpressb')
200  - Coinage related stuff starts at 0xe7d8 (same as 'wexpressb').
198    The other difference is that you can NOT continue a game as in 'wexpressb2'.
199  - "Bonus lives" routine starts at 0xe4e5 (same as 'wexpressb2')
200  - Coinage related stuff starts at 0xe7d8 (same as 'wexpressb2').
201201  - Coinage tables (same as 'wexpressb') :
202202      * 0xe826 : COIN1 - 0xe82e : COIN2 (Mode 1)
203203      * 0xe836 : COIN1 - 0xe83e : COIN2 (Mode 2)
r18853r18854
535535
536536ROM_START( exprraid )
537537   ROM_REGION( 0x10000, "maincpu", 0 )
538   ROM_LOAD( "cz01-5a.16b", 0x4000, 0x4000, CRC(dc8f9fba) SHA1(cae6af54fc0081d606b6884e8873aed356a37ba9) )
539   ROM_LOAD( "cz00-5.15a",  0x8000, 0x8000, CRC(a81290bc) SHA1(ddb0acda6124427bee691f9926c41fda27ed816e) )
538   ROM_LOAD( "cz01-2e.16b", 0x4000, 0x4000, CRC(a0ae6756) SHA1(7f7ec1efddbb62e9d201c6013bca8ab72c3f75f6) )
539   ROM_LOAD( "cz00-4e.15a", 0x8000, 0x8000, CRC(910f6ccc) SHA1(1dbf164a7add9335d90ee07b6db9a162a28e407b) )
540540
541541   ROM_REGION( 0x10000, "slave", 0 )   /* 64k for the sub cpu */
542542   ROM_LOAD( "cz02-1.2a", 0x8000, 0x8000, CRC(552e6112) SHA1(f8412a63cab0aa47321d602f69bf534426c6aa5d) )
r18853r18854
572572   ROM_LOAD( "pal16r4a.5e", 0x0200, 0x0104, CRC(9a8766a7) SHA1(5f84ad9e633daeb14531ef527827ef3d9b269437) )
573573ROM_END
574574
575ROM_START( exprraida )
575ROM_START( exprraidu )
576576   ROM_REGION( 0x10000, "maincpu", 0 )
577   ROM_LOAD( "cz01-2e.16b", 0x4000, 0x4000, CRC(a0ae6756) SHA1(7f7ec1efddbb62e9d201c6013bca8ab72c3f75f6) )
578   ROM_LOAD( "cz00-4e.15a", 0x8000, 0x8000, CRC(910f6ccc) SHA1(1dbf164a7add9335d90ee07b6db9a162a28e407b) )
577   ROM_LOAD( "cz01-5a.16b", 0x4000, 0x4000, CRC(dc8f9fba) SHA1(cae6af54fc0081d606b6884e8873aed356a37ba9) )
578   ROM_LOAD( "cz00-5.15a",  0x8000, 0x8000, CRC(a81290bc) SHA1(ddb0acda6124427bee691f9926c41fda27ed816e) )
579579
580580   ROM_REGION( 0x10000, "slave", 0 )   /* 64k for the sub cpu */
581581   ROM_LOAD( "cz02-1.2a", 0x8000, 0x8000, CRC(552e6112) SHA1(f8412a63cab0aa47321d602f69bf534426c6aa5d) )
r18853r18854
855855}
856856
857857
858GAME( 1986, exprraid,  0,        exprraid, exprraid, exprraid_state, exprraid,  ROT0, "Data East USA",         "Express Raider (US, rev 5)",      GAME_SUPPORTS_SAVE )
859GAME( 1986, exprraida, exprraid, exprraid, exprraid, exprraid_state, exprraid,  ROT0, "Data East USA",         "Express Raider (US, rev 4)",      GAME_SUPPORTS_SAVE )
858GAME( 1986, exprraid,  0,        exprraid, exprraid, exprraid_state, exprraid,  ROT0, "Data East Corporation", "Express Raider (World, Rev 4)",   GAME_SUPPORTS_SAVE )
859GAME( 1986, exprraidu, exprraid, exprraid, exprraid, exprraid_state, exprraid,  ROT0, "Data East USA",         "Express Raider (US, rev 5)",      GAME_SUPPORTS_SAVE )
860860GAME( 1986, exprraidi, exprraid, exprraid, exprraid, exprraid_state, exprraid,  ROT0, "Data East Corporation", "Express Raider (Italy)",          GAME_SUPPORTS_SAVE )
861861GAME( 1986, wexpress,  exprraid, exprraid, exprraid, exprraid_state, exprraid,  ROT0, "Data East Corporation", "Western Express (Japan, rev 4)",  GAME_SUPPORTS_SAVE )
862862GAME( 1986, wexpressb1,exprraid, exprraid, exprraid, exprraid_state, wexpressb, ROT0, "bootleg",               "Western Express (bootleg set 1)", GAME_SUPPORTS_SAVE )
trunk/src/mame/mame.lst
r18853r18854
54265426sidepckt      // (c) 1986 Data East Corporation
54275427sidepcktj      // (c) 1986 Data East Corporation
54285428sidepcktb      // bootleg
5429exprraid      // (c) 1986 Data East USA (US)
5430exprraida      // (c) 1986 Data East USA (US)
5429exprraid      // (c) 1986 Data East Corporation
5430exprraidu      // (c) 1986 Data East USA (US)
54315431exprraidi      // (c) 1986 Data East Corporation PCB manufactured by Gecas under license
54325432wexpress      // (c) 1986 Data East Corporation
54335433wexpressb1      // bootleg

Previous 199869 Revisions Next


© 1997-2024 The MAME Team