Jump to content
IGNORED

Ultimate Cart XEX Loader Technical Issues


glurk

Recommended Posts

OK, I started this thread to try to be organized, because I myself have posted about in various unrelated topics.  What I have is the Ultimate Cart, and a stock 48K 800 and no XE/XL machines.  And there are some issues.  I understand that it works fine on most XE/XL machines, and I recognize that owning the Ultimate Cart and a non-upgraded 800 are somewhat of a niche case.

 

Put most simply, some XEX files work, and very many do not.  It's something near a 50/50 split.  And the problem XEX files are all ones that work absolutely fine under Altirra in 800/48K mode.  I'm not expecting to run any 64K RAM programs or anything like that.

 

I've looked into this quite a bit, and I can even code a "fix" (kind of a hack) into some XEX files, and get them to work.  But that is not a real solution.  So far, I've been unable to isolate exactly what the problem is, because it would be a lot easier to fix if I had some idea.  As of yet, I just don't know.  And I don't have much else to add, unfortunately.  I have zero experience with VHDL/FPGA stuff, but the XEX loader is in the 6502 BOOT.ROM, and I think can be fixed from there.

 

So if anyone else wants to help with this, look into it, etc...  I'm sure that it would be of help to all users of the stock earlier systems.

 

 

Link to comment
Share on other sites

And what the documentation says?

If someone programs a binary loader, then he knows exactly what binary files can and cannot be loaded. At least a list of memory areas that shouldn't be touched by the loaded binary file can be published. Also a list of actions that the binary file must refrain from during loading is possible to write. 

Link to comment
Share on other sites

A binary loader needs some Ram as workspace at the least.

Also there's the issue of a cart based loader needing to have the Rom banked in for the loader to run.  Though that can be overcome by having some/all Ram based code.  But that brings the disadvantage of possible conflict with loader vs program being loaded.

Then there's stuff like PORTB banking that if disturbe can affect things.

And finally, I think it was Atari800Win+ that had the "bug" where it would allow loading Xex program segments that would automatically be stored to Ram under Rom regardless of banking state.  That doesn't happen on real hardware and could promote bad practice from people creating executables that work on that emulator but nothing else.

  • Like 1
Link to comment
Share on other sites

baktra-

As far as I know, the only documentation that exists is the BOOT.ROM source code, and it uses the MADS assembler and lots of macros.  Which is difficult (for me!) being an old-school Atari guy.  I find it hard to decipher.  Not blaming anyone, but I can't understand the code very well.

 

Rybags-

I am SOLELY dealing with a real 48K 800 from 1982.  It has no RAM under ROM, and PORTB should do approximately nothing.   All the XEX files that present problems work just fine in Altirra, and so far, work from a real DOS (or at least a Game-DOS).  I have not tested every single one in that way, of course.

 

I know that any loader has to be in RAM "somewhere."  But maybe if the XEX loader behaved exactly like a Game-DOS, at least, it might work better.  Much of this stuff is out of my range of experience.  I'm really good with 6502 in general, but not too much with file loaders and so on.  And there are some really weird XEX files out there as well.  Sometimes hacking the XEX to make it warmstart into it's RUN address works, sometimes not.

 

I'm not at all opposed to putting in work on this, I rather enjoy it, in fact.  But I don't know exactly WHAT the issue really is, and so I am asking for help from people who have more experience in these areas in order to find the root cause.  I know that there are very experienced and capable people here, and am merely hoping someone might take a look at it, if for no other reason than as a programming challenge.

Link to comment
Share on other sites

1 hour ago, glurk said:

baktra-

As far as I know, the only documentation that exists is the BOOT.ROM source code, and it uses the MADS assembler and lots of macros.  Which is difficult (for me!) being an old-school Atari guy.  I find it hard to decipher.  Not blaming anyone, but I can't understand the code very well.

 

 

i will try to "decipher" the loader when I will get back to this. I have one TBA UnoCart which probably uses the same.
I believe the macro assemblers for Atari such as MAC/65 or cross-assemblers for mainframes targeting 6502 of the 80s weren't that different when it comes to macro usage.

Link to comment
Share on other sites

On 6/13/2021 at 5:41 AM, flashjazzcat said:

If you want every compatibility improvement from the SIDE2 loader ported across to the Ultimate Cart loader, I can do that in about half an hour.

perfect this will improve a lot the Ultimate cart, I hope to upload my FPGA changes to the master branch of the project. for the moment I just updated some things in my fork as I am testing the two new supported cartridges.?

  • Like 2
Link to comment
Share on other sites

On 6/13/2021 at 10:55 AM, glurk said:

Oh, please yes!!  Thanks so much.

Do you have (can you upload) some problematic XEX files which work in Altirra in 800 mode but don't work when run from the Ultimate loader? Looking at the source, as I now am, I can see little difference between the meat and bones of this loader and the SIDE Loader other than some small tweaks such as clearing the bottom of the stack (which cured problems with no more than a handful of extremely fussy titles) and not setting the run address to the start of the first segment after loading it if said first segment acually set the run address.

 

It's going to be difficult to quantify any materal improvements unless I know what fails (I use the Ultimate Cart very rarely now, which is to say never). ;) Hopefully it won't turn out that the problem files are relying on custom SIO loaders and such.

Edited by flashjazzcat
Link to comment
Share on other sites

I usually fix or delete the ones that don't work, but here is another example, the "Intellidiscs" from Homesoft:

 

http://www.mushca.com/f/atari/index.php?idx=I

 

The XEX download on that page works fine in Altirra, but not on the Ultimate Cart.

 

 

Link to comment
Share on other sites

6 hours ago, glurk said:

"Intellidiscs" from Homesoft:

 

http://www.mushca.com/f/atari/index.php?idx=I

 

The XEX download on that page works fine in Altirra, but not on the Ultimate Cart.

Just tested Intellidiscs on my Ultimate Cart and it works here. How odd.

 

Air Strike II doesn't work, though, so it's conceivable there's something I can do about that.

Link to comment
Share on other sites

If you think that's funny, I had an upgraded XE sent back here a week ago with endemic lock-up and crashing issues (documented with photographs) which has worked flawlessly during five-hour testing bouts ever since it got back here. :)

 

Intellidiscs works on the SIDE/SIDE3 loader, BTW. ;)

 

 

Edited by flashjazzcat
  • Like 1
Link to comment
Share on other sites

Have you tried the PoP .CAR files? ? (*runs away to hide …*)’

 

j/k … I’m glad to see a bit of work being done to improve the Ultimate Cart loader. Although it’s currently no more than third-banana among the current crop of cartridge devices for A8 machines, I still want to buy one if for no reason except that it can fit inside an 800 and allow the cartridge door to close properly, unlike the SIDE3 and AVG Cart. So any improvements that people make to are great to see.

Link to comment
Share on other sites

14 minutes ago, DrVenkman said:

Have you tried the PoP .CAR files? ? (*runs away to hide …*)’

They're on the SD card anyway; it's a reasonable suggestion. :)

 

There are a few things I could fix aside from Air Strike II, etc, including the DLI jitter at the extreme right hand side of the menu. I'm not exactly in love with the UI of the Ultimate Loader, especially after refining the SIDE loaders for several years, but I need to resist the temptation to do a complete redesign. That could be a job for someone else if they have a mind to do so, once the (apparently) few incompatibilities are ironed out.

  • Like 2
Link to comment
Share on other sites

13 hours ago, flashjazzcat said:

Just tested Intellidiscs on my Ultimate Cart and it works here. How odd.

It also works for me but on the XE line, I think my colleague @glurk only has 800.

 

found another one with Up'n Down problem?  

11 hours ago, flashjazzcat said:

There are a few things I could fix aside from Air Strike II, etc, including the DLI jitter at the extreme right hand side of the menu. I'm not exactly in love with the UI of the Ultimate Loader, especially after refining the SIDE loaders for several years, but I need to resist the temptation to do a complete redesign. That could be a job for someone else if they have a mind to do so, once the (apparently) few incompatibilities are ironed out.

personally I would leave the aesthetics for the last, in my fork I already added support for 2 types of cartridges in the FPGA... I want to put together several improvements to release to the community a new firmware more updated that they can record it at home.

Link to comment
Share on other sites

On 6/16/2021 at 8:31 AM, flashjazzcat said:

Air Strike II happens to call a warmstart after setting up reset protection, so it's clear something about the Ultimate loader is upsetting that. Ported a few improvements across but nothing is helping yet, but at least the source of the issue is clear.

I remember that the Atarimax has some similar issues, due to that It doesn’t erase the base memory, leaving some DL and screen data as garbage. Maybe in the boot ultimate rom is happening something similar.

  • Like 1
Link to comment
Share on other sites

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.?

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...