Blue Azure Posted January 21, 2013 Share Posted January 21, 2013 BAM!BAM!BAM! BAM! BAM! BLUE AZURE MONDAY BAM! BAM! BAM!BAM!BAM!BAM! GALAGA is next in the series of about 10 originals on the Atari 7800. It was a huge hit when it burst into arcades in 1981. It was a sequel to 1979's GALAXIAN, which also spawned several sequels of its own, is an intense space shooter. In 1984 this was to be the 7800's answer to the 5200's GALAXIAN. DISASSEMBLY NOTES (true for all disassemblies)… Thus far, not a single Atari 7800 .asm file has matched the corresponding released binary 100%. This isn't a surprise, nor a bad reflection of the engineers involved. We know there was a gap between the original designs of ca.1983-1984 and the eventual release of ca.1986. This was a period of unknown potential design changes at Atari, and the changes aren't documented as far as we know. The carts were released and they work, as they work. The original cart designs have been frozen for decades, never-ever reviewed in detail as they are now. To locate the differences between the released source list and the released binary, simply open the disassembly .rtf file and do a text search for "source" (without the quotes) and you'll see red text highlighting the differences. The green text is program comments and disassembly comments are in black. It's that simple. And whenever I see a typo error I clean those up as well. "Missle" should be spelled Missile, and now it is. GALAGA Disassembly… GalagaDisassembly6.rtf (CAUTION: This is over 200 pages). DEVELOPMENT OF GALAGA-14… GALAGA was another fave of mine in the late 1980s. At first I was avoiding the macro-beams deployed by the Galagan Flagships, only to find out this is the way to get dual ships, but you have to follow the instructions (see the user's manual). Before developing my custom GALAGA game, I was thinking of naming my custom game GALAGAGA, but then I thought of Lady Gaga, which immediately changed my mind. To retain the look & feel of the original GALAGA game, I tended avoid creating invincibility for this game. Results of testing the changing of the start # of lives count with the ProSystem Emulator 1.3 (and confirmed on the 7800 hardware): If the game starts with over 36 (24 hex) lives, the game crashes. If the game starts with over 20 (14 hex) lives, the game won't display the level number. The game will display up to 14 (0E hex) ships, so that's what we start with. This way, at the first death you will see a ship lost. Hence the name GALAGA-14. At first it may be disconcerning to see all these ships along the bottom, but this means more lives and more game time to achieve higher levels. Without more modification, no 99 lives or invincibility is immediately available. The game does offer some amazing opportunities for modifications I hope to build later, when more time is available. HOW IT WAS DONE... Looking at the disassembled code: ATITOUT: 8290 A9 04 LDA #$04 8292 85 B1 STA LIVES 8294 AE 23 27 LDX TWOPLAYR 8297 F0 02 BEQ ZILOUT 8299 85 B2 STA LIVES+1 Change amount of lives at $8290 (EPROM $0290) from $A9$04 to $A9$0E (NTSC). Change amount of lives at $82B6 (EPROM $02B6) from $A9$04 to $A9$0E (PAL). NTSC GALAGA-14 GALAGA14_NTSC_B47B.bin Galaga14_NTSC_32K.a78 PAL GALAGA-14 GALAGA14_PAL_781D.bin Galaga14_PAL_48K.a78 ENJOY THE GAME! NEXT UP> MS. PACMAN due out January 28th. Yes, another Monday. Two great sample games to be had with this release of the disassembly! Then vacation and then eventually the ROBOTRON disassembly re-hash, due to the popular conversion-to-PAL demand. 1 Quote Link to comment Share on other sites More sharing options...
gambler172 Posted January 22, 2013 Share Posted January 22, 2013 Hi Blue great work i wish i could read a source,like you greetings Walter Quote Link to comment Share on other sites More sharing options...
Stun Runner 87 Posted January 22, 2013 Share Posted January 22, 2013 Galaga Is probably my favorite arcade game of ALL TIME. I never get sick of its addictive gameplay. 1 Quote Link to comment Share on other sites More sharing options...
gorfcadet Posted January 22, 2013 Share Posted January 22, 2013 Very cool. Annotated code is always a helpful learning tool. I annotate literature with my students a lot and it helps. I'll poke through it later on my comp for some light bedtime reading. Quote Link to comment Share on other sites More sharing options...
gorfcadet Posted January 22, 2013 Share Posted January 22, 2013 MISCNT11 DS 2 ;HOLDS THE # OF SHOTS FIRED PLAYER1 MISCNT12 DS 2 ;HOLDS THE # OF SHOTS FIRED PLAYER2 MISCNT21 DS 3 ;HOLDS THE # OF HITS FOR PLAYER1 MISCNT22 DS 3 ;HOLDS THE # OF HITS FOR PLAYER2 RATIO DS 3 ;HOLDS THE RESULT OF 100 * MISCNT2 Should this line end with MISCNT21 or 22? METAREG DS 1 ;TELLS IF TIME FOR META ATTEMPT METACNT DS 1 ;KEEPS TRACK OF META BIRTHS CAPQUAN DS 1 ;CAPTURE QUANDARY QUESTION LOOPCNT DS 1 ;COUNTER IN BIRTH ROUTINE MISTIMER DS 1 ;TIME BETWEEN HERO MISSILES So this line be modified to speed up your shots or the number of on screen shots? Quote Link to comment Share on other sites More sharing options...
Jinks Posted January 23, 2013 Share Posted January 23, 2013 Speeding up the shots would be awesome its too slow.. Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted January 29, 2013 Author Share Posted January 29, 2013 Sorry for the delay. I'm working full-bore on ripping ROBOTRON right now and may be for a while, what an amazing game this will be. On GALAGA, as gorfcadet mentions, the original source list appears to show a typo error "RATIO DS 3 ;HOLDS THE RESULT OF 100 * MISCNT2" which was cloned by my disassy. I don't know what is right, but I could phone the original programmer and ask him. Yeah, right. (Holy batwing gorfcadet you actually found that!) The original source list is here: PALGRPHA.S True, it appears the shooting delay is controlled by the missile timer MISTIMER. I will see if I have time tonight to take a break on ROBOTRON to try some simple mods on GALAGA. If successful, and of course I will be, I'll report tomorrow. CODE BLUE - out Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted January 30, 2013 Author Share Posted January 30, 2013 Traced the origin of the 1st shot at $80C6, "Look at the fire button" and then jump to GOTORES and at $826D changed from $A9$20 to $A9$00. There are other program delays for the second shot, but speeding that up only bunches up the shots and I don't think that helps anybody. If they're staggered then you have a better chance to shoot everything. The change doesn't appear to make that much difference, but you can decide for yourself. GOTORES: ;CALL GALAGA TUNE HERE 8260 20 D1 D3----JSR SCRAPALL 8263 A9 00--------LDA #$00 8265 20 04 D4----JSR TUNIN 8268 A9 01--------LDA #$01 826A 20 04 D4----JSR TUNIN 826D A9 20--------LDA #$20 ;PREVENT SHOT FIRE 826F 85 A9--------STA MISTIMER 8271 A9 00--------LDA #$00 8273 85 B0--------STA AUTOPLAY ;CLEAR AUTOPLAY MODE 8275 8D 20 27----STA SELECT ;CLEAR SELECT MODE 8278 20 7D 82----JSR CLRSCORE 827B 30 13--------BMI ATITOUT ;CLRSCORE RETURNS MINUS Changed $826D from $A9$20 to $A9$00. NTSC GALAGA-F14 (F = faster fire) GALAGA_F14_NTSC_B45B.bin Galaga_F14_NTSC_32K.a78 While rummaging around GALAGA, I cooked up another version. This one starts with 2 lives, but when you die you don't lose a life, you gain a life. Oops. It's a single instruction change, and now you can play forever. There are also 14 lives maximum (displayed) on this one. ATITOUT: 8290 A9 04--------LDA #$04 8292 85 B1--------STA LIVES 8294 AE 23 27----LDX TWOPLAYR 8297 F0 02--------BEQ ZILOUT 8299 85 B2--------STA LIVES+1 Changed $8290 from $A9$04 to $A9$02. DECLIVE1: 94D2 A6 AE--------LDX PLAYER 94D4 D6 B1--------DEC LIVES,X ;DEC LIVES OF CURRENT PLAYER 94D6 D0 1F--------BNE ZDLOUT 94D8 A5 B1--------LDA LIVES ;GET LIVES OF PLAYER 1 94DA 05 B2--------ORA LIVES+1 ;SEE IF BOTH ARE OVER 94DC F0 16--------BEQ ZZLOVER ;RESTART GAME PLAY 94DE 8C 50 27----STY TTEMP ;SAVE Y VALUE 94E1 A9 4F--------LDA #$4F 94E3 85 BE--------STA PLAYRREG ;"PLAYER X" 94E5 85 BF--------STA GMOVEREG ;"GAME OVER" 94E7 A9 05--------LDA #$05 94E9 8D 12 1E----STA TYPE+63 94EC A9 49-------LDA #73 94EE 8D 5A 1E----STA XCORD+63 94F1 4C 1D 95----JMP ZDLOUT3 Changed $94D4 from $D6$B1 to $F6$B1. NTSC GALAGA-14R (R = reverse logic) GALAGA_14R_NTSC_B46F.bin Galaga_14R_NTSC_32K.a78 If anyone can find a better way to speed up shooting, kindly let us know. We do need it. Quote Link to comment Share on other sites More sharing options...
Jinks Posted January 31, 2013 Share Posted January 31, 2013 You are the 7800 game genie!! Quote Link to comment Share on other sites More sharing options...
gorfcadet Posted January 31, 2013 Share Posted January 31, 2013 Very cool! I love Galaga, but the 7800 version is in need of a sprite hack. Maybe some day when my other projects are finished. Awesome code breakdown BA. Quote Link to comment Share on other sites More sharing options...
Jaynz Posted January 31, 2013 Share Posted January 31, 2013 Isn't the issue with the sprites primarily that they're too big on the screen (and thus a lot uglier than they should be)? I'm not sure how you can hack that without also affecting the collision detection. Quote Link to comment Share on other sites More sharing options...
gorfcadet Posted January 31, 2013 Share Posted January 31, 2013 Hmmm. Short answer: idunno. Maybe after I get some other things off my plate I'll compare the spritework and sizes to other versions. If I did anything, I'd be careful to work within the original sprite sizes to avoid a complete overhaul. Maybe find some graphical wiggle room in there somewhere. Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted February 7, 2013 Author Share Posted February 7, 2013 I never thought the sprites were too large, although I admit I'm playing my carts on a 13" monitor at the moment. Ugly sprites? Sure the Galaga's look ugly on the emulator, but they look fine on the 7800 hardware, IMHO. As for the shooting speed, in my opinion that needs to be upgraded to the level that ROBOTRON is. Or if you must play shooters, just play my ROBOTRON versions and forget about GALAGA for now. I'm sure we can do something eventually, but what's the priority? > Game Genie < Quote Link to comment Share on other sites More sharing options...
Trebor Posted February 8, 2013 Share Posted February 8, 2013 I do not believe the sprites are too large either, but that is due to the playfield being wider than the arcade. Your ship looks nothing like the Arcade though - It's pretty bad. Smaller/thinner sprites on a narrower (closer to the vertical mount of the arcade) playfield would be nice. The games difficulty allows too much of an easy challenge though (I know you can change the starting difficulty), but the speed of Stage 1 of the Arcade seems similar to Stage 10 of the 7800. Combining the 7800 verison's 'Normal' difficulty and wider playfield, it makes the game all the more easier. I like how the NES handles displaying this vertical game shifting the score and other status info to the side (It does similar to Dig Dug on the Famicom too), forcing and making the narrower playfield not look awkward on a horizontal display. It allows more vertical space for the action/gameplay area. Although the NES definitely has the case of 'sprites too big'. Regardless, it would be great to see this layout on the 7800 (if possible) as well: Quote Link to comment Share on other sites More sharing options...
gorfcadet Posted February 8, 2013 Share Posted February 8, 2013 Or... don't fight the fat pixels and program the game sideways! Sorry, I was going through my Saturn collection and thought of Galactic Attack. The game had a mode that played sideways to allow for a taller playfield. I actually did it once, but decided that turning my tv sideways for one game was for the birds. I know; now I'm just being weird. Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted March 20, 2013 Author Share Posted March 20, 2013 Not sure where I found this, but I think it was KevinMos3 who updated the GALAGA ship and missiles. Now all that's left is to create faster shooting. This one has been updated with 14 lives to enhance gameplay. SCREENSHOT NTSC GALAGA BINARY Galaga (Ship Edit 14Lives)_9796.bin Quote Link to comment Share on other sites More sharing options...
gorfcadet Posted March 21, 2013 Share Posted March 21, 2013 I do like that ship WAAAAAY better. Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted June 28, 2013 Author Share Posted June 28, 2013 This is a game I was playing as a kid in 1984. It was a great game with always the same result - around level 35 - I LOSE. But late last night, GALAGA gave up to me. It took me longer to play a million points (about 50 minutes) than to find the keys to invincibility. She's now invincible. Ready or not here it is... There are 3 choices: (1) Disable Enemy Ship collision with your Hero Ship, (2) Disable Enemy Missile collision with your Hero Ship, or (3) Both, and therefore complete invincibility. The binary below has both. Detailed code changes (seems simple when you know what it is)… ;TO DISABLE ENEMY SHIPS COLLIDING WITH HERO SHIP D0FE---20-D3-D1---JSR COLLIS2-------REPLACE w/ EA EA EA (no ops) D11D---20-CD-D1---JSR COLLIS2A-----REPLACE w/ EA EA EA (no ops) ;TO DISABLE ENEMY MISSILES FROM COLLIDING WITH HERO SHIP D154---20-2E-D3---JSR COLLIS3-------REPLACE w/ EA EA EA (no ops) D170---20-28-D3---JSR COLLIS3A-----REPLACE w/ EA EA EA (no ops) NTSC GALAGA INVINCIBLE, binary GALAGA_SHIPEDIT_NOCOLL_EA0E.bin NTSC GALAGA INVINCIBLE, emulator GALAGA_SHIPEDIT_NOCOLL_32K.a78 (This incorporates KM3's ship edit and all code from DF6D thru FF7F blanked out for future development consideration). LEVEL 99 photo (rolls over to level 1 after level 99), and she slows down miserably... 1,000,000+ points photo (achieved at level 132), I'm sure it will go to 9,999,999 and roll over at <all blanks> 0. ENJOY ALL AND A GOOD WEEKEND 2U. ///blueman\\\ Quote Link to comment Share on other sites More sharing options...
Stechmann Posted March 20 Share Posted March 20 two player mode please please pleeeease!!! Quote Link to comment Share on other sites More sharing options...
Magic Knight Posted March 21 Share Posted March 21 18 hours ago, Stechmann said: two player mode please please pleeeease!!! post is 10 years old - Wow - talk about a "Blast' From the past 1 Quote Link to comment Share on other sites More sharing options...
Stechmann Posted March 23 Share Posted March 23 and the game itself is 40 years old... ...and people will still be talking about it a 100 years from now. legends never die. 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.