Jump to content
IGNORED

Altirra 2.80 released


phaeron

Recommended Posts

 

Make sure you have changed the translation mode in Bobterm from Atari to ASCII. Modems expect conventional line endings and won't work with ATASCII EOLs.

Thank-you for the quick response. I also didn't realize I needed to configure the modem within the 850. Now it works!

Link to comment
Share on other sites

 

Yes, it currently emulates a 65C802, not a 6502 or 65C02. This is because I bootstrapped the full drive emulators off of the core I already had for Veronica, and I need to strip it down to a proper 6502/65C02 core before ship. The main thing to watch out for is that RMW abs,X will take 6 cycles instead of 7 and single-cycle NOPs aren't available. abs,X wrapping is fine since the bank address is discarded.

 

This means no NMOS "undocumented" instructions, right? That will break, at least, one program. One of the Archiver/Happy utilities use them, just for obfuscation purposes, IIRC.

Link to comment
Share on other sites

Yes, but if it's that time critical, it's easy to test what type CPU you have and use the correct instructions for it. If you don't have room in RAM for both sets of code, then load an overlay from disk. It is easily done, and it can satisfy all Atari users.

 

65c02, 65c802, 65c816 get their own improved instructions to work with in the time-critical areas, and everyone is happy.

Link to comment
Share on other sites

Yes, it currently emulates a 65C802, not a 6502 or 65C02. This is because I bootstrapped the full drive emulators off of the core I already had for Veronica, and I need to strip it down to a proper 6502/65C02 core before ship. The main thing to watch out for is that RMW abs,X will take 6 cycles instead of 7 and single-cycle NOPs aren't available. abs,X wrapping is fine since the bank address is discarded.

Thanks a lot for the info! These differences shouldn't be an issue for the speedy, at least the timing-critical serial code isn't affected by that.

 

During my tests I noticed another minor issue, referencing symbols in the debugger doesn't seem to work on the emulated drive - they show up fine in the disassembly though. eg:

Altirra:0> ~1s
Target now set to 1:Disk Drive CPU.
Altirra:1> ya RXSLOW $fd12
Altirra:1> x *
$FD12  manual!RXSLOW
Altirra:1> ? RXSLOW
Unable to parse expression: Unable to resolve symbol "RXSLOW"
so long,

 

Hias

Link to comment
Share on other sites

Update:

http://www.virtualdub.org/beta/Altirra-2.90-test32.zip

http://www.virtualdub.org/beta/Altirra-2.90-test32-src.zip

 

  • Added a power-on delay setting to deal with slow disk drives. This gives the disk drives more time to init before the computer powers on. "Auto" automatically applies a delay for the 1050 Duplicator, ATR8000, and Percom drives.
  • 65C816 CPU speed can now be changed on the fly. Changing the CPU type still requires a reboot.
  • Fixed a bug with drive states getting screwed up when swapping or rotating images with both full and standard disk drive emulators involved.
  • Full disk drives are now using a 6502/65C02 emulator as appropriate instead of 65C802.
  • Fixed broken STZ zp,X instruction in 65C02 mode. (It worked correctly in 65C816 mode.)
  • Formatting over an existing disk image now works -- the full drive emulators no longer force a virtual image, and fixed a bug where auto-save could fail on the new disk because the emulator forgot which file format to use.
  • There is now an option to disable auto-rewind on the tape drive on cold reset.
  • Added a new confirmation dialog for some cases where the emulator forces a cold reset on a settings change or on exit. The confirmation dialog has a "don't show this again" checkbox, and there is a button in Options to reset them so they show again after being ignored.

Side note, 1050 Turbo appears to have an issue with density detection when turned on with a double density disk already in it. Not sure why yet. It works fine if you "insert" the disk after it powers on, after which it sees the disk change.

 

During my tests I noticed another minor issue, referencing symbols in the debugger doesn't seem to work on the emulated drive - they show up fine in the disassembly though. eg:

 

This is another issue with multi-target support that I need to work out. Looks like some portions of the debugger are filtering by target while others are not. Issue is, there's only one custom symbol module, so I'm not sure how to resolve this just yet.

  • Like 12
Link to comment
Share on other sites

Back in the day I did various upgrades to my Apple II+ and Apple //e. I got a lowercase chip, a shift-mod for proper use of the <shift> key. Various ROM upgrades, new character set, new MouseText, 65C02, and of course all sorts of interface cards.

 

Everytime a new version of Altirra comes out it's like like the Apple II days all over again!

Link to comment
Share on other sites

  • Added a new confirmation dialog for some cases where the emulator forces a cold reset on a settings change or on exit. The confirmation dialog has a "don't show this again" checkbox, and there is a button in Options to reset them so they show again after being ignored.

 

@phaeron,

 

Thank you!

 

-Todd

Link to comment
Share on other sites

  • 2 weeks later...

Hi Phaeron, is there a way to export data from Altirra Profiler - Detailed View? Currently I don't even see a way to select and copy the text from that window. It would be great if I could save the collected data to a file (e.g. CSV format) for further analysis.

If there is no such feature, it would be hard to add it? We're profiling our new game at the moment that we want to show in few days on the party in Warsaw and such feature could help us improve it's performace.

 

Thanks in advance.

Edited by solo/ng
Link to comment
Share on other sites

http://www.virtualdub.org/beta/Altirra-2.90-test33.zip

http://www.virtualdub.org/beta/Altirra-2.90-test33-src.zip

 

  • Fixed XEP80 tab stops not being properly reinitialized after master reset.
  • Fixed some timing issues with SIO command line emulation for Percom and XF551 emulators.
  • Fixed crash in 6502 coprocessor core with missing drive firmware.
  • Implemented config latch for VBXE (but not actual config upload).
  • Fixed an issue in ATBasic with PMBASE getting overwritten even when PMGRAPHICS was not used. 1.54 attached.
  • Added copy-as-CSV for profiler list views.

 

atbasic.bin

atbasicx.xex

  • Like 11
Link to comment
Share on other sites

Fixed XEP80 tab stops not being properly reinitialized after master reset.

 

Thanks, the menu looks better now.

 

I should clarify for those who weren't following the thread related to this fix.

 

Thanks, the menu for AtariWriter 80 is now correctly centered.

Link to comment
Share on other sites

Hello,

 

We noticed the 5200 controller and 5200 trackball in the canned controllers for Altirra 400/800 do not work as real or emulated hardware for the 400/800 and, so, perhaps should be removed from the Input controller options.

 

Thank you.

Link to comment
Share on other sites

Hello,

 

Let me report a couple of issues with POKEY chip in Altirra that I've found

1. Setting POKEY registers as follows
AUDF1=100
AUDC1=175
AUDF3=0
AUDC3=0
AUDCTL=5
SKCTL=3
should cause it to generate a narrow impulse train. It seems to work reliably
on a real hardware, however on Altirra it sometimes works correctly and
sometimes it doesn't. Sometimes the impulse train is generated but it is very
quiet. Most often no sound is produced at all.

2. Behavior of a low timer in a linked timers pair is incorrect when timers
are driven by 64 kHz or 15 kHz clock (it's OK with 1.79 MHz clock).
For example
AUDF1=33
AUDC1=170
AUDF2=1
AUDC2=0
AUDCTL=16
SKCTL=3
the generated sound is wrong and is disturbed by keystrokes. This happens only
when timer emulation is in deferred mode. Forcing it to go out of deferred
mode by enabling interrupts for timer 1 fixes the problem.

3. The pitch of a square wave generated with the following settings
AUDF1=99
AUDC1=170
AUDF2=199
AUDC2=0
AUDCTL=0
SKCTL=139
is one octave lower than it should be.

4. Altirra doesn't implement additional two-cycle delay when timers 1 and 2
are linked and two-tone mode is enabled at the same time.
For example, with the following settings:
AUDF1=10
AUDC1=0
AUDF2=0
AUDC2=136
AUDCTL=208
SKCTL=139
the pitch is too high by almost 2 semitones.

  • Like 4
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...