Jump to content
IGNORED

Altirra 2.70 released


phaeron

Recommended Posts

If I understand correctly, Atari gave the OS ROMs distribution rights to the Xformer 2000 emulator. Why not to the other emulators as well? Because the other emulators authors just simply didn't bother to ask Atari?

 

Atari gave permission initially to the ST Xformer emulator. For the obvious reason that is was hosted on an Atari computer (ST). At the time I believe it was the only emulator anyway. Windows versions came later, and probably they just inherited the rights.

Link to comment
Share on other sites

I thought I was going to be on Avery's good programmer list by not using any of those old practices (that I'm aware of) that will make my program incompatible with Altirra OS.

 

Initially, ACTris! 1.2 seems to run just fine with Altirra OS (B & XL versions). However, after a few object drops and then the VBI "Popcorn" music routine becomes all garbled. Avery, can you please take a look? Thanks.

 

Your music routine in deferred VBLANK uses memory locations that are used by the floating point math package and you're calling into IPF + FASC to update the score. $D4-EB, $ED-FA, and $FC-FF are documented in the OS manual as used by the math pack. It's by chance that the locations you're using aren't modified by the XL/XE OS math pack with these calls. Even then, I would not depend on it for all values or with the many fast math packages out there. If this is all you're using the math pack for, it would be better just to use a custom int -> text routine.

Link to comment
Share on other sites

Thank you Avery for your help. Based on your analysis, I didn't use any of the old programming tricks to break things with Altirra OS. So, I should still be on your good list :) Please keep in mind that there was no such thing as Altirra OS when I began working on my program years ago.

 

As for the page zero memory locations, I used them for counters to save some machine cycles during the VBI. Of course, I can save the five locations used by pushing them onto the stack at the beginning of the VBI and then pulling them from the stack upon the VBI exit. But, that totally defeats the purpose of saving machine cycles by adding all the overheads. Maybe I can move those counters to main RAM locations to make my program compatible with Altirra OS moving forward.

Link to comment
Share on other sites

Bug / feature found..Latest beta

 

If you use the 16mb images that are Mypicodos 4.05 from this thread

 

http://atariage.com/forums/topic/187482-4-atari-16mb-hard-disk-images-completed/?do=findComment&comment=2366659

 

And set the drive to Happy then the way it displays the disk directory visually is wrong, if you use the 1050 Turbo setting for the drive then the directory system is visually corrupted.(possibly actually corrupted too)

 

Paul..

Edited by Mclaneinc
Link to comment
Share on other sites

Thank you Avery for your help. Based on your analysis, I didn't use any of the old programming tricks to break things with Altirra OS. So, I should still be on your good list :) Please keep in mind that there was no such thing as Altirra OS when I began working on my program years ago.

 

As for the page zero memory locations, I used them for counters to save some machine cycles during the VBI. Of course, I can save the five locations used by pushing them onto the stack at the beginning of the VBI and then pulling them from the stack upon the VBI exit. But, that totally defeats the purpose of saving machine cycles by adding all the overheads. Maybe I can move those counters to main RAM locations to make my program compatible with Altirra OS moving forward.

 

Well, about that... AltirraOS may not have existed back then, but the Atari Operating System User's Manual did, and it documented those page zero locations as being used by the floating point package. Using those locations for your own purposes concurrently with calls to the FP library is depending on undocumented OS internal behavior.

 

Bug / feature found..Latest beta

 

If you use the 16mb images that are Mypicodos 4.05 from this thread

 

http://atariage.com/forums/topic/187482-4-atari-16mb-hard-disk-images-completed/?do=findComment&comment=2366659

 

And set the drive to Happy then the way it displays the disk directory visually is wrong, if you use the 1050 Turbo setting for the drive then the directory system is visually corrupted.(possibly actually corrupted too)

 

Paul..

 

This is kind of a tough one. The problem is that these disks have more than 32767 sectors, and both the 1050 Turbo and the Happy drive repurpose bit 15 of the sector number for high speed and memory access, respectively. You're getting into a nonsensical situation here because, well, there was no such thing as a 16MB floppy disk. For these situations you need to use the Generic profile instead. The emulator needs to warn/block on this but I'm not sure how the UI flow should work exactly.

  • Like 3
Link to comment
Share on other sites

 

Well, about that... AltirraOS may not have existed back then, but the Atari Operating System User's Manual did, and it documented those page zero locations as being used by the floating point package. Using those locations for your own purposes concurrently with calls to the FP library is depending on undocumented OS internal behavior.

 

 

This is kind of a tough one. The problem is that these disks have more than 32767 sectors, and both the 1050 Turbo and the Happy drive repurpose bit 15 of the sector number for high speed and memory access, respectively. You're getting into a nonsensical situation here because, well, there was no such thing as a 16MB floppy disk. For these situations you need to use the Generic profile instead. The emulator needs to warn/block on this but I'm not sure how the UI flow should work exactly.

As usual, your points are clear and accurate. Thank you :)

It is 100% my fault. But since I didn't encounter the issue before, the usage of these page zero locations went on unnoticed until I tried using my program with Altirra OS - That was the point that I was trying to make. Thanks again for helping me to debug my own codes. I'm making the fix by moving the counters away from the "Keep-out Zone" :)

  • Like 1
Link to comment
Share on other sites

Thanks Avery,

 

I've been so spoilt by the wonders the emulator and the creative minds of users that I never gave thought that 16mb disks / floppy drives never existed in the physical world back then :) , I've got so used to Altirra etc doing so many things never thought of in its day.

 

Happy days (so to speak)

 

Paul.

  • Like 1
Link to comment
Share on other sites

The hover help for error messages with Shift key doesn't work anymore. Now I need to press Alt and the mouse button to display the error message, but it disappears almost immediately, before I can read it ?!?

 

Thanks for the new default disk r/w setting "VRWSafe". Now I can start games that need write access without changing the settings. :-)

Edited by StefanD
Link to comment
Share on other sites

Hi Avery...Just got the Aquire cas image from the Undumped release thread and when the processing bar comes up it crashes and produces a mini dump with this

 

Exception Code: c000005 PC: 00e1a3fc

 

Here's a pointer to the CAS http://atariage.com/forums/topic/252943-master-list-of-missing-undumped-software/page-3?do=findComment&comment=3543590

 

Tried with all CAS related patches off (hope that is the dump from that test included)

 

Tried same cas image on Atari800win 4.1 and it seems to work..

 

Paul

 

(here's hoping I didn't miss a setting and wasted your time but all other CAS images that should work, do)

 

Latest beta used...

AltirraCrash.zip

Edited by Mclaneinc
Link to comment
Share on other sites

Hi Avery...Just got the Aquire cas image from the Undumped release thread and when the processing bar comes up it crashes and produces a mini dump with this

 

Exception Code: c000005 PC: 00e1a3fc

 

Here's a pointer to the CAS http://atariage.com/forums/topic/252943-master-list-of-missing-undumped-software/page-3?do=findComment&comment=3543590

 

Tried with all CAS related patches off (hope that is the dump from that test included)

 

Tried same cas image on Atari800win 4.1 and it seems to work..

 

Paul

 

(here's hoping I didn't miss a setting and wasted your time but all other CAS images that should work, do)

 

Latest beta used...

That is true for Altirra x64 v2.8 test 43 (WINDOWS 10 x64). It just crash. However, the game executes and works just fine with Altirra v2.50 (WINDOWS 10 x64). Didn't test other versions.

madi

Edited by Madi
Link to comment
Share on other sites

  • 2 weeks later...

Hi,

 

I have a problem with establishing H: device on my disk. This worked in previous version (2.60), but now I can't make it work (Menu System / Devices). Do I have to reestablish new H: drive and remove previous settings?

I use this feature for testing purposes, so I don't have to make special ATR files for testing I/O operations on files, plus developing process is really fast.

 

Greetings

Link to comment
Share on other sites

Hi,

 

I have a problem with establishing H: device on my disk. This worked in previous version (2.60), but now I can't make it work (Menu System / Devices). Do I have to reestablish new H: drive and remove previous settings?

I use this feature for testing purposes, so I don't have to make special ATR files for testing I/O operations on files, plus developing process is really fast.

 

Greetings

 

You don't have to remove previous settings, but you do need to re-create the H: device: System > Devices > Add > High-level Emulation (HLE) Devices > Host Device (H:).

Link to comment
Share on other sites

Your cartridge relies on the initial power-up bank being bank 0 since its init vector points to the switchable bank ($8000). This isn't guaranteed for a few reasons.

 

First, real XEGS cartridge hardware has no power-up init circuit, so the initial bank is random on the real hardware.

 

Second, the cartridge port has no reset line, so most cartridges cannot return to their home bank even if the OS does a cold reset (there are ways, but prohibitively complex for most cartridge designs). This means that a cartridge that relies on the power-up bank does not work properly when a system is force cold booted without a power cycle, which is possible with add-ons such as Ultimate1MB (very handy).

 

Third, cartridge modes for the .CAR format do not have defined initial banks -- the best definition of the modes is the CART.TXT file included with the Atari800 emulator and it lacks this info.

 

For these reasons, cartridges should init in the fixed bank and manually force a bank switch to the desired bank, or if there is no fixed bank, have init code repeated in every left cart window bank.

  • Like 2
Link to comment
Share on other sites

Took a look at a set of XEGS cartridges and didn't find any with startup bank dependencies, so went ahead and changed to bank 0 to match A8WP:

 

http://www.virtualdub.org/beta/Altirra-2.80-test46.zip

http://www.virtualdub.org/beta/Altirra-2.80-test46-src.zip

 

Let me know if anyone sees regressions on XEGS or Switchable XEGS carts.

Link to comment
Share on other sites

Looking good so far, checked most of mine and all do what they should under beta 45 and beta 46.(refer to later question)

 

Little question, does a coldstart act exactly like a power cycle?

 

I thought it did and everything was reset to act like it was a first turn on but I found an XEG cart with Caverns of Mars II on a menu that if you ran it first time from a fresh boot of Altirra (XL mode) its decrunches fine, if you Shift F5 and run it again it refuses to decrunch, its like something is still 'hooked' ?

 

I know that a warmstart does not reset everything hence you can set a location to re-run the program in memory with a pointer to the run address but I thought possibly wrongly that a Coldstart did the full reset even with a cart installed and just acted like you had just turned on the machine with the cart installed.

 

Here's the said cart for reference..

 

The above whatever the answer is nothing to do with the change in XEGS as it does the same on beta 45.

new cart5.rom

Edited by Mclaneinc
Link to comment
Share on other sites

Seems that Coldstart reinitializes Ram that the OS can't see to the selected default pattern which in theory should act same as a powerup.

Only checked Ram @ $C000 though.

 

What might be nice is an option to leave Ram alone on subsequent Coldstarts, ie initialize per options when Altirra starts but not on Coldstart by menu of Shift-F5.

 

As for the described behaviour... sounds strange, though might be understandable if subsequent coldstarts aren't resetting cart bank state.

Link to comment
Share on other sites

Hi Avery,

 

Any new idea's re the auto inserting multiple disk games?

 

I've sat and racked what little brain cells I have and it always comes back to manually choosing because of naming conventions / AI needed to work out which is disk a or 1 etc etc in amongst the name if it even has that instead of being named DATA or such like. The nearest I came to was an idea of checking a zip (or folder perhaps) for multiple ATR's and having a screen to pick say 1 through 8 next to them as to which drives you want the disks assigned to but it sounds so complex code wise.

 

I know it can be done from a command line by specifying the names of the files inside the zip via a ZIP: usage.

 

I also know that games do not always support more than one drive...

 

Do you think things will ever progress or is it simply too much work and too lazy on the users part :)

 

As always, just one of my 'what if' moments to be taken with a pinch of salt.....And to be honest most not likely worth the time of day :)

 

Paul..

Edited by Mclaneinc
Link to comment
Share on other sites

Your cartridge relies on the initial power-up bank being bank 0 since its init vector points to the switchable bank ($8000). This isn't guaranteed for a few reasons.

 

First, real XEGS cartridge hardware has no power-up init circuit, so the initial bank is random on the real hardware.

 

Second, the cartridge port has no reset line, so most cartridges cannot return to their home bank even if the OS does a cold reset (there are ways, but prohibitively complex for most cartridge designs). This means that a cartridge that relies on the power-up bank does not work properly when a system is force cold booted without a power cycle, which is possible with add-ons such as Ultimate1MB (very handy).

 

Third, cartridge modes for the .CAR format do not have defined initial banks -- the best definition of the modes is the CART.TXT file included with the Atari800 emulator and it lacks this info.

 

For these reasons, cartridges should init in the fixed bank and manually force a bank switch to the desired bank, or if there is no fixed bank, have init code repeated in every left cart window bank.

 

 

Excellent! Thanks for the info. Just patched 4 bytes and added 8 bytes of code and it worked! Here is the new image.

 

I always thought that there is an RC circuit to reset the counter and select bank 0 at coldstart. Good to know that issue.

conanXEGS2.zip

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