Blue Azure Posted August 5, 2013 Share Posted August 5, 2013 BAM!BAM!BAM! BAM! BAM! BLUE AZURE MONDAY BAM! BAM! BAM!BAM!BAM!BAM! HELLO FANS! Off to Deutschland and back again and now we have another disassembly. This time it's DESERT FALCON, one of my later 7800 favorites in the 1980s. The "new game" is a simple conversion to invincibility, so it's mostly hype that it's a "new game." You clicked it and here we are... History of Desert Falcon Actually, I briefly researched this title and it appears there were only versions made for the 7800, 2600, and A800 computer which must have been a pokey version (?). No arcade history was found. Anyone have any further definitive info? Was the 7800 version the original? If there is no further history, this should make this game a highly sought-after title. Disassembly of the 7800 version As we know it, the original & released assembly files are labeled Sphinx™, Nile Flyer™, Desert Falcon™ representing the progressive naming history of this 7800 game title. I was unable to decipher if the title screen code (at address $8000) for Sphinx™ or Nile Flyer™ was included. Anyone know where this is? (the filename Sgraph8.s included precisely matches Desert Falcon™). The disassembly of NTSC Desert Falcon™ was really a quite amusing task. There's programming tricks and a trick or two nobody knows why they work. Had to clean up the language a bit as it's no longer PC to use certain words. And the humor… "crest, not the toothpaste" at address $9320. Not sure if someone was having too much fun, or just plain bored. Whatever, there were tons of hours spent on the creation of this wonderful game. This disassembly includes the High Score Card (HSC) code subsequently added 10-29-2004 at addresses $5000-$519F. Read the disassembly and enjoy! DesertFalconHSC_9A40_Disassy4.rtf *WARNING* This 48K game disassembly is 307 pages (depending on your printer settings). Don't print - save a tree! Orthogonal scrolling shooter: Could this be a seed to the long-awaited 7800 ZAXXON? It could be!!! Changes to the Desert Falcon™ (HSC modified) binary (checksum = 9A40) from 10-29-2004: ; INITIATE DEATH STOP1: ;--------------------JMP SURVIVE---------------;!!!!!!!!!Never Die!!!!!DEBUG E311---2C-F0-24--BIT INVINCBL--------------;Is the Player invincible? E314---30-DC------BMI SURVIVE Change $E311 from $2C$F0$24 to $4C$F2$E2 for invincibility. There has been recent discussion about Desert Falcon failing in attract mode or even during gameplay, but attract mode it fails after 7 hours (?). Never had a problem with this version, but perhaps I didn't leave it in attract mode long enough… It's a great game and now it's even better! The X-treme "X" invincible game, locked in debug mode: DESERT FALCON X, NTSC, binary DESERTFALCON_HSC_INV_9B20.bin DESERT FALCON X, NTSC, emulator DesertFalcon_HSC_INV_48K.a78 DESERT FALCON X, PAL, binary (does not include HSC upgrade) DESERTFALCON_INV_PAL_5018.bin DESERT FALCON X, PAL, emulator (does not include HSC upgrade) DesertFalcon_INV_PAL_48K.a78 1 Quote Link to comment Share on other sites More sharing options...
Bakasama Posted August 5, 2013 Share Posted August 5, 2013 So is there way to fix that weird level bug that effects the two player game? It goes like this, player one plays until he gets to, say, the fifth level and dies. Then it's player two's turn. This is where is gets pretty odd. Player two plays level one but it feels playing level 5 despite it being level one. I know there was a user here that wants a fixed version and I myself have seen it because I played it back in the 80's. Quote Link to comment Share on other sites More sharing options...
+save2600 Posted August 5, 2013 Share Posted August 5, 2013 Here I thought you had hacked Desert Falcon into Zaxxon! Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted August 5, 2013 Author Share Posted August 5, 2013 @bakasama, got it. I never played the 2-player version so I didn't know about this problem. I believe the ca.1984 version was 32K and this one is obviously 48K so it would be interesting to see what changed to make this defective. Meanwhile, the present-day disassy is here so we can look at it and try to decipher what's going on when switching to Player 2. Apparently the difficulty settings aren't refreshed when switching players and this should be an easy fix for someone who has time to do it. @save2600, I could hack the title screen to say ZAXXON - that's my quick fix proposal. Quote Link to comment Share on other sites More sharing options...
Bakasama Posted August 6, 2013 Share Posted August 6, 2013 The only clue on where you might find that bug is the difficulty ramps up based on how long the game you're playing is running except for when the game is paused and difficulty level selected. It doesn't seem be based on what level the player is on like level one or ten. Quote Link to comment Share on other sites More sharing options...
LidLikesIntellivision Posted August 6, 2013 Share Posted August 6, 2013 I'm sorry for my stupid questions but I would like to understand the very basics of your work. About the results. Did you get the assembly code from the binary? Is it the same code that was compiled into the program or is it an equivalent one? How you get there... : I can't figure out even the basic steps needed. Well, the binary... a way to run it (emulator?)... a debugger... and then : I believe the debugger let you run the program step by step, showing variables(addresses in the computer memory) and their values. But then, how to make a code from these values? Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted August 6, 2013 Author Share Posted August 6, 2013 @liduario - My 7800 disassemblies are generated from the released source lists. All it does is shows all the data in sequence by the address numbers. You cannot run these disassemblies on any machine (except mine). I said "debug" cuz you can run the game (binary) on the emulator without dying so you can try different scenarios to see what works and what doesn't. But this invincible game will never let you play player 2, as player 1 never dies. Hopefully this helps you a little. The disassemblies act as a training tool for people who want to program the 7800 or reprogram each respective game, which is what I eventually plan to do. ///blueman/// Quote Link to comment Share on other sites More sharing options...
tep392 Posted August 7, 2013 Share Posted August 7, 2013 Do you plan on posting the source files at some point? All I've seen is assembly listings, which don't allow us to do our own mods and assemble them. edit: just to be clear. I'm talking about the reconstructed source files that you are using to create these assembly listings. Thank you. Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted August 7, 2013 Author Share Posted August 7, 2013 Yep, tep, I've known from the beginning this would become an issue. The difference between Code Blue and TEPperware is widespread and I don't know what to do about it. At the moment, I'm hacking and you're programming and that's a world of difference. If/when I cross-over to the other side, then I'll probably be doing something different. What I had been trying to do was to bring the 7800 code to the masses so *anyone* could read the code and/or start learning how to read the code. Obviously, the prosystem program is growing into something bigger now. IMHO, things will eventually dry up on the 52 and 26 but not on the 78 as we have so much info on so many games. With the advent of the XM probably within a month or so and other hardware and software developments, deciphering the original 7800 games will become more critical. Right now I'm manually converting to my world and others are converting to their world. Unfortunately for me, time is limited and I'm pressing to kick out my projects so I can get back to other of my life's priorities. Thanks for your question, Perry, but for now I can't do much more than I'm already doing. ///blueman/// 1 Quote Link to comment Share on other sites More sharing options...
tep392 Posted August 8, 2013 Share Posted August 8, 2013 You must be assembling something in order to check crc's, correct? Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted August 8, 2013 Author Share Posted August 8, 2013 Of course, I'm assembling everything. Not to worry, it's all good. Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted September 21, 2013 Author Share Posted September 21, 2013 TEP was right, I stand corrected. Although the disassembly stands correct the listed checksum isn't. Rummaging through my desktop last night I see I have 3 modern-era versions of Desert Falcon, all 48K. The original was 32K +/-. Dates are listed in MMDDYYYY. These are NTSC only. DESERT_FALCON_01152000 checksum = 4990 DESERT_FALCON_06162004 checksum = DA40 DESERT_FALCON_10292004 checksum = E2DD I wish I had known this before I had done the 06162004 disassembly as I would have saved myself some time. So now I will update to the 10292004 version. I ran a diffs compare and there's 23 pages of listed changes but it's mostly graphics data that moved $80. It's probably a couple of hours of work, but the job will be done. The gameplay diffs between these two 2004 games is unknown to me. Anyone know the difference? Quote Link to comment Share on other sites More sharing options...
KevinMos3 Posted September 22, 2013 Share Posted September 22, 2013 (edited) Speaking of Desert Falcon, I did some color changes about a year ago but never bothered to upload it anywhere because I didn't think it was worth mentioning. Anyway, if you're going to do some work on this game and you'd like to change some of the colors, let me know and I can post what I changed. Here's a gameplay video I made the other day which includes those color changes. My capture card doesn't display color quite like a CRT will, so they will look a bit off compared to one of those. My capture card seems to display color more like an LCD. http://youtu.be/UYEcJt9Auc8 Edited September 22, 2013 by KevinMos3 Quote Link to comment Share on other sites More sharing options...
Blue Azure Posted September 23, 2013 Author Share Posted September 23, 2013 Yo KM3, great to hear from you. Well here we go posting homebrew references on the mainline forum. But does it really matter? I LOVE THIS GAME. Sure you could PM me if you want to keep your color version private or post probably over at the 78 hacks section. I haven't really reviewed the DF code in that much depth to know if I'd be doing any mod anytime soon on DF. I'm booked at the moment so it would probably be a couple of months before I get to any mods. Maybe I should hack it to look like ZAXXON. But the fact remains, DF is a huge game for the 7800 and its existence should be hugely advertised. I had no idea how rare this game was, and until invincible, how much fun it really is. As for the differences between these two DF files from 2004, I had a technical problem and now it turns out there's virtually no difference between these two, in fact it's only the encryption signing. There must have been an unsigned version running around in 2004 and people were signing them themselves. I didn't check the other one from 01152000 as it's older. In case someone must have the complete signing of the E2DD version, its disassembly is included below. DESERT_FALCON_06162004 checksum = DA40 DESERT_FALCON_10292004 checksum = E2DD DesertFalconHSC_E2DD_Disassy.rtf Enjoy, as I do... ///Blueman/// Quote Link to comment Share on other sites More sharing options...
KevinMos3 Posted September 23, 2013 Share Posted September 23, 2013 What are you using to compile from your disassembly? DASM? Something else?.. and what settings? Quote Link to comment Share on other sites More sharing options...
Lynxpro Posted October 3, 2013 Share Posted October 3, 2013 Yep, tep, I've known from the beginning this would become an issue. The difference between Code Blue and TEPperware is widespread and I don't know what to do about it. At the moment, I'm hacking and you're programming and that's a world of difference. If/when I cross-over to the other side, then I'll probably be doing something different. What I had been trying to do was to bring the 7800 code to the masses so *anyone* could read the code and/or start learning how to read the code. Obviously, the prosystem program is growing into something bigger now. IMHO, things will eventually dry up on the 52 and 26 but not on the 78 as we have so much info on so many games. With the advent of the XM probably within a month or so and other hardware and software developments, deciphering the original 7800 games will become more critical. Right now I'm manually converting to my world and others are converting to their world. Unfortunately for me, time is limited and I'm pressing to kick out my projects so I can get back to other of my life's priorities. Thanks for your question, Perry, but for now I can't do much more than I'm already doing. ///blueman/// I don't think the 5200 will dry up; there's all of the A8 games to convert/transport over to it... 4 Player MULE? And the problem with wishing for things to dry up with the 2600 - for the betterment of the scene with the other Atari consoles - is there's so many more of them out there than the 5200 or 7800. Theres also the fondness and familiarity of the general public with it versus the other less popular Atari consoles... Quote Link to comment Share on other sites More sharing options...
Lynxpro Posted October 3, 2013 Share Posted October 3, 2013 History of Desert Falcon Actually, I briefly researched this title and it appears there were only versions made for the 7800, 2600, and A800 computer which must have been a pokey version (?). No arcade history was found. Anyone have any further definitive info? Was the 7800 version the original? If there is no further history, this should make this game a highly sought-after title. The A8 Pokey audio version is nothing to brag about. I believe the general consensus is it was a lazy port from the 7800 to A8 and the music doesn't at all sound better via the Pokey. It's arguable whether any of the audio SFX sound better in the Pokey version. One of the Pokey musical whizzes out there could probably make a truly kick ass soundtrack update for it though if they were interested. Quote Link to comment Share on other sites More sharing options...
FireTiger Posted January 29, 2014 Share Posted January 29, 2014 Hummm- I really would love to find the bug Quote Link to comment Share on other sites More sharing options...
FireTiger Posted February 21, 2014 Share Posted February 21, 2014 (edited) Page 368- TWO PLAYER SWITCH CODEnot seeing if there's a zero out to 'current' player 2 level- actually looking at the comments they ran out of room By the way the bug works BOTH ways it's whichever player is further ahead, say player one is on level 2 and player 2 is on level 7- player one gets the correct color and sound and type but the speed of enemy is level 7. player one is still level 2 speed bird. Ohhh- pg 406 ENEMY INITIALIZER ... Edited February 21, 2014 by FireTiger Quote Link to comment Share on other sites More sharing options...
Bakasama Posted February 21, 2014 Share Posted February 21, 2014 So that's why there's that bug there. I guess it should be easy to fix. Quote Link to comment Share on other sites More sharing options...
FireTiger Posted February 22, 2014 Share Posted February 22, 2014 ... it should be... maybe-I can't tell if one of the hacks 'fouled' it up or it's not coded due to lack of space or it was miscoded (calling the wrong info).The two places I was looking at well, I never programmed in this 'language' so I'm not sure were to begin- but it looks like I can use this to reverse engineer the HEIRO codes for the goodies, levels 1&2 have different codes then the levels 3+ not sure if it changes again after level 6 never got past that.--------------------topic shift for a few minutes----------When I was like 8 I tried to make a huge chart but not sure where it is now... I bet I could do a better job-I see 60 calls with duplicate powers (like points)...Pg 41-43ish but only 24 'powers'The tables are on page 109 for 'each level'Why are there four? should there not be three? OH my... now what I was hoping to deduce the code... *sigh* ; Mask powers for round one: ; ; Form of table: ; novice,standard,advanced,expert Table1: 6803 .BYTE $00,$00,$00,$00 ;Never happens. 6807 .BYTE $21,$21,$21,$21 ;Extra life. 680B .BYTE $02,$02,$02,$02 ;Points. 680F .BYTE $08,$08,$03,$03 ;Air bombs. 6813 .BYTE $15,$15,$15,$15 ;Kill Minis. 6817 .BYTE $22,$22,$22,$22 ;Kill pots. 681B .BYTE $06,$06,$06,$06 ;Kill sphinx. 681F .BYTE $07,$07,$07,$07 ;Extra bonus time. 6823 .BYTE $08,$08,$08,$08 ;Kill uwes. 6827 .BYTE $20,$20,$09,$09 ;Warp. 682B .BYTE $22,$22,$22,$10 ;Air freeze. 682F .BYTE $11,$11,$11,$11 ;Decoy. 6833 .BYTE $02,$02,$12,$12 ;Can't hop. 6837 .BYTE $02,$02,$13,$13 ;Can't swim. 683B .BYTE $02,$02,$14,$14 ;Can't fly. 683F .BYTE $15,$15,$15,$15 ;Paralyze sphinx. 6843 .BYTE $21,$21,$21,$16 ;Hover. 6847 .BYTE $08,$08,$17,$17 ;Afterburner. 684B .BYTE $18,$18,$18,$18 ;Slowdown. 684F .BYTE $19,$19,$19,$19 ;Random hieros. 6853 .BYTE $20,$20,$20,$20 ;Kill everything. 6857 .BYTE $21,$21,$21,$21 ;Supersonic shots. 685B .BYTE $22,$22,$22,$22 ;Invincibility. ; Mask powers for round two: ; ; Form of table: ; novice,standard,advanced,expert Table2: 685F .BYTE $00,$00,$00,$00 ;Never happens. 6863 .BYTE $21,$21,$21,$21 ;Extra life. 6867 .BYTE $02,$02,$02,$02 ;Points. 686B .BYTE $03,$03,$03,$03 ;Air bombs. 686F .BYTE $15,$15,$15,$15 ;Kill Minis. 6873 .BYTE $05,$05,$05,$05 ;Kill pots. 6877 .BYTE $06,$06,$06,$06 ;Kill sphinx. 687B .BYTE $07,$07,$07,$07 ;Extra bonus time. 687F .BYTE $08,$08,$08,$08 ;Kill uwes. 6883 .BYTE $09,$09,$09,$09 ;Warp. 6887 .BYTE $22,$22,$10,$10 ;Air freeze. 688B .BYTE $11,$11,$11,$11 ;Decoy. 688F .BYTE $02,$02,$12,$12 ;Can't hop. 6893 .BYTE $02,$02,$13,$13 ;Can't swim. 6897 .BYTE $02,$02,$14,$14 ;Can't fly. 689B .BYTE $15,$15,$15,$15 ;Paralyze sphinx. 689F .BYTE $21,$21,$16,$16 ;Hover. 68A3 .BYTE $17,$17,$17,$17 ;Afterburner. 68A7 .BYTE $18,$18,$18,$18 ;Slowdown. 68AB .BYTE $19,$19,$19,$19 ;Random hieros. 68AF .BYTE $20,$20,$20,$20 ;Kill everything. 68B3 .BYTE $21,$21,$21,$21 ;Supersonic shots. 68B7 .BYTE $22,$22,$22,$22 ;Invincibility. ; Mask powers for round three: ; ; Form of table: ; novice,standard,advanced,expert Table3: 68BB .BYTE $00,$00,$00,$00 ;Never happens. 68BF .BYTE $01,$01,$01,$01 ;Extra life. 68C3 .BYTE $02,$02,$02,$02 ;Points. 68C7 .BYTE $03,$03,$03,$03 ;Air bombs. 68CB .BYTE $04,$04,$04,$04 ;Kill Minis. 68CF .BYTE $05,$05,$05,$05 ;Kill pots. 68D3 .BYTE $06,$06,$06,$06 ;Kill sphinx. 68D7 .BYTE $07,$07,$07,$07 ;Extra bonus time. 68DB .BYTE $08,$08,$08,$08 ;Kill uwes. 68DF .BYTE $09,$09,$09,$09 ;Warp. 68E3 .BYTE $21,$10,$10,$10 ;Air freeze. 68E7 .BYTE $11,$11,$11,$11 ;Decoy. 68EB .BYTE $02,$12,$12,$12 ;Can't hop. 68EF .BYTE $02,$13,$13,$13 ;Can't swim. 68F3 .BYTE $02,$14,$14,$14 ;Can't fly. 68F7 .BYTE $15,$15,$15,$15 ;Paralyze sphinx. 68FB .BYTE $21,$16,$16,$16 ;Hover. ;.BYTE #17,#17,#17,#17 ;Afterburner. 68FF .BYTE $11,$11,$11,$11 ;.BYTE #18,#18,#18,#18 ;Slowdown. 6903 .BYTE $12,$12,$12,$12 ;.BYTE #19,#19,#19,#19 ;Random hieros. 6907 .BYTE $13,$13,$13,$13 ;.BYTE #20,#20,#20,#20 ;Kill everything. 690B .BYTE $14,$14,$14,$14 ;.BYTE #21,#21,#21,#21 ;Supersonic shots. 690F .BYTE $15,$15,$15,$15 ;.BYTE #22,#22,#22,#22 ;Invincibility. 6913 .BYTE $16,$16,$16,$16 ; Quote Link to comment Share on other sites More sharing options...
FireTiger Posted February 22, 2014 Share Posted February 22, 2014 (edited) pg 192-198... interesting: CODE TO SET UP FOR LOADER-... blah blah... 967D 8D 53 23 STA DLY+3 ;PLAYER ONE IS UP: TURN ON HIS SCORE 9680 8D 67 23 STA DLZ+3 ; AND LIVES 9683 8C 5D 23 STY DLY+13 ;TURN OFF PLAYER TWO'S LIVES AND SCORE 9686 8C 71 23 STY DLZ+13 9689 60 RTS TWOISUP: 968A 8D 5D 23 STA DLY+13 ;PLAYER TWO IS UP: TURN ON HIS SCORE 968D 8D 71 23 STA DLZ+13 ; AND LIVES 9690 8C 53 23 STY DLY+3 ;TURN OFF PLAYER ONE'S LIVES AND SCORE 9693 8C 67 23 STY DLZ+3 9696 60 RTS Edited February 22, 2014 by FireTiger Quote Link to comment Share on other sites More sharing options...
Bakasama Posted February 22, 2014 Share Posted February 22, 2014 From what I understand that part just turns off and on the players' scores and lives but not the level difficulty for each player. I guess we're a few steps closer to fixing that bug. Quote Link to comment Share on other sites More sharing options...
FireTiger Posted February 22, 2014 Share Posted February 22, 2014 (edited) Ah well, display only there? Makes sense all the rest there is display- it can't be too obvious I've already asked people to look before as I want a repaired cart Edited February 22, 2014 by FireTiger 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.