Jump to content
IGNORED

Altirra 2.60 released


phaeron

Recommended Posts

Is that format documented anywhere? I couldn't find it.

 

It isn't, although it's mainly written by the yw command. The format is pretty basic: header line, section header, and then one label per line. The main difference between this format and other formats is that this one allows setting RWX bits and length on labels. The RWX bits allow overlapping read/write/execute symbols -- this is used in the internal symbols so that the debugger correctly decodes IRQEN vs. IRQST based on context. The length allows the debugger to recognize sized fields so that it can emit INC LABEL+1, for instance. Sadly, the existing development tools are rather undeveloped in emitting this type of information so these features are seldom noticed.

 

 

Link to comment
Share on other sites

 

It isn't, although it's mainly written by the yw command. The format is pretty basic: header line, section header, and then one label per line. The main difference between this format and other formats is that this one allows setting RWX bits and length on labels. The RWX bits allow overlapping read/write/execute symbols -- this is used in the internal symbols so that the debugger correctly decodes IRQEN vs. IRQST based on context. The length allows the debugger to recognize sized fields so that it can emit INC LABEL+1, for instance. Sadly, the existing development tools are rather undeveloped in emitting this type of information so these features are seldom noticed.

 

 

 

Thanks. I'll take a look at the yw command and see how it outputs.

Link to comment
Share on other sites

Alright, time for something a bit different:

 

http://www.virtualdub.org/beta/Altirra-2.70-test20.zip

http://www.virtualdub.org/beta/Altirra-2.70-test20-src.zip

 

The folks at ABBUC were kind enough to send me an XEP80 free of charge, and I've been spending time checking behaviors on it. Thanks to this, I've been able to verify that ALTXEP80.SYS from the Additions disk works on real hardware, as well as do a bunch of testing. Changes:

  • Attributes are now supported in pixel graphics mode. This took me a couple of days to track down as I couldn't figure out why pixel graphics data was getting corrupted. If you've mucked around with the attribute latches, they need to be reset back to $FF before switching to graphics mode, or else you'll get stuff like double width and blink screwing up your graphics.
  • Fixed UART reprogramming. It is possible to reprogram the XEP80's UART to receive at 31.5Kbaud instead of 15.7Kbaud, which speeds up communications a bit. (The xmit direction can also be set to 31.5KHz, but receiving this on the 6502 side is much more difficult.) Attached is a version of the ALTXEP80.SYS handler that reprograms the XEP80 to receive at 31.5Kbaud. Sadly, while 31.5Kbaud operation works on real hardware, I have not been able to get 63Kbaud operation to work. Not sure if this is a software problem or if the signal out the joystick port is just not clean enough for this high of a speed.
  • Vertical scrolling and split-screen in pixel graphics mode are now supported -- the emulator now allows the HOME, BEGD, ENDD, and SROW registers to be reprogrammed.
  • Added emulation for a couple of odd bugs, one being the row increment occurring mid-screen when using pixel graphics mode with the ATASCII character ROMs enabled, and another being an apparent bug with split-screen repeating the first row after the split.
  • Some cursor behavior bugs have been fixed. In particular, the cursor now sweeps properly on screen when you hit ENTER and the line is read in.

The XEP80 is an awkward design, but it's a shame that the stock firmware and handler software underutilize the hardware capabilities. Also attached is a demo program that uses 31.5Kbaud communication, vertical scrolling and split-screen in pixel graphics mode to do a simple River Raid-like scrolling display. Sadly, this takes so much CPU time that actually putting sprites on screen is likely non-viable, so actually making a game with soft-sprites will be left as an exercise for the reader.

 

It's also possible to reprogram the XEP80 to partially fix its whacked video timing, making it more tolerable for current TVs and monitors. Here's an example program to do so:

10 PRINT CHR$(27);CHR$(0);
20 XIO 20,#2,12,246,"E"
30 FOR I=0 TO 7
40 READ X
50 PRINT CHR$(27);CHR$(X);
60 XIO 20,#2,12,247,"E"
70 NEXT I
80 DATA 108,79,82,95,128,28,24,2

This reprograms the XEP80's 60Hz text mode from 10 pixel high characters and 272 scan lines at 16.3KHz to 9 pixel high characters and 262 scan lines at 15.7KHz. It cuts off part of descenders, but the signal is close enough to allow my LCD TV and monitor to lock on, whereas they roll with the stock video timings.

 

XEP80 communication timing isn't very accurate in the emulator yet, as I haven't written the necessary tests yet to check how fast operations occur on the real hardware. Burst mode is the biggest issue as there is a window of time where the XEP80 has received a command but hasn't asserted the busy signal yet. In general the XEP80 is pretty fast at executing commands, though, so this isn't really visible with a standard E: replacement handler -- it's mostly an issue if you are programming the XEP80 directly.

 

 

altxep8f.zip

xepraid.obx

  • Like 7
Link to comment
Share on other sites

Very good emulator! Grew up with C64 and never experienced Atari for 20+ years until this version. Debugger features are what's very pleasing - .pathbreak should be in any dos, nes, snes, (..) debugger.

 

 

I have few questions

 

1) Bounty Bob Strikes Back 5200 - savestates are broken? They're really useful for repeating exact behaviors for debugger.

 

2) Is there an "NTSC RGB" filter like blargg one? In other emulators, it has a nice look (different colors) without much of the blur that comes with full "Composite" filter.

 

3) Coutermeasure 5200 - sometimes when loading states, input gets stuck sometimes? Tank *sometimes* auto-drives diagonally and I can not get joypad to "unsticky" itself.

 

 

I may have more questions after I finish playing a lot more superior Atari 800/2600/5200 versions. :)

Link to comment
Share on other sites

Just a quick check, are you using a real 5200 bios or the built in ATOS 5200 OS (tells you in the top bar..

 

For maximum compatibility I'd use the real 5200.bios rom that's been floating around for ages, you can either scan to a location to add it under System / Firmware / Firmware images or add it manually from the same place..

Link to comment
Share on other sites

Cartridge banking state is not currently saved in save states, which is likely the cause of the issues you are seeing. In general, save states are a big hassle to implement and maintain, and I need to do another pass.

 

"NTSC RGB" is a contradiction; the artifacting that occurs over a composite connection can't occur with a component RGB connection. Altirra has many options for controlling the filtering of the display as well as two levels of artifacting, but I'm not too keen on implementing an "NTSC" mode that produces artifacts that aren't actually related to the way that composite video works. The recommended settings are sharp bilinear filter if artifacting is off, and regular bilinear + NTSC high artifacting if you want color artifacts.

Link to comment
Share on other sites

Has anyone else had a problem with the caps lock in Altirra 2.6? Whether it's on or off when I start Altirra, when I use the caps lock key subsequent keystrokes become lower case and the lock acts like a shift key. This happens with all keyboard options, and for as long as that instance of Altirra is active. Version 2.5 seems to do the same thing, but I haven't tried all options.

Link to comment
Share on other sites

That's intentional. On the real Atari, CAPS is a shiftable key, not a toggle key. Caps Lock starts out on when the OS boots, pressing CAPS by itself turns off Caps Lock, and pressing Shift+CAPS turns it on. Altirra reinterprets the Caps Lock key on the PC to act the same way.

  • Like 2
Link to comment
Share on other sites

Running 5200 image of Archon

http://atariage.com/forums/topic/240883-archon-for-atari-5200/?do=findComment&comment=3285500

 

 

Unable to get a 2P game running because (I think) Dark side is controlled by port2 joystick.

 

I can't test on real hardware, but this looks like an issue with the conversion. Port 2 controller works for movement and keypad keys for second player, but the trigger is not read -- the code reads TRIG1 but fails to store it in $0285. If I drive that location from the debugger it works.

Link to comment
Share on other sites

That's intentional. On the real Atari, CAPS is a shiftable key, not a toggle key. Caps Lock starts out on when the OS boots, pressing CAPS by itself turns off Caps Lock, and pressing Shift+CAPS turns it on. Altirra reinterprets the Caps Lock key on the PC to act the same way.

I'm confused. On my real Atari (130 XE) the Caps key is a toggle. Default is upper case, hitting Caps switches the letter keys to lower case. Tapping it again switches back to upper. I don't really care one way or the other, I just didn't know how to turn upper case back on short of restarting Altirra.

Link to comment
Share on other sites

Oops, you're right, it does also work as a toggle on the XL/XE OS. OS-B doesn't. Hmm, I need to fix this in AltirraOS.

 

In any case, whether the CAPS button toggles or not is fully up to software -- it's not like the PC where the keyboard controller has some notion of a caps toggle and drives an LED. On the Atari, the CAPS key is reported by the hardware like any other key. Since Altirra doesn't know whether the OS handles it as a toggle or what the state of that toggle might be, it needs to push the CAPS key through as a regular up/down key. I had to implement special logic to handle this because the state of the caps lock in the emulation would get out of sync with the PC state and you'd get Caps Lock enabled on other programs when you switched out of the emulator, which was really annoying.

  • Like 2
Link to comment
Share on other sites

I would actually prefer being able to designate a separate key as the Altirra caps lock, keeping it completely separate from the PC caps lock state (I never use caps lock on the PC, so I map that key to ctrl instead).

 

Ok, I may be weird, but since the Atari has caps lock on by default and needs to toggle it to type lowercase keys, it doesn't map well to the PC caps lock state anyway, and the unusual 400/800 "shift lock" behaviour makes it even less of a match.

Link to comment
Share on other sites

It had occurred to me that there might be a difference in the way the O.S.'s handle Caps. Not a high priority, given all the other stuff you're doing to improve Altirra. My PC is a little notebook and the compressed keyboard makes it easy to hit the caps lock instead of left shift. Now that I know how to recover I'm a happy camper.

Link to comment
Share on other sites

Recently upgraded from Win 7 Home Premium x64 (from x86) and noticed the display window turning white from time to time (usually once after first launching the emulator then going off and doing other stuff), and a couple of times I couldn't get it back and had to restart Altirra. I'd experienced this with the 32 bit OS but only after the machine had been asleep (I remember some discussion of the wake-up issue at the time). Not really a big deal unless I lose the display in the middle of a CPU history trace, etc. Should I try different Direct3D options? The machine is a socket FM1 AMD with an HD5670 discreet gfx card.

Link to comment
Share on other sites

Recently upgraded from Win 7 Home Premium x64 (from x86) and noticed the display window turning white from time to time (usually once after first launching the emulator then going off and doing other stuff), and a couple of times I couldn't get it back and had to restart Altirra. I'd experienced this with the 32 bit OS but only after the machine had been asleep (I remember some discussion of the wake-up issue at the time). Not really a big deal unless I lose the display in the middle of a CPU history trace, etc. Should I try different Direct3D options? The machine is a socket FM1 AMD with an HD5670 discreet gfx card.

 

Did you upgrade to "Windows 10" FJC?

Link to comment
Share on other sites

While playing with code of the unreleased HARD source code archive I again run into the issue with the non-working breakpoint settings with Altirra & WUDSN IDE & MADS. Most of you are aware that you can set breakpoints with Mouse in your source code and Altirra stops automaticly at source code level in the debugger....

 

but while coding and releasing stuff few months ago I run into the issue that that feature did not work anymore and Jac and I tried to localise but we did not found any rule when it happens and when not... Old source of mine worked while fex. Planet 5200 and newer releases did not work again with breakpoints...

 

Now as I am working since months with the HARD source code archive I run into same issue.... every converted source did not show the breakpoints in Altirra even it was exported correctly...

 

out of the blue (could be the beers & wodka I had yesterday) I thought maybe some in the toolchain does not like long nested folder structures and I removed source code to the same level where it worked before... and tata... breakpoints worked again...

 

so... I am not sure who is the bad guy to fix that... MADS or Altirra?

  • Like 1
Link to comment
Share on other sites

On the display turning white -- this typically means that the display code has hit a display API error that it wasn't able to recover from. Try switching to the Direct3D 11 display driver in Options and see if you get any different behavior. I may have to put in logging for this. Note that there is a known issue where this can occur when you first enter the debugger or do something else while the emulator is paused that causes a mode switch -- the display code occasionally forgets to refresh the display. This shouldn't happen while the emulation is running, though.

 

Regarding the source level debugging, that typically means that Altirra is having trouble parsing the listing file. Open the source file in the debugger and see what lines are highlighted -- if there is source line lookup for the file, it'll gray out the lines that aren't mapped to instructions. Afterward, check the corresponding spot in the listing to see if something is weird there. Failure to map source lines to object code typically means either that the debugger lost track of the file stack in nested includes or wasn't able to parse specific lines in the file. Also, if you haven't already, make sure you are using the latest MADS as some older versions had a bug where they would fail to re-emit the file header after exiting a nested included file, which confused Altirra's listing parser.

Link to comment
Share on other sites

Will Altirra work on Window 10 Professional or Edition OS ?

 

Yes, I have been testing Altirra on Windows 10 during the entire Insider Preview program, and it works fine on RTM build 10240. Didn't see any problems, except in one build when Microsoft broke all 3D programs.

 

The one issue you'll run into is that the Set File Association button in Options, which used to bring up the Set File Associations dialog, now brings up a totally unhelpful dialog telling you to manually open a subpanel in Settings. This is due to a dumb change in the file associations API that kneecaps all programs that were doing file associations by the book and all complaints should be directed to Microsoft. The best I can to is to open up Settings to the file associations dialog, but you'll still have to manually scroll down to the file types link and then find Altirra in the programs list. Alternatively, you can manually navigate to Set File Associations in Control Panel.

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