Quite Quiet on the 7800 forum lately. TIME4ACTION!!!
BAM!BAM!BAM!
BAM!
BAM! BLUE AZURE MONDAY BAM!
BAM!
BAM!BAM!BAM!BAM!
Now we have XEVIOUS, one of my 3 favorite original shooters on the 7800. The original XEVIOUS arcade game was designed by Masanobu Endo and released by Namco in 1982 and runs on the Namco Galaga hardware. Got PROMs? You can run either on one machine. On the 7800, this was probably my second favorite, based on the scale of difficulty from GALAGA-XEVIOUS-ROBOTRON.
XEVIOUS DISASSEMBLY
This iteration of the XEVIOUS game disassembly is now complete. The source listing was fairly complete, but there were significant omissions/changes in the 4K bytes of address $D000. In the case of omissions, the raw binary data is shown for future review/improvements of the current disassembly. The differences between the source list and released binary are shown in red text. The bulk is fairly well-documented so this greatly enhances the understanding of the game.
In the history of the 7800 XEVIOUS, there have been a few versions of the game. The game was conceived in 1983 and continued in 1984, and finally released in 1986, with an enhanced Star Wars version provided by Gambler172 in ca.2007. The title screens look like this.
1984 XEVIOUS TITLE SCREEN
1986 XEVIOUS TITLE SCREEN
2007 STARWARS TITLE SCREEN
1982 XEVIOUS ARCADE TITLE SCREEN
Here is a gameplay example of the original XEVIOUS arcade version to view audio & video comparisons. The arcade version WINS. Need to pokeyize our 7800 XEVIOUS, and the explosions are much more graphic on the arcade version.
http://vvvvvv.youtub...h?v=Jlq360e3bdI
Now back to the real world...
XEVIOUS INVINCIBILITY
In future mods we will need an easy way to view/test our XEVIOUS upgrades, and to do this we will need invincibility. The routine that processes a detected hit of the Solvalou (YOU) is as shown below. To bypass this we simply add a jump at the beginning of the BOOM! (HIT) routine and this bypasses the result of the collision detection, hence rendering you invincible. At first it's exciting to get the furthest you've ever been in the game. Then it gets relatively boring - so I increased the difficulty. This game is still chock full of opportunities to enhance the game.
HIT:
A12C A9 0C-----LDA #XPLOTUNE
A12E 20 25 B8--JSR TUNIN
A131 A9 D4-----LDA #L(C3BLANK)
A133 8D 3C 19--STA ELTYPE+1 ;DELETE SIGHT
A136 A9 35-----LDA #$35
A138 8D 07 21--STA DETHWAIT
A13B A9 01-----LDA #$01
A13D 8D 08 21--STA SOLVSTAT
A140 A0 00-----LDY #$00
A142 20 51 A9--JSR FLFNO2
A145 A9 06-----LDA #$06
A147 8D 6F 19--STA ELANIMT
A14A A9 3E-----LDA #ASKNOLY0 ;ACSOLDED-ACTIONRL
A14C 8D 89 19--STA ELSTATE
A14F A9 0F-----LDA #$0F
A151 8D BD 19--STA ELWAIT
BOOMRTS:
A154 60--------RTS
NTSC STAR WARS (XEVIOUS clone)
At address $A64F, change $A9$0C$20 TO $4C$77$A6 to bypass dying.
NTSC XEVIOUS
At address $A12C, change $A9$0C$20 TO $4C$54$A1 to bypass dying.
PAL XEVIOUS
At address $A12B, change $A9$0C$20 TO $4C$53$A1 to bypass dying.
START-UP LIVES & BONUS LIVES
A00C A9 20-----LDA #$20 ;EXTRA MAN AT 20,000
A00E 8D 6D 1A--STA XTRASOLV
A011 8D 63 1A--STA XTRASOLV-NMPLVARS
A014 A9 04-----LDA #$04 ;GAME BEGINS WITH 4 SPARE LIVES.
A016 8D 6E 1A--STA NUMLIVES
I am changing the game to start with zero (0) extra lives and initial bonus at 8,000 points.
NTSC STAR WARS
At address $A52F, change $A9$20 to $A9$08 for an 'extra man' at 8,000.
At address $A537, change $A9$04 to $A9$00 to start with zero (0) extra lives.
NTSC XEVIOUS
At address $A00C, change $A9$20 to $A9$08 for an 'extra man' at 8,000.
At address $A014, change $A9$04 to $A9$00 to start with zero (0) extra lives.
PAL XEVIOUS
At address $A00B, change $A9$20 to $A9$08 for an 'extra man' at 8,000.
At address $A013, change $A9$04 to $A9$00 to start with zero (0) extra lives.
There is some math around address $A274 thru $A29B to delay extra lives more and more as time progresses. To disable this, at address $A297 change $69$20 to $EA$EA (no ops). This was NOT done in the game samples attached below. This way you have to play-on for a longer time to achieve the maximum of 9 extra lives displayed. If you do make this change yourself, you will gain an extra life at every 20,000 lives (or every 8,000 or whatever you choose).
A274 90 26-----BCC ZNOXTRA
A276 EE 6E 1A--INC NUMLIVES
A279 A9 0B-----LDA #XTRATUNE
A27B 20 25 B8--JSR TUNIN
A27E AD 6C 1A--LDA PMOD0+1
A281 38--------SEC
A282 ED 6D 1A--SBC XTRASOLV
A285 8D 6C 1A--STA PMOD0+1
A288 AD 6B 1A--LDA PMOD0
A28B E9 00-----SBC #$00
A28D 8D 6B 1A--STA PMOD0
A290 AD 6D 1A--LDA XTRASOLV ;ADJUST THRESHOLD
A293 C9 60-----CMP #$60 ; (MAXIMUM EVERY 60,000 POINTS)
A295 B0 05-----BCS ZNOXTRA
A297 69 20-----ADC #$20 ; MAKE IT 20,000 HARDER FOR EACH XTRA
A299 8D 6D 1A--STA XTRASOLV
DIFFICULTY SETTINGS
ONEMONE:
----------------;.BYTE -7,-6,-6,-6,-6,-6,-6,-5 ;EASIEST DIFFICULTY LEVEL
D0B5------------.BYTE $F9,$FA,$FA,$FA,$FA,$FA,$FA,$FB
D0BD------------.BYTE $FA,$FB,$FB,$FB,$FB,$FB,$FB,$FC
D0C5------------.BYTE $FB,$FC,$FC,$FC,$FC,$FC,$FC,$FD
D0CD------------.BYTE $FC,$FD,$FD,$FD,$FD,$FD,$FD,$FE
D0D5------------.BYTE $FD,$FE,$FE,$FE,$FE,$FE,$FE,$FF
D0DD------------.BYTE $FE,$FF,$FF,$FF,$FF,$FF,$FF,$00
----------------;.BYTE -1,0,0,0,0,0,0,1 ;HARDEST DIFFICULTY LEVEL
D0E5------------.BYTE $FF,$00,$00,$00,$00,$00,$00,$01
Changed this to:
----------------;.BYTE 0F,0F,0F,0F,0F,0F,0F,0F ;EASIEST DIFFICULTY LEVEL
D0B5------------.BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F (Novice start)
D0BD------------.BYTE $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F
D0C5------------.BYTE $2F,$2F,$2F,$2F,$2F,$2F,$2F,$2F (Intermediate start)
D0CD------------.BYTE $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F
D0D5------------.BYTE $4F,$4F,$4F,$4F,$4F,$4F,$4F,$4F (Advanced start)
D0DD------------.BYTE $5F,$5F,$5F,$5F,$5F,$5F,$5F,$5F
----------------;.BYTE 6F,6F,6F,6F,6F,6F,6F,6F ;HARDEST DIFFICULTY LEVEL
D0E5------------.BYTE $6F,$6F,$6F,$6F,$6F,$6F,$6F,$6F (Expert start)
NTSC XEVIOUS $D0B5-$D0EC
PAL XEVIOUS $D0B5-$D0EC
NTSC STAR WARS $D0CB-$D102
(TRY THE ADVANCED LEVEL, I HAVE SET THIS UP FOR DIFFICULTY '4F' - IMAGINE TRYING TO PLAY THIS IN THE NON-INVINCIBLE MODE!)
*** GAME GOODIES ***
NTSC STAR WARS X
NTSC XEVIOUS X
PAL XEVIOUS X
XEVIOUS_X_PAL_B9D1.bin 48K
9 downloads
Xevious_X_PAL_48K.a78 48.13K
9 downloads
>>> GAME ON >>>
NEXT UP> JOUST disassembly. Unfortunately, we don't have the 7800 version source list, only the 2600 source list. No one has the 7800 JOUST version? So I will repeat what I did on the 7800 Pole Position 2. A raw disassembly, fully un-commented. Perhaps the 2600 version has some of the logic used in the 7800 version. I don't know. Then finally the last of the original ten - FOOD FIGHT. I haven't released ASTEROIDS 3D or DIG DUG disassemblies yet. The sample games aren't ready. \\\ BLUEman ///
BAM!BAM!BAM!
BAM!
BAM! BLUE AZURE MONDAY BAM!
BAM!
BAM!BAM!BAM!BAM!
Now we have XEVIOUS, one of my 3 favorite original shooters on the 7800. The original XEVIOUS arcade game was designed by Masanobu Endo and released by Namco in 1982 and runs on the Namco Galaga hardware. Got PROMs? You can run either on one machine. On the 7800, this was probably my second favorite, based on the scale of difficulty from GALAGA-XEVIOUS-ROBOTRON.
XEVIOUS DISASSEMBLY
This iteration of the XEVIOUS game disassembly is now complete. The source listing was fairly complete, but there were significant omissions/changes in the 4K bytes of address $D000. In the case of omissions, the raw binary data is shown for future review/improvements of the current disassembly. The differences between the source list and released binary are shown in red text. The bulk is fairly well-documented so this greatly enhances the understanding of the game.
In the history of the 7800 XEVIOUS, there have been a few versions of the game. The game was conceived in 1983 and continued in 1984, and finally released in 1986, with an enhanced Star Wars version provided by Gambler172 in ca.2007. The title screens look like this.
1984 XEVIOUS TITLE SCREEN
1986 XEVIOUS TITLE SCREEN
2007 STARWARS TITLE SCREEN
1982 XEVIOUS ARCADE TITLE SCREEN

Here is a gameplay example of the original XEVIOUS arcade version to view audio & video comparisons. The arcade version WINS. Need to pokeyize our 7800 XEVIOUS, and the explosions are much more graphic on the arcade version.
http://vvvvvv.youtub...h?v=Jlq360e3bdI
Now back to the real world...
XEVIOUS INVINCIBILITY
In future mods we will need an easy way to view/test our XEVIOUS upgrades, and to do this we will need invincibility. The routine that processes a detected hit of the Solvalou (YOU) is as shown below. To bypass this we simply add a jump at the beginning of the BOOM! (HIT) routine and this bypasses the result of the collision detection, hence rendering you invincible. At first it's exciting to get the furthest you've ever been in the game. Then it gets relatively boring - so I increased the difficulty. This game is still chock full of opportunities to enhance the game.
HIT:
A12C A9 0C-----LDA #XPLOTUNE
A12E 20 25 B8--JSR TUNIN
A131 A9 D4-----LDA #L(C3BLANK)
A133 8D 3C 19--STA ELTYPE+1 ;DELETE SIGHT
A136 A9 35-----LDA #$35
A138 8D 07 21--STA DETHWAIT
A13B A9 01-----LDA #$01
A13D 8D 08 21--STA SOLVSTAT
A140 A0 00-----LDY #$00
A142 20 51 A9--JSR FLFNO2
A145 A9 06-----LDA #$06
A147 8D 6F 19--STA ELANIMT
A14A A9 3E-----LDA #ASKNOLY0 ;ACSOLDED-ACTIONRL
A14C 8D 89 19--STA ELSTATE
A14F A9 0F-----LDA #$0F
A151 8D BD 19--STA ELWAIT
BOOMRTS:
A154 60--------RTS
NTSC STAR WARS (XEVIOUS clone)
At address $A64F, change $A9$0C$20 TO $4C$77$A6 to bypass dying.
NTSC XEVIOUS
At address $A12C, change $A9$0C$20 TO $4C$54$A1 to bypass dying.
PAL XEVIOUS
At address $A12B, change $A9$0C$20 TO $4C$53$A1 to bypass dying.
START-UP LIVES & BONUS LIVES
A00C A9 20-----LDA #$20 ;EXTRA MAN AT 20,000
A00E 8D 6D 1A--STA XTRASOLV
A011 8D 63 1A--STA XTRASOLV-NMPLVARS
A014 A9 04-----LDA #$04 ;GAME BEGINS WITH 4 SPARE LIVES.
A016 8D 6E 1A--STA NUMLIVES
I am changing the game to start with zero (0) extra lives and initial bonus at 8,000 points.
NTSC STAR WARS
At address $A52F, change $A9$20 to $A9$08 for an 'extra man' at 8,000.
At address $A537, change $A9$04 to $A9$00 to start with zero (0) extra lives.
NTSC XEVIOUS
At address $A00C, change $A9$20 to $A9$08 for an 'extra man' at 8,000.
At address $A014, change $A9$04 to $A9$00 to start with zero (0) extra lives.
PAL XEVIOUS
At address $A00B, change $A9$20 to $A9$08 for an 'extra man' at 8,000.
At address $A013, change $A9$04 to $A9$00 to start with zero (0) extra lives.
There is some math around address $A274 thru $A29B to delay extra lives more and more as time progresses. To disable this, at address $A297 change $69$20 to $EA$EA (no ops). This was NOT done in the game samples attached below. This way you have to play-on for a longer time to achieve the maximum of 9 extra lives displayed. If you do make this change yourself, you will gain an extra life at every 20,000 lives (or every 8,000 or whatever you choose).
A274 90 26-----BCC ZNOXTRA
A276 EE 6E 1A--INC NUMLIVES
A279 A9 0B-----LDA #XTRATUNE
A27B 20 25 B8--JSR TUNIN
A27E AD 6C 1A--LDA PMOD0+1
A281 38--------SEC
A282 ED 6D 1A--SBC XTRASOLV
A285 8D 6C 1A--STA PMOD0+1
A288 AD 6B 1A--LDA PMOD0
A28B E9 00-----SBC #$00
A28D 8D 6B 1A--STA PMOD0
A290 AD 6D 1A--LDA XTRASOLV ;ADJUST THRESHOLD
A293 C9 60-----CMP #$60 ; (MAXIMUM EVERY 60,000 POINTS)
A295 B0 05-----BCS ZNOXTRA
A297 69 20-----ADC #$20 ; MAKE IT 20,000 HARDER FOR EACH XTRA
A299 8D 6D 1A--STA XTRASOLV
DIFFICULTY SETTINGS
ONEMONE:
----------------;.BYTE -7,-6,-6,-6,-6,-6,-6,-5 ;EASIEST DIFFICULTY LEVEL
D0B5------------.BYTE $F9,$FA,$FA,$FA,$FA,$FA,$FA,$FB
D0BD------------.BYTE $FA,$FB,$FB,$FB,$FB,$FB,$FB,$FC
D0C5------------.BYTE $FB,$FC,$FC,$FC,$FC,$FC,$FC,$FD
D0CD------------.BYTE $FC,$FD,$FD,$FD,$FD,$FD,$FD,$FE
D0D5------------.BYTE $FD,$FE,$FE,$FE,$FE,$FE,$FE,$FF
D0DD------------.BYTE $FE,$FF,$FF,$FF,$FF,$FF,$FF,$00
----------------;.BYTE -1,0,0,0,0,0,0,1 ;HARDEST DIFFICULTY LEVEL
D0E5------------.BYTE $FF,$00,$00,$00,$00,$00,$00,$01
Changed this to:
----------------;.BYTE 0F,0F,0F,0F,0F,0F,0F,0F ;EASIEST DIFFICULTY LEVEL
D0B5------------.BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F (Novice start)
D0BD------------.BYTE $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F
D0C5------------.BYTE $2F,$2F,$2F,$2F,$2F,$2F,$2F,$2F (Intermediate start)
D0CD------------.BYTE $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F
D0D5------------.BYTE $4F,$4F,$4F,$4F,$4F,$4F,$4F,$4F (Advanced start)
D0DD------------.BYTE $5F,$5F,$5F,$5F,$5F,$5F,$5F,$5F
----------------;.BYTE 6F,6F,6F,6F,6F,6F,6F,6F ;HARDEST DIFFICULTY LEVEL
D0E5------------.BYTE $6F,$6F,$6F,$6F,$6F,$6F,$6F,$6F (Expert start)
NTSC XEVIOUS $D0B5-$D0EC
PAL XEVIOUS $D0B5-$D0EC
NTSC STAR WARS $D0CB-$D102
(TRY THE ADVANCED LEVEL, I HAVE SET THIS UP FOR DIFFICULTY '4F' - IMAGINE TRYING TO PLAY THIS IN THE NON-INVINCIBLE MODE!)
*** GAME GOODIES ***
NTSC STAR WARS X
NTSC XEVIOUS X
PAL XEVIOUS X


>>> GAME ON >>>
NEXT UP> JOUST disassembly. Unfortunately, we don't have the 7800 version source list, only the 2600 source list. No one has the 7800 JOUST version? So I will repeat what I did on the 7800 Pole Position 2. A raw disassembly, fully un-commented. Perhaps the 2600 version has some of the logic used in the 7800 version. I don't know. Then finally the last of the original ten - FOOD FIGHT. I haven't released ASTEROIDS 3D or DIG DUG disassemblies yet. The sample games aren't ready. \\\ BLUEman ///