glurk Posted June 22, 2021 Author Share Posted June 22, 2021 I don't know if that's so much of the problem. As an example XEX that works, this "Aquatron" loads one huge segment from $7F5E-$ BFDE, a tiny 11-byte segment at $0400, and has a run address. And it loads and runs perfectly. --> Aquatron.XEX I never really know what's going to work and what's not until I try it, and even then I'm still not really too certain what the main issue is with the broken ones. Sorry that that's not really all that helpful. Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 22, 2021 Share Posted June 22, 2021 9 hours ago, ascrnet said: I keep checking and testing games I found several more that are incompatible. I have noticed that the problem is when the XEX needs to use the memory between $8000 to $BFFF I think it is missing telling it that that memory is free to use, but something tells it that it is occupied "I guess by a cartridge" and this causes it not to load the XEX.? Have you tried loading Air Strike II on maxflash studio? Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 22, 2021 Share Posted June 22, 2021 Been looking at and tweaking the Ultimate Cart loader, but I still haven't nailed the Air Strike II issue. The Turbo Freezer debugger actually shows that the warmstart completed without problems, but for some reason critical code overwites itself during the game's initialisation phase. Quite a head scratcher at the moment. 1 Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 22, 2021 Share Posted June 22, 2021 25 minutes ago, flashjazzcat said: Been looking at and tweaking the Ultimate Cart loader, but I still haven't nailed the Air Strike II issue. The Turbo Freezer debugger actually shows that the warmstart completed without problems, but for some reason critical code overwites itself during the game's initialisation phase. Quite a head scratcher at the moment. I think that that version of Air strike II writes on the $D5xx area, making a mess on the cartridge banking scheme. The same happens with some versions of Gyruss. That forces to modify the XEX file in order to avoid the writing to that memory area. 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 22, 2021 Share Posted June 22, 2021 13 minutes ago, Wilheim said: I think that that version of Air strike II writes on the $D5xx area, making a mess on the cartridge banking scheme. Oof! I wondered about that but didn't follow it up in the Altirra debugger yet. I will do so ASAP. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 22, 2021 Share Posted June 22, 2021 No writes to $D5xx by the Air Strike II XEX that I can see in the Altirra debugger. Quote Link to comment Share on other sites More sharing options...
ascrnet Posted June 22, 2021 Share Posted June 22, 2021 9 hours ago, glurk said: I don't know if that's so much of the problem. As an example XEX that works, this "Aquatron" loads one huge segment from $7F5E-$ BFDE, a tiny 11-byte segment at $0400, and has a run address. And it loads and runs perfectly. --> Aquatron.XEX I never really know what's going to work and what's not until I try it, and even then I'm still not really too certain what the main issue is with the broken ones. Sorry that that's not really all that helpful. it is well that it fails that is the other problem, I explain you in $700 to $90x is the charger of the XEX that is why it does not work for you. 2 hours ago, Wilheim said: Have you tried loading Air Strike II on maxflash studio? 1 and 2 work without problems.air.car Other games with incompatibility problem : Zaxxon, Jungle Boy, Bruce Lee. Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 22, 2021 Share Posted June 22, 2021 5 hours ago, flashjazzcat said: No writes to $D5xx by the Air Strike II XEX that I can see in the Altirra debugger. Maybe the address BOOT? ($09) I see that it's not initialized before the warmstart. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 22, 2021 Share Posted June 22, 2021 12 minutes ago, Wilheim said: Maybe the address BOOT? ($09) Current test version of the loader manages BOOT? properly - no difference. Quote Link to comment Share on other sites More sharing options...
ascrnet Posted June 23, 2021 Share Posted June 23, 2021 as far as I understand the Air Strike II game sets it to 2 that is cassette boot successful. The ultimate cart menu sets it to 3 at startup to leave the diskette and cassette booting successful. lda #$FF sta CH ; set last key pressed to none sta BootFlag jsr copy_wait_for_reboot jsr CopyXEXLoader mva #3 BOOT ; patch reset - from mapping the atari (revised) appendix 11 mwa #reset_routine CASINI jsr InitJoystick jsr SetUpDisplay jsr clear_screen Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 4 hours ago, ascrnet said: the Air Strike II game sets it to 2 So for the purpose of testing, what the Ultimate Cart sets it to is unimportant, since the game itself explicitly sets it up. Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 23, 2021 Share Posted June 23, 2021 11 hours ago, ascrnet said: as far as I understand the Air Strike II game sets it to 2 that is cassette boot successful. The ultimate cart menu sets it to 3 at startup to leave the diskette and cassette booting successful. lda #$FF sta CH ; set last key pressed to none sta BootFlag jsr copy_wait_for_reboot jsr CopyXEXLoader mva #3 BOOT ; patch reset - from mapping the atari (revised) appendix 11 mwa #reset_routine CASINI jsr InitJoystick jsr SetUpDisplay jsr clear_screen Allow me to disent. That routine is not what it runs at the first warmstart. The initialization routine is at $BB00-$BB54. If the Ultimate Cart sets BOOT? with 3, then it hangs because it tries to run CASINI vector, where this game is not set. I just patched the XEX from Air Strike to initialize the CASINI vector, and now it works with the Ultimate Cartridge. So I think the issue is related to the BOOT? address. I suggest to initialize the BOOT? address with 0 and DOSVEC as the run vector. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 35 minutes ago, Wilheim said: I just patched the XEX from Air Strike to initialize the CASINI vector, and now it works with the Ultimate Cartridge. Can you upload that XEX here, please, so I might test it here? Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 23, 2021 Share Posted June 23, 2021 (edited) Sure, here you are: Air Strike II CASINI patched.xex Edited June 23, 2021 by Wilheim Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 23, 2021 Share Posted June 23, 2021 Another idea: run the XEX loader with CASINI on the warmstart and then reinitialize BOOT?, DOSVEC, DOSINI and CASINI at the beginning of the XEX loader. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted June 23, 2021 Share Posted June 23, 2021 (edited) Aren't you still at the mercy of the XEX's run or init code setting things? Edited June 23, 2021 by Wrathchild Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 23, 2021 Share Posted June 23, 2021 (edited) 7 minutes ago, Wrathchild said: Aren't you still at the mercy of the XEX's run or init code setting things? Probably we are. These kind of things occurs when the XEX is not properly initialized and assummes OS address with default values. In this case, BOOT? Edited June 23, 2021 by Wilheim Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 16 minutes ago, Wilheim said: Another idea: run the XEX loader with CASINI on the warmstart and then reinitialize BOOT?, DOSVEC, DOSINI and CASINI at the beginning of the XEX loader. The XEX you uploaded works (which is great), but nothing I have changed in the Ultimate loader allows the unpatched version to work yet, and it's important to note that the SIDE loader (which loads the unpatched XEX perfectly well on and XL/XE) doesn't do anything complex with the system vectors or boot flags. Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 23, 2021 Share Posted June 23, 2021 10 minutes ago, flashjazzcat said: The XEX you uploaded works (which is great), but nothing I have changed in the Ultimate loader allows the unpatched version to work yet, and it's important to note that the SIDE loader (which loads the unpatched XEX perfectly well on and XL/XE) doesn't do anything complex with the system vectors or boot flags. Maybe these lines would require a patch: mva #3 BOOT ; patch reset - from mapping the atari (revised) appendix 11 mwa #reset_routine CASINI Change BOOT to 0 and CASINI to DOSVEC. Let's see what happens. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 3 minutes ago, Wilheim said: Maybe these lines would require a patch I already tried commenting out this stuff, and have now tried your suggestion but it makes no difference. I also (earlier) attempted carefully managing all the boot vectors and flags separately (later on, during InitLoader), but nothing works as yet. Quote Link to comment Share on other sites More sharing options...
ascrnet Posted June 23, 2021 Share Posted June 23, 2021 according to what I understood from @Wilheim patch the original XEX assumes it is loaded from floppy so it uses DOSINI and I change it to CASINI since it uses CASINI in the cartridge loader. I don't think something as easy as adding DOSINI equal to CASINI would work.? Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 Well, it was actually sufficient to simply set BOOT? to $01 to allow Airstrike II to load, but this was hard to see when I was forgetting to put the underscore at the front of the '_boot.rom' file, and thus simply repeatedly testing the same ROM-based loader. But when you live in Clownworld, I suppose you gotta do some honking. _Boot.zip That's a quick build, anyway, just to prove the point. 2 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 This appears to have fixed a number of the other test cases as well, upon topical inspection at least, but any 400/800 OS incompatibilities remain to be looked at. 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 23, 2021 Share Posted June 23, 2021 Version with that bloody DLI flicker fixed: _Boot_DLI_Fix.zip 1 2 Quote Link to comment Share on other sites More sharing options...
Wilheim Posted June 23, 2021 Share Posted June 23, 2021 16 minutes ago, flashjazzcat said: Version with that bloody DLI flicker fixed: _Boot_DLI_Fix.zip 3.32 kB · 1 download Thank you! Good to know it could be solved. Never noticed the DLI flicker before. I had to turn the underscan on my monitor to actually see it. 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.