Current version

v1.10.4 (stable)


Main page
Archived news
Plugin SDK
Knowledge base
Contact info
Other projects



01 Dec - 31 Dec 2013
01 Oct - 31 Oct 2013
01 Aug - 31 Aug 2013
01 May - 31 May 2013
01 Mar - 31 Mar 2013
01 Feb - 29 Feb 2013
01 Dec - 31 Dec 2012
01 Nov - 30 Nov 2012
01 Oct - 31 Oct 2012
01 Sep - 30 Sep 2012
01 Aug - 31 Aug 2012
01 June - 30 June 2012
01 May - 31 May 2012
01 Apr - 30 Apr 2012
01 Dec - 31 Dec 2011
01 Nov - 30 Nov 2011
01 Oct - 31 Oct 2011
01 Sep - 30 Sep 2011
01 Aug - 31 Aug 2011
01 Jul - 31 Jul 2011
01 June - 30 June 2011
01 May - 31 May 2011
01 Apr - 30 Apr 2011
01 Mar - 31 Mar 2011
01 Feb - 29 Feb 2011
01 Jan - 31 Jan 2011
01 Dec - 31 Dec 2010
01 Nov - 30 Nov 2010
01 Oct - 31 Oct 2010
01 Sep - 30 Sep 2010
01 Aug - 31 Aug 2010
01 Jul - 31 Jul 2010
01 June - 30 June 2010
01 May - 31 May 2010
01 Apr - 30 Apr 2010
01 Mar - 31 Mar 2010
01 Feb - 29 Feb 2010
01 Jan - 31 Jan 2010
01 Dec - 31 Dec 2009
01 Nov - 30 Nov 2009
01 Oct - 31 Oct 2009
01 Sep - 30 Sep 2009
01 Aug - 31 Aug 2009
01 Jul - 31 Jul 2009
01 June - 30 June 2009
01 May - 31 May 2009
01 Apr - 30 Apr 2009
01 Mar - 31 Mar 2009
01 Feb - 29 Feb 2009
01 Jan - 31 Jan 2009
01 Dec - 31 Dec 2008
01 Nov - 30 Nov 2008
01 Oct - 31 Oct 2008
01 Sep - 30 Sep 2008
01 Aug - 31 Aug 2008
01 Jul - 31 Jul 2008
01 June - 30 June 2008
01 May - 31 May 2008
01 Apr - 30 Apr 2008
01 Mar - 31 Mar 2008
01 Feb - 29 Feb 2008
01 Jan - 31 Jan 2008
01 Dec - 31 Dec 2007
01 Nov - 30 Nov 2007
01 Oct - 31 Oct 2007
01 Sep - 30 Sep 2007
01 Aug - 31 Aug 2007
01 Jul - 31 Jul 2007
01 June - 30 June 2007
01 May - 31 May 2007
01 Apr - 30 Apr 2007
01 Mar - 31 Mar 2007
01 Feb - 29 Feb 2007
01 Jan - 31 Jan 2007
01 Dec - 31 Dec 2006
01 Nov - 30 Nov 2006
01 Oct - 31 Oct 2006
01 Sep - 30 Sep 2006
01 Aug - 31 Aug 2006
01 Jul - 31 Jul 2006
01 June - 30 June 2006
01 May - 31 May 2006
01 Apr - 30 Apr 2006
01 Mar - 31 Mar 2006
01 Feb - 29 Feb 2006
01 Jan - 31 Jan 2006
01 Dec - 31 Dec 2005
01 Nov - 30 Nov 2005
01 Oct - 31 Oct 2005
01 Sep - 30 Sep 2005
01 Aug - 31 Aug 2005
01 Jul - 31 Jul 2005
01 June - 30 June 2005
01 May - 31 May 2005
01 Apr - 30 Apr 2005
01 Mar - 31 Mar 2005
01 Feb - 29 Feb 2005
01 Jan - 31 Jan 2005
01 Dec - 31 Dec 2004
01 Nov - 30 Nov 2004
01 Oct - 31 Oct 2004
01 Sep - 30 Sep 2004
01 Aug - 31 Aug 2004


Powered by Pivot  
XML: RSS feed 
XML: Atom feed 

§ Altirra 1.3 released

I've released a new version of Altirra, my Atari 8-bit computer emulator. Version 1.3 contains a large number of compatibility fixes and runs a number of titles that previously blew up under 1.2. I'd like to thank Mclane and breaker for an astounding amount of compatibility testing in a comment thread of epic proportions, which tracked down many, many games and programs that did not run correctly and helped immensely in identifying and ironing out bugs.

One of the weirder aspects of doing work on this project is that it's probably the closest I've come to doing Test Driven Development. TDD is not something I'm generally sold on because I think there are lots of types of modules for which tests are not the appropriate way to ground development. In this case, though, I need to conform to a behavior that is (a) rigidly defined and testable and (b) frequently unknown. What I often end up doing is writing a unit test to determine the behavior on a real 800XL, and then tweaking the emulation code until the test passes. I have to do things this way because the emulation code is now operating at a level where it's very easy to break some programs while trying to fix others since some programs are sensitive to single-cycle timing deviations.

Another thing that's becoming abundantly clear is how difficult it would have been for Atari to create a more powerful machine with a high level of backwards compatibility. I've been finding an increasing number of programs that happen to work but have extremely tight timing margins or simply have outright bugs. I've seen programs that:

So, if you're wondering why your powerful next-gen console can't reliably run your last-gen games, now you have some idea why. When you have stable and consistent hardware, it's easier for people to unintentially write code that relies on unspecified behavior to an extreme level.

Oh, and I'll say it again: cassette tape is vile. I hated it growing up and I hate it even more now that I'm trying to emulate it. You should offer thanks every night that you no longer have to wait minutes for a program to load off of tape.

Anyway, here's the list of changes since version 1.2:

Version 1.3 [September 4, 2009]:
   [features added]
   * Debugger: Register pane now shows 65C816 state.
   * Debugger: Added context menu to disassembly pane.
   * Debugger: *.lst and *.lab symbols are automatically detected and loaded
for direct-run EXEs and cartridges. * Debugger: Improved source-level debugging capability. * Debugger: Opcodes are now cached so that they show correctly in the history
log even with bank switching. * UI: Filter mode is now saved on exit. * UI: Added command to copy current frame to the clipboard. * UI: Added paddle support. * GTIA: Optimized artifacting code. * GTIA: Added the ability to disable collisions for cheating. * Cartridge: Added support for 64K XEGS and 512K MegaCart cartridge types. * Cartridge: Added support for SuperCharger 3D cartridge. * Cassette: Added support for non-standard baud rates. * Cassette: Added auto-boot option. * Cassette: Device open commands are now accelerated. [bugs fixed] * Simulator: More fixes to executable loader. * Simulator: 320K memory mode now banks ANTIC along with the CPU. * Simulator: Joystick and bank switch masking via the PIA data direction
register is now supported. * Simulator: Rewrote BASIC handling to use the OPTION switch rather than
masking PORTB bit 1. * Simulator: Reset PIA, ANTIC, and CPU on warm reset for XL hardware. * Simulator: Self-test ROM no longer appears if kernel ROM is disabled. * Simulator: Adjusted PAL frame rate. * Simulator: Disk boot flag is now set when loading EXEs to accommodate
programs that warm start through DOSINI vector. * Simulator: EXE loader is more tolerant of broken files. * CPU: Fixed many 65C02/65C816 bugs. * CPU: Fixed emulation of NMOS 6502 decimal mode. * CPU: Fixed bugs in undocumented instructions. * CPU: Fixed emulation crash when switching to 65C816 on the fly. * CPU: Fixed handling of break flag. * CPU: Now allow one instruction to pass before taking IRQ interrupt after
clearing I flag. * Debugger: Improved handling of 65C816 modes in disassembler. * Debugger: Debug memory reads no longer see $FF in the page where a read
memory breakpoint is set. * Debugger: Fixed bugs in symbol parser when loading MADS listings. * Debugger: Fixed line highlighting in source windows. * Debugger: Disassembly recomputes on 65C816 mode changes. * Disk: Fixed bug in loading of ATR files that have non-standard boot sector
counts. * Disk: Additional compatibility fixes to DSKINV acceleration. * Disk: Status commands are no longer delayed by the accurate disk timing
option. * Disk: Applied slight adjustment to SIO transfer rate. * Disk: POKEY timers are now shut off after SIO/DSKINV acceleration. * Disk: Strengthened disk image format validation and made XFD loading more
tolerant. * UI: Fixed bug in CPU mode dialog that prevented selection of 65C02 mode. * UI: Fixed crash when accessing menu with display pane closed. * UI: Keyboard-as-joystick logic no longer allows simultaneous up+down and
left+right. * UI: Added support for controlling joystick port 2. * UI: Blocked invalid machine configurations with XL kernel and 800 hardware or
less than 64K of memory. * ANTIC: Fixed broken mode 9. * ANTIC: Vertical reflect now works on modes 4-7. * ANTIC: Player/missile DMA no longer occurs during vertical blank. * ANTIC: Fixed behavior of vertical scrolling on blank lines. * ANTIC: Changes in playfield width are now supported later in a scan line. * ANTIC: Moved VCOUNT advance forward by one cycle. * ANTIC: NMIs are now suppressed if enabled too close to trigger point. * ANTIC: NMIs are now delayed by one cycle if enabled exactly on cycle 8. * GTIA: Bogus missile-player collisions were reported if a register change
occurred in the middle of a missile. * GTIA: Fixed CONSOL I/O interactions on switch lines. * GTIA: Save states now restore player/missile widths. * HLE: DSKINV now supports double-density disks. * HLE: Improved compatibility of post-init PORTB state. * POKEY: Rewrote resampling filter to better block high frequencies. * POKEY: Fixed 17-bit noise register polynomial and shift direction. * POKEY: Initialization mode (SKCTL[1:0] == 0) now resets the low-speed clocks
and polynomial shift registers. * POKEY: Asynchronous serial receive mode no longer suspends channels 3 and 4.


Comments posted:

You really should read some of the stuff from the author of the bsnes Super Nintendo emulator. His goal was to make his emulator as cycle accurate as possible. He encountered a lot of the same things you're finding, particularly with buggy software that relies on undocumented hardware behavior. He did a lot of writing test cases and running them on real hardware specifically to find the weird edge cases that caused timing problems and crashes in his emulator.

Unfortunately, he didn't document it with a blog, he started on a single thread on the ZSNES emulator forum and the thread eventually reached well over 100 pages with god only knows how many individual posts. Sadly, the original thread no longer exists. I hope someone has an archived copy somewhere. If it was edited down, it would probably make an interesting book. He eventually created his own site and message boards and some of the recent development is documented. Here's one of the more interesting articles....

krick (link) - 04 09 09 - 19:18

Nintendo solved the backwards compatability problem in their handhelds by cheating: the Gameboy Advance uses an ARM7 if I remember rightly, but also contains whatever CPU the original Gameboy uses along with enough hardware to natively run old games (there's a switch in the cartridge slot that chooses which hardware set is powered based on the cartridge keying). Similarly, the DS contains both an ARM9 and an ARM7.

Torkell (link) - 04 09 09 - 21:33

Yeah, I've heard of bsnes. Actually, the ZSNES guys had already encountered some of the same issues -- the scariest story that I heard was a game which relied on the middle address byte of a bogus jump being held on the floating multiplexed address/data bus and just happening to push an RTS back into the CPU. That's the kind of thing that's a nightmare, not because it's complex in theory, but because it's hard to fit in without really compromising speed.

As for Nintendo's tack, yes, that sort of works, but it's expensive... and IIRC, they still got burned by carts that didn't physically fit.

Phaeron - 04 09 09 - 22:08

Hi, I love this emulator. I'm having more fun recently playing old games than new ones. I have been using a different Atari emulator, but the controls to fake a joystick with keyboard on it are poorly laid out and I don't know how to change them

Your control layout is much better.

However! I was using version 1.3, and I must have done something because now the screen will not display at all, except occasionally in debug mode. I can't figure out how to fix it. I found some settings your programme used in the registery and I'm considering deleting them in hope it will reset everything. But I'm not a computer expert and messing with registry settings always worries me.

-OOPSIE- - 05 09 09 - 23:47

This is coming on nicely! Great work
Just wondering about the Basic, Option key changes. From what I can gather the Option key is always automatically on now when starting a disk or cart? Unless I'm misunderstanding something, this isn't a great idea for AtariMax carts, as holding the option key is to boot the flash programming disk image and flash the cart rather than just running the cart.

sheddy - 10 09 09 - 11:27

If the BASIC option is not checked, then Altirra will hold the OPTION line low until five vertical blank interrupts have passed. This is the only safe way to disable BASIC, because there are games that depend on you booting them with BASIC enabled and then purposely enable and use the BASIC ROM via the PORTB register. If the BASIC option is checked, then the Option key is not pressed.

As for AtariMax carts, that's an unfortunate mechanism, but I don't believe it will be a problem for two reasons. One, this is an emulator, so you can't flash anything. Two, you'd have to have the AtariMax flasher program in order to get into this situation. I don't believe this is included when you mount an AtariMax compatible cartridge image, so you're not actually running that code. Worst case, you just enable the BASIC option.

Phaeron - 10 09 09 - 15:09

I can see your logic, but 1MB AtariMax carts still don't work with Basic enabled in Altirra either. They just hang rather than not boot :-(
Initial thought is they must be checking PORTB somewhere to see if Basic is enabled as well as the Option key (although I couldn't see that on a quick look through). Maybe it's just me, but no 1MB AtariMax carts seem to work on Altirra! I can post you some cart bins if you'd like. The cart boot code is generated by the AtariMax utility software scripts so most of them are going to have the same problem I guess.

sheddy - 11 09 09 - 00:43

Should have added that they are working OK in Altirra 1.2

sheddy - 11 09 09 - 00:52

...but not with Basic enabled

sheddy - 11 09 09 - 00:56

Phaeron, thanks for 1.4pre 2 :)
But, I have found out one annoying error.
At an exit from Full Screen a mode the emulator hangs.
That he has again earned it is necessary to press two times an emulator badge in the panel windows.

Very much I wait in following release of changes:

1) additional options joystick №1 and №2 (I hope I will wait sometime)

2) save states (not Quick save)

3) support of files DCM and BAS.

4) OS-A and possibility to load others OS.

5) automatic cold reset at loading of files through menu File-> Open Image (too it is very desirable)

breaker - 13 09 09 - 16:14

Please do not repeat yourself unnecessarily. I have deleted the duplicate comment in the other thread.

As for 1.4 pre-2, you weren't supposed to grab that. :) That was a build that I posted for someone else to verify a couple of cartridge changes. The near-hang exiting full-screen mode was caused by some window handling changes I put in to try to resolve the full screen windowing problems. This version should have better behavior:

Tested on XP SP3 and Windows 7 RC. It also has switches for forcing GDI (/gdi) or DirectDraw (/ddraw) display mode. Couldn't reproduce the joystick issues that someone reported, though.

Phaeron - 13 09 09 - 17:55

Forgive, I simply did not know where to leave the message, in other branch of messages it is a lot of.

And what has changed with cartridges?
I have checked up these 11 images:

Air Wolf_Monkey Magic_Moon Patrol_Sea Dragon_Spiky Harold_Milk Race_Rally Speedway
Mean 18 (v1).rom
Mean 18 (v2).rom
MIDI Maze.rom
One Moon And Two Suns (demo, v1).rom
One Moon And Two Suns (demo, v2).rom
Leo's ' Lectric Paintbrush.rom - not work management.
Letter Tutor.rom - not work management.
Karateka.rom - not work.

Changes any as there were errors and remained. :(

breaker - 13 09 09 - 18:37

All changes are always documented under Help > Changelog.

None of the cartridge fixes apply to those cartridges. The problem with those cartridge images is that they have no header, and therefore Altirra cannot determine the correct mapper to use.

Phaeron - 13 09 09 - 18:50

1.4 pre-3 contains a regression in the player/missile rendering along the left side. This version has a fix:

Phaeron - 14 09 09 - 16:55

Phaeron, thanks, and especially thanks for drag n drop, but I waited for another.
Add please automatic cold reset at loading of files through menu File-> Open Image.
This function is very necessary.
To me very much prevents each time to do reset at loading of files.
please, please, please !!!

breaker - 14 09 09 - 19:00

Still cant run any version of Bounty Bob :(

hardmanm - 14 09 09 - 19:55

This one works just fine

Mclane - 14 09 09 - 20:30

Very odd, posted 2 messages and both deleted?

Last try, found this demo and it's crashing, works fine on Win plus...It really is getting to a point when you find a file that dies. Loved the drag and drop, thank you.

Dunno if it's a bug but the Hardware and Firmware sometimes mix and match when swapping, ie you get 800 Hardware but the firmware is on 600/800XL, I thought they would be swapped in tandem?

Mclane - 15 09 09 - 04:18

Someone tell me if I am stupid but how do you alter memory under Altirra, I've found a bad instruction and I just wanted to nop it as a test. But looking at the debug stuff I can look at mem but not adjust?

Am I totally missing something or just daft :)

Mclane - 15 09 09 - 22:39

I managed to get Bounty Bob working by deleating the altirra registry settings. It might be a better idea to store config setting in an .ini or config file rather than the registry. It seems bugs in the registry settings are inherited in newer versions because they use the old settings.

hardmanm - 16 09 09 - 07:08

Wow! Just found this emu and am quite impressed! I hope you continue to update this in the future -- it's so good! Oh, just a quick question: On every emu I have, the analog controller is automatically supported once you set your input to joystick. I'm using a 360 controller, and I can only use the directional pad (digital) when playing games in Altirram as opposed to the left analog stick. After using analog for years, it's a bit hard to go back to a flat pad. Thanks for your efforts!

JCat - 16 09 09 - 10:34

I don't recall deleting any of your messages, but forgive me if I did.

800 OS-B firmware + XL/XE hardware is a valid combination -- it results on real hardware if you run the Translator disk. I only blocked the XL/XE firmware + 800 hardware combo, as that's definitely bogus and won't work. I might combine the hardware and firmware options at some point but I haven't gotten around to doing it.

To alter memory in Altirra, you need to use the e command, i.e. e 297c ea. You can't currently modify memory via the memory pane, since it's currently based on a text edit box instead of a custom widget.

I'll check the demo.

Sorry, not going to use a config file (already gone over this argument with VirtualDub and I'm not changing Altirra for the same reasons). Besides, if it's because of stale settings, the exact same thing would happen with a config file, as long as both are being treated as property sets. I can't think of what might have changed that would cause this, though. The only thing I can think of is that older versions of Altirra defaulted to the low-level emulation (LLE) kernel, and current versions default to the high-level emulation (HLE) kernel instead. I could believe the LLE kernel not being able to run Bounty Bob, as I haven't backported many of the compatibility fixes I did in the HLE kernel.

Might be able to stick this in (pun unintended).

Phaeron - 16 09 09 - 16:05

@phaeron, thanks re the editor help, it's the only command you don't mention in the help in the debugger :)

Re Bounty Bob, I found several rips that worked fine under XL etc but I tend to not use the HLE and I don't know how far it mirrors a real OS as yet, obviously I'd love to use the HLE 100% for the performance issues.

Think I found out why the messages went missing...

I caught myself posting without a a name to the post yesterday, I suspect the messages appear to get thru but are not valid so get removed.

Mclane - 16 09 09 - 22:09

Oops, meant to ask, sometimes you get spurious data normally on the right hand extreme border of the screen but it can happen on both sides. Normally it's on interlaced images (not looked in full screen)but programs like Ballblazer also suffer on both sides. It's like the use of the borders has a bug but many others use the borders fine. I've also noticed mostly on demo's where a display list colour bar that again hits the right hand border suffers from a couple of 1 or two pixel drop compare to the whole bar.

Mclane - 16 09 09 - 22:31

World championship Karate also shows the above feature..Just so you have a couple of reference points.

Mclane - 16 09 09 - 22:45

It's funny that you mention the no-name problem -- I did the exact same thing yesterday. :)

The artifact on the sides is caused by programs that use a wide playfield. The wide playfield is 192 color clocks wide, but only 176 clocks are displayed. The remaining space on the left and right borders are the background color. You sometimes get funny effects because programs use colors such that what looks like the background is actually a playfield color, and thus you get what looks like an odd stripe on the side.

Whether or not you can see the borders on a real TV is a different story. On my monitor with video input, I can see a bit of the border on the left in Ballblazer, but not the right side. Altirra shows the entire visible area to horizontal and vertical blank ($22-DD); this is a bit large compared to the playfield, but you can have visible sprites in the border region. Atari800Win only shows the displayed playfield region, which is a bit narrower.

Phaeron - 17 09 09 - 17:09

Ah, so you are basing on what a real TV may or may not see as regards the display, maybe it might be an idea to allow a choice re the screen display to allow a Atari800win down sized display just for people who don't like the extended sometime garbaged display. I've seen many programs who actually use the whole display visible or not, I would imagine by what you say it's more by accident than choice.

Other than that it's looking real good and I look forward to your next beta..

Mclane - 17 09 09 - 20:18

I have found a strange error in game Boulder dash.
This error is appreciable only in the emulator altirra.
In atari800winplus 4.0 these errors are not present.
If the person in game moves upwards or downwards and thus the screen on a vertical moves, it is possible to notice an error.
The earth against game at screen movement twitches.

Whether it is possible to correct it?
I have laid out video photographed with both emulators.

breaker - 17 09 09 - 22:24

Odd bug I'm trying to recreate, after dropping CAS files at time when you try and load another file type the emulator refuses to acknowledge the new image and just keeps on reloading the same cas image, the only way to stop it is to close Altirra down. Once it's in that cycle it does not matter if you drag n drop or normally load the image and do a cold start, the emu just runs the same cas file.

Mclane - 18 09 09 - 02:05

The shimmering effect in the Boulder Dash video occurs because you have the filtering mode set to Point and because the window size is not exactly 100% or 200% of the real size. This effect is why I don't recommend using Point sampling display mode. It doesn't occur in Atari800Win because that emulator only lets you use exactly 100% or 200% zoom in Windowed mode (which is one of the most annoying things about that emulator).

This happens because the Load Image command doesn't unbind any other images and there is no way to ever unload a cassette. I'm considering adding a separate Boot Image command to make things easier.

Phaeron - 18 09 09 - 16:56

New test version is up:

The main change you might be interested in is that I went and filled out the rest of the keyboard; the main keys missing now are F1-F4 and Ctrl+Esc/Ctrl+Shift+Esc. I also did a major rework of the GTIA back end renderer so that P/M graphics timing is much closer to cycle exact and fixed a number of problems that were preventing some VAPI images from booting. Finally, you can now unbind tapes. :)

Phaeron - 20 09 09 - 13:41

Hi Phaeron, thanks for the update..

Here's an odd one for you, first time I've seen this in the emulator, the demo uses OPTION SELECT AND START but for some reason they don't work. Does work on ATARI800Win..

Re the windowed screen, I love you can resize to a choice which is great but any chance of some default perfect percentage sizes as well, would just save twiddly to get rid of malformed characters.

Mclane - 20 09 09 - 21:26

Hi Phaeron, a friend suggested that you show the beta name / number in the about box..

Mclane - 21 09 09 - 04:56

The music program on that disk image is relying on input bit 3 of CONSOL to be set. It's normally cleared because the OS writes 8, but this app writes 0 and Altirra isn't emulating that properly. Easy fix, though.

Phaeron - 21 09 09 - 18:07

Any chance of getting cas files with basic programs to autoboot, at the moment they dont work without turning autoboot off and manuly typing cload. Are you working on improving the joystick emulation to included selecting joysticks and joypads configured in windows like Atari800win, and also cassete controls like rewind etc.

So far you have done an excellant job

hardmam - 21 09 09 - 19:35

Hi Phaeron, was interested in why you choose only certain images to auto reboot, why not ATR's etc

Mclane - 21 09 09 - 20:15

The only image types that force a reboot are the ones that require a reboot to work: com/exe/xex and cartridge. They are also the types that are not generally hot swappable. Okay, you could hot swap cartridges, but the XL/XE ROM locks up intentionally if it sees this, and I once damaged a C-16 that way. The behavior of not rebooting on a disk load is sometimes useful when you have to switch disks -- I almost never go to the disk drive dialog.

I can't/won't comment on when non-trivial features will arrive. You'll see them when they are put in.

Phaeron - 21 09 09 - 20:27

Phaeron, please do not feel like anyone is pressuring into making comments on items, I realise you read the blog and any suggestions are based upon you deciding or not to implement them, I for one am over the moon that you have taken on the task of making a great emulator and in no way would I try and make it a a pain for you.

For me the emulation quality always comes first before any eye candy, so if we see these fun bits then fine, my job is to see what breaks the emulator based upon real hardware.

So if there are any surprises for us then great..

Mclane - 21 09 09 - 21:28

Phaeron, I do not know than it is not pleasant to you auto reboot, but I seem have found the decision which it will be pleasant to all.
Add an option to include \switch off auto reboot to whom it is necessary will include, to whom it is not necessary will switch off. :)

And now about errors.

vapi game Mr. Do!.atx
If the hero comes under an apple game starts to work incorrectly.

Bounty Bob Strikes Back! (v1).xex
Bounty Bob Strikes Back! (v2).xex
Bounty Bob Strikes Back! (v3).xex
not work.

breaker - 22 09 09 - 13:26

>vapi game Mr. Do!.atx
>If the hero comes under an apple game starts to work incorrectly.

You must have SIO patch unticked and accurate sector timing ticked.

What you are getting is it booting and failing the disk protection check, it allows the game to run but not play correctly. If you do the above it works properly but takes a while to boot.

>Bounty Bob Strikes Back! (v1).xex
>Bounty Bob Strikes Back! (v2).xex
>Bounty Bob Strikes Back! (v3).xex
>not work.

Not sure what you mean by not work, they all boot up fine for me and seem to play ok, Must be XL and at least 64K memory as the original cart was from memory (no pun intended) a banked 64K cart.

v1 does take ages to run after the DL screen, about 10 secs or so, I'm assuming it's unpacking the game at that point. The others run fine...

Mclane - 22 09 09 - 19:41

As usual, it's not that simple.

The issue with Mr Do! is probably a timing issue, but it's worth noting that its loader appears to be slightly buggy on XL/XE firmware. In particular, it loads on top of the cartridge check bytes as part of the load. Normally this happens to work because stage 2 VBLANK is disabled during SIO transfers, but it is possible for a VBI to fire in between sector loads and hang the machine due to the kernel cartridge pull check, and this is more likely with the SIO patch enabled. I wouldn't be surprised if there wasn't some other issue. The loader code in some of these programs is really unbelievable.

As for Bounty Bob, there's a trick. It's not that you need at least 64K memory, you need EXACTLY 64K of memory. Some versions twiddle bits in PORTB such that they accidentally enable extended banks on 128K+ configurations, leading to a crash.

Phaeron - 22 09 09 - 20:16

Oh, and the truth all has earned :)
I after all usually used in altirra 320kb memories.

And what about my idea with autostart?
Whether also it is possible to hope for support addition *.DCM?

breaker - 22 09 09 - 20:39

/Mclane slaps Phaeron with a kipper...

Okay okay, I didn't know the exact answer 100% :) re Mr Do but it does need the accurate sector timing so I presume it's a mater of timing and I do seem to remember some protection checks did rely on sector reading timing.

A question about Bounty Bob, I was chatting to a mate and we were fairly well into the Atari scene and both of us had 130XE's, mine was a multi OS switched one but we both remember Bounty Bob working via disk on our systems and don't remember having to run a utility to play it?

Am I losing my marbles?

Mclane - 22 09 09 - 22:24

@Breaker...Remember it's not broken unless you try all the standard machine configurations :)

320k is not a standard that any game company ever wrote for so I rule that out for pretty much all commercial game products.

Mclane - 22 09 09 - 22:38

Aha...there was a hacked version of Bounty Bob for the XE's

Mclane - 22 09 09 - 22:53

Mclane: Excellent guess. The loader for Mr. Do! installs a custom VBI handler that counts vblanks during a section of the load. This causes the game to malfunction when SIO patch is enabled because in that case the sector load is instantaneous.

Phaeron - 26 09 09 - 12:41

See, not just a pretty face......

I wonder what the potential difference in Atari drives was re their read speed, with the emu it must be accurate timing or it fails the check so I wonder how much of an allowance for slightly old off speed drives etc.

Mclane - 26 09 09 - 23:46

Oops, no smiley after the first line..

Mclane - 26 09 09 - 23:51

I have uploaded a beta version of the latest version of the gamebase, it is a work in progress. It is a lite version and contains no extras, the final version will have everything included, it is about 200MB in size and includeds lots of new games and conatins the whole of the Homesoft compilation collection, yes all 361 disks.

The main new feature is the inclusion of the excellent Altirra. I have included the latest beta version pre14.5.


(link removed)

hardmanm - 27 09 09 - 08:07

Sorry, but I had to remove your link -- I'm afraid that I can't support distribution of Altirra with game collections for various reasons.

Phaeron - 27 09 09 - 09:40

Any new Beta's available soon?

hardmanm - 30 09 09 - 07:13

There are games that failed to run on an Atari XF551 drive because that drive spun at 300RPM instead of the 288RPM used by the original 810.

Hadn't planned on putting a new one out, but what the heck, here are some fresh bits. Parts might be a bit raw, as I don't know if it cooked enough:

This version contains some tweaks to the disk code that appear to make all remaining VAPI images that I have load successfully. The timing delay seems a bit long, though, so I may have to go back and do another pass. The SIO patch code has also been updated to support more of the dumb things that some programs do (like rely on the carry bit), which means that more protected loaders will now turbo boot. The main ones that don't are the ones that do timing checks, which are hard to deal with.

It also contains a number of improvements to POKEY (sound) emulation. The big change is the addition of non-linear mixing, which makes everything sound more compressed. I also tweaked the high-pass filter to match recorded waveforms from my 800XL and added missing channel 1/2 inversion, which may help the quality of some demos that were using subtractive mixing effects. I had to lower the master gain to fix some clipping problems, so this version may be a bit soft.

There's also an audio recording facility I added for debugging purposes, but it writes out raw float data at 63920Hz, and the output appears a bit distorted compared to real Atari output due to the IIR filter I use to prevent aliasing when I resample to 22KHz for live output (the write tap is between the high-pass/IIR filter and the dynamic resampler).

Phaeron - 30 09 09 - 20:28

Thanks for the new build of the emulator, sound simply magnificent.
Not clearly only what for to keep a sound in *.PCM, really it was impossible to make preservation in *.WAV?
Whether video preservation will be then added?

phaeron, very much I ask, please, add in the emulator automatic cold reset at loading of files.
I spread a file which have drawn, would be very glad if you make so. :)

breaker - 01 10 09 - 16:24

Turns out I screwed up the non-linear mixing slightly, which is fixed in this version. I've also restored the old sound volume and also added missing support for "force break" mode on the serial port (which, amusingly, is used by some music routines).

I also went and hacked in the Boot Image command, which unbinds existing images and always does a cold reboot. That means you can use Boot Image to launch a game and then Open Image to swap disks.

The audio recording feature was only added so I could debug the sound emulation, but I left it in because it might be useful. Adding real recording would require more work, and I'm guessing you'd rather have the input system revamped first. :)

Phaeron - 01 10 09 - 19:38

thanks phaeron, I waited a very long time autoreboot, without this function is very difficult to verify a lot of images.

would like to ask for a few small additions to the Full screen mode.
pause button (as in atari800winplus F9).
keys for quick save and quick load (For example alt + s and alt + l).
and menus to open files from the Full screen.

phaeron, forgive my persistence, it is just so interesting, the emulator is obtained simply excellent, no worse than atari 800winplus. :)

breaker - 01 10 09 - 20:26

Great stuff Avery, can I add to Breakers list a option for Atari800win plus .act files to change the palette. It's not a mega important thing in the grand scheme of the emulator but as a couple of us were discussing yesterday the great difference in what peoples TV's looked like in the day. Allowing a 'change' just adds to the 'being there' factor.


Mclane - 01 10 09 - 21:06

Phaeron, just noticed the boot option does not apply to drag and drop, is there a command line option now?


Mclane - 01 10 09 - 21:16

Partially ignore the last comment by me, makes no sense...Yes I'd love a drag n drop auto reboot but I understand the use for swapping disks.....Maybe a UI choice like Breaker wanted?

Mclane - 01 10 09 - 21:20

Found a lovely little utility called Strokeit, basically it does mouse gestures

What it allows is me to assign a mouse gesture to Altirra that emulates me holding Shift+F5. So I just drag and drop, hold the right mouse button and move right a little..Instant reboot and no effect on Altirra performance..

Mclane - 01 10 09 - 21:53

Not much new since I've been working on VirtualDub stuff, but I figured I might as well put out a new prerelease version anyway:

This contains a few more emulation accuracy improvements to POKEY, GTIA, and ANTIC. (Funny how Atari can label a register VDELAY for "vertical delay" and have it do nothing of the sort.) You aren't likely to notice the changes unless you are running recent software that heavily abuses POKEY, but hey, who knows.

Haven't gotten around to doing some of the stuff you guys have requested yet; I might push out 1.4 before then. Quick comments on recent requests:
- Pause button: This seems pretty doable.
- Keys for quick-save/quick-load: This seems pretty doable too.
- Menus from full screen: I'm afraid this would be hard, since the Windows UI doesn't work the way I have full-screen set up.
- Palette files: This is doable. It's slightly problematic because Altirra also needs to know the NTSC 90' axis in color space in order to do artifacting and that isn't directly encoded in the palette, but I can get around that.
- Drag-n'drop boot: I was maybe thinking that Shift+Drop might be boot, or maybe regular drop is boot and Shift+Drop is mount.

Phaeron - 06 10 09 - 17:11

Cheers Phaeron, Ta for the update and the comments. Thanks for considering everyone's requests and we hope you can add them if possible as and when. One minor little thing that would be handy from an ID point of view, in the About put the current beta version in there just so you can keep track.

Mclane - 06 10 09 - 19:16

thanks phaeron.
small bug with the sound in the game Boulder dash.
compared to past releases the emulator, the sound of explosions in the game was worse.
especially noticeable in the levels of water and butterflies.

minor suggestions:

1. emulator can open the *. com files, but in the emulator settings, this type of file is not specified.

2. Please add a configuration system ---> firmware para 800 (OS-A).
you make it very simple.
it is very necessary to me.

thanks for a great emulator, I hope he will be the best. :)

breaker - 07 10 09 - 02:12

oops, forgot to ask.
when it is added to the emulator support files *. DCM?

breaker - 07 10 09 - 02:14

New prerelease version, with some stability fixes and some new additions:

This version can open .DCM images and also has a new experimental mode where it can display text modes with native Windows fonts (System > Video > Enhanced text).

I took a look at the sound in Boulderdash and it seems to match the real Atari -- I can't hear anything wrong with the explosions. The footstep sounds, however, do have a weird problem where they sometimes sound thin or don't sound at all, changing whenever you dig around or drop a rock. It turns out that this also happens on a real Atari, caused by the game starting the sound at slightly different phases relative to the polynomial noise generators. As such, I didn't find anything to tweak here.

Phaeron - 11 10 09 - 17:23

sound really great, although I prefer the sound as in altirra 1.4pre7.
thank for adding *. DCM images.

phaeron, please add support for OS-A.
You'd only need to create the same option as for OS-B will only be indicated OS-A.rom.
simple addition;)

I also want to ask you to add to change the emulator speed.
would love to make this setup was the same as in Atari800WinPlus 4.0.

If you implement something that the images in the pictures I will be happy:)

breaker - 11 10 09 - 19:02

Slight update:

Only one minor change, but one that could have a lot of impact: I backed out the fix for the disk versions of Berserk not making firing sounds, because that's actually supposed to happen -- the game doesn't disable the serial port properly. I've double-checked this on my 800XL. The good news is that making this change makes SIO activity sound normal again.

Phaeron - 11 10 09 - 19:17

phaeron, but what do you think about my suggestions?

breaker - 11 10 09 - 19:29

small mistake.
Game Castle Wolfenstein.dcm dropped from the beginning of the game.
in atr way this game is no mistake.

breaker - 11 10 09 - 21:34

A bug with joystick controls in fullscreen mode is now gone.

Thanks for implementing the greatest feature ever: "Cassette: CAS images and mono WAV files now play data as audio." :) From what I see, it works for wav files, but not for cas files (pre9).
I've uploaded "Mr. Do!" WAV file (45MB) here: (load time: ~17 minutes) if someone's interested. There's a funny feature - enabling/disabling "Audio > Stereo" during tape load causes tape loading errors ("good old days") :)

galu - 12 10 09 - 02:35

Any news on better joystick support?

hardmanm - 14 10 09 - 02:13

> From what I see, it works for wav files, but not for cas files (pre9).
Yeah, that might actually be a changelist mistake on the CAS part. I don't remember if I actually generate the audio stream -- it might just be the POKEY noise that's playing back right now. It might just be replicating mono audio streams (previously it used to put zero in the audio track during decoding).

> Any news on better joystick support?

Phaeron - 14 10 09 - 16:54

Hi Phaeron, the new PC Text option, is that there for the dev people who code on an Atari or is it simply as a perk?

It's just one of those updates I didn't expect :)

Mclane - 15 10 09 - 05:34

> Hi Phaeron, the new PC Text option, is that there for the dev people who code on an Atari or is it simply as a perk?

Just one of those off-the-wall ideas that I thought would be kind of fun to have. I got the idea from two places. One was that I had to do some BASIC programming on the real Atari to test a POKEY theory and I forgot what a horrible experience it was typing on that awful keyboard (why the #&* did they put BREAK next to DELETE!?) and reading blurry 40-column text. The other was my past experience with running old DOS programs on Dosbox, which is a cool emulator except for the fact that you're stuck with an 8x8 font due to video emulation. So I got the idea that it might be neat if you could run an emulated Atari with a much more legible font, like a DOS box in Windows.

Of course, trying to enhance the display is one of the better ways to introduce emulation bugs, thus the option.

Phaeron - 15 10 09 - 16:09

Cheers for the explanation, it's always nice to see additions that make the emulator both unique and more friendly. The one thing I thought you would have added considering your background is video recording, personally I have no use for it and prefer emulation related work well ahead of such a thing.

Thanks for the hard work as always..

Mclane - 15 10 09 - 19:20

Yes, others have commented on that. As it turns out, the AVi writing path is the least modular part of VirtualDub. :)

Phaeron - 15 10 09 - 19:36

adding video and fonts for text quests is nice.
but it's just decoration.
I think what to do emulation.
we will see in the near future, good governance and the OS-A in the emulator?

breaker - 15 10 09 - 20:08

OS-A support is very important for older games

hardmanm - 16 10 09 - 02:14

The repetition is getting a bit old, folks. I heard you the first, second, third, and all subsequent times after that.

By the way, it might help if you actually named a game that required OS-A.

Phaeron - 16 10 09 - 18:02

phaeron, forgive me, but.
in other emulators such settings as OS-A and better joystick support has long been made.
your emulator lags behind the others.

breaker - 17 10 09 - 04:25


Mclane - 17 10 09 - 20:36

Please can we remember two things, 1. the emulator is free, 2. we are unable to code one ourselves.

It's free...

It's done as a personal project which was never meant to be this marvel it is, the time taken to work on this is taken away from his other projects, work and his own free time / life. Lets not forget that when asking for requests.

We can't do it...

Well lets be fair, if we could we would do our own one but we can't so lets not p*ss off the person who can by bombarding him with repeated requests, I'm sure Phaeron knows exactly what is wanted and we have all passed on our requests which he obviously has kept a note of.

Our job as users is to test the emulator and give feedback on what does not work so the emulator can be made more and more perfect in emulation. Any requests should be made but lets not annoy the poor guy.

Why have I posted this....

I've beta tested loads of emu's inc Atari800win Plus and I know a great many emulators / projects have been dropped by authors because they got feed up of the attacks and constant haranguing that has built up, thankfully that's not happened here but it starts somewhere so lets enjoy the product as it comes, be helpful and thank Phaeron for using his free time for us at no cost :)

Mclane - 17 10 09 - 20:55

Feed up = fed up :)

Mclane - 17 10 09 - 20:56

I am very interested in this project.
I do not want to shut.
I just wanted to become the best emulator.
I shall not ask more.

breaker - 18 10 09 - 00:30

Mclane, tell me whether there is likelihood that ever been revive emulator Atari800winPlus?
The latest release is 4.1 beta 2 to 2.0.2?

breaker - 18 10 09 - 00:34


The last person who took it over after Piotr had to give in due to real life needs promised to work on it and never did and I suspect never will. If you scroll through the credits I'm the Paul Irvine guy on there. As you have seen there have only been Atari800 source code updates to Plus and were pretty pointless as they introduced many sound bugs from that code.

I've tried my best to get someone to pick up the project but no one has shown the slightest want to maintain it which is why I'm so glad Phaeron chose to make his own emulator coming from a different angle rather than using bits of the source of Plus.

I imagine people thought Atari800win Plus was as good as it could get but people like Phaeron have proved it's far from perfect and improved upon it in my honest opinion.

I apologise about my rant of sorts, I can see you have a passion for the Atari as we all do and we all want this to be the finest ever but lets just not get the baseball bats out yet :)

Also it's worth remembering that Altirra is built around the modular core of his other superb program Virtual dub, that being the case what we think might be simple changes can mean in cases a real restructuring of his code to allow it to work. The fact that he bothers to do this for us is great, I know the idea of adding OSA sounds dead simple and for a man of his programming skill it probably is a minor minor reworking of his other rom loading code but he's doing a million and one things that pay his real world needs, it's not like this is the only thing he does all day?

I'm sure all of these things will be given due thought and added if it's in the interest of the emulation quality.

Mclane - 18 10 09 - 04:11

Allow me to promise this, then: I will add OS-A support, and I will improve the joystick support. Oh, and I'll look into that one DCM image that has problems. I just can't say when. I spent the last two days working on VirtualDub's blitter library.

As for the Atari800 sound changes, they're definitely needed -- the per-scanline nature of Atari800's POKEY emulation is by far the biggest emulation hole they have and is affecting both their sound and disk compatibility. If the credits are correct, the guy who's currently working on it is also very good -- he's also responsible for the existing ANTIC and GTIA emulation, which I've only found a couple of emulation bugs in and which is quite accurate. But yeah, I'm not surprised there would be bugs. POKEY emulation is such that a single-cycle timing error is enough to cause some demos to emit garbage.

One of the things that drives me nuts about Atari800WinPlus, by the way, is that you can't step it the debugger without closing it!! That alone was enough to make me want to write my own.

Phaeron - 18 10 09 - 07:42

Many thanks for the done work, are good that there are people which remember and do not forget old computers.
For me it not simply toy, this my childhood my memoirs, my first acquaintance to the computer world.
Thanks also for that that you find time to give to a writing of this emulator and the program virtualDub.
Once again forgive my impatience, I hope disagreements any more will not be.
Yes, my name is Sergey, me 34 years :)

breaker - 19 10 09 - 01:23

A quiet humming noise can be heard when loading cassette files (WAV or CAS) - [160 kilobytes] - is it intentional?

galu - 19 10 09 - 09:48

vapi games laser hawk.atx - game crashes.

breaker - 20 10 09 - 16:55

phaeron, thanks for adding OS-A and improved sound. :)

breaker - 22 10 09 - 04:52

Naughty boy, posting the emulator before the programmer ;)

Missed one.....

Mclane - 22 10 09 - 22:18

This isn't a bug I think, but a bit weird..

Game called Beach Landing which is in PRO format so I thought I'll load it up using accurate sector timing as it might be a protected disc. It didn't work, so duff image I thought as if it's booting from what is damn near a perfectly normal speed emulated shop drive it should work.

Just for a test I swapped it to normal speed and patched sio and it loads perfectly ok...

Just seemed weird to me..

Mclane - 23 10 09 - 01:27

Hi Phaeron, this demo shows a weird DLI bug...

Mclane - 25 10 09 - 04:57

phaeron, I want to ask you.
Can you build a better rate?
the fact is that in Fullscreen mode emulator works a little faster than they should.
I use the emulator video mode PAL, in the window it gives 49.8xx FPS, but it's worth to go to Fullscreen and the number jumps to 52 FPS.
during a game FPS ranges from 50.2 to 51.5 - 52.
even the sound of that little markedly accelerated.
not fix it?
You can put the FPS in a more rigid framework?

some screenshots

breaker - 25 10 09 - 19:47

Fixes the DLI problem, which was actually a WSYNC issue (DEC WSYNC, to be exact). Also adds support for PAL artifacting, playing data as audio from CAS files, and further tweaks the async SIO noise to be more accurate (it was showing up too strongly in some demos).

I'm afraid I don't have Beach Landing in PRO format, and Castle Wolfenstein in DCM seems to work fine. Remember that with CW you must set the disk mode to Virtual Read/Write for it to work since it constantly writes to the disk between levels.

I think I know what's causing the full-screen timing issue... will look into it.

Phaeron - 26 10 09 - 19:07

Beach Landing


Mclane - 26 10 09 - 21:08

Wow, I had to look real close to see the PAL artifacting, it's so subtle but once you see it really makes for the 'that's how I remember my Atari' feeling.

Mclane - 26 10 09 - 23:00

phaeron, thank you very much.
you right you read my thoughts, I would have myself to ask you to add sound to *. cas files;)
well thank you very much and for artifacting.

very much hope that the problem with speed in full screen will be solved.

And now the sad thoughts, I noticed that the sound in altirra incorrect.
I started the game nadral, sounds different from those that should be some sounds in the melody are completely indistinguishable.
Please fill it.
hopefully breaker.

breaker - 27 10 09 - 06:04

Yes, sounds like it's lost a sound voice?

Mclane - 27 10 09 - 06:59

Ah, slight update, seems to work fine on OSA & B but whatever is happening it's XL based but the game works fine on XL on other emulators.

Do I suspect it's something to do with the recent sound changes?

Mclane - 27 10 09 - 07:03

Another great build (especially great for people from PAL region that were using cassette players in the old days :) ).

Bug (pre14):
"Load data as audio" option is always disabled after (re-)launching Altirra.

BTW cassette loading noises - a Commodore Amiga emulator, called WinUAE, also accurately emulates floppy drive sounds (inc. spinning noises) - using real drive samples - :)

galu - 27 10 09 - 12:36

Load data as audio always disabled on startup:
* Oops.

Nadral missing a voice:
* This is a bug in the game and is being emulated correctly. Like Berzerk, the disk versions of Nadral fail to properly clear asynchronous receive mode (SKCTL bit 3) and this screws up the title music; it's OK after you play a round. I've verified this on a real 800XL.

WinUAE floppy drive noises:
* This is one of the most whimsical emulation features I've seen and thus my favorite. It sounds a bit tinnier than I remember from my trusty A500, though. I've been tempted to do the same, but one problem is that I don't actually have a real Atari 810 drive to record sound from. (I wish I had one for other reasons -- I'd love to record actual disk read timings.)

Phaeron - 27 10 09 - 16:21

Whoops, asynchronous receive mode is SKCTL bit 4, not bit 3. Bit 3 is two-tone mode....

Phaeron - 27 10 09 - 16:23

No, with a voice in game everything is all right.
Pay attention to the melody beginning in game Nadral, on the title screen of game.
Compare sounding to other emulator and all of you will understand.

Mclane, very much I ask, you can lay out the collection of disks *.pro?
It is very necessary for me.
I searched but have found only one image, and that is casual, on
please :)

breaker - 27 10 09 - 16:35

Load Data as Audio now saves properly, and I removed the full-screen check from the throttling code.

Phaeron - 27 10 09 - 16:40

great, now the rate is kept within.

but the sound you have not fixed :(

breaker - 27 10 09 - 16:51

compare the sound, especially the beginning of the melody.

breaker - 27 10 09 - 17:04

hmm, drew attention to the fact that in games such as Ghost chaser and Gremlins sounding melodies incorrect.
in Ghost chaser in the melody sound clicks.

breaker - 27 10 09 - 19:22

@Breaker..Here you go..

Mclane - 27 10 09 - 21:07

Can confirm Gremlins and I think Ghost Chaser (its sounds ok to me and the same on Win Plus but Breaker has heard something) as having odd sound, both do the same on Atari800win Plus and Gremlins works fine under OSB, whatever it is it's an XL OS issue..

Mclane - 27 10 09 - 21:20

BTW Phaeron, I know you know what is at fault as regards the hardware, the way I wrote it seemed to suggest otherwise :)

Mclane - 27 10 09 - 21:24

Mclane, thank you very much.
the way you have in the archive are no games
and do a little surprise from our Russian developers, game Preliminary Monty for Spectrum.
I recommend to download the emulator Spectaculator.

breaker - 27 10 09 - 21:27

Breaker, thank you for the images, I do like the monty game, its well done as the music is quite good...

Mclane - 28 10 09 - 00:21

I'm very pleased with color pallette and image quality, and bicubic filtering+PAL artifacting is perfect for nostalgic purposes, but I'm wondering if PAL b&w artifacting was really as subtle on real PAL hardware as it is in Altirra. I recall that it was far less subtle, but that could be bad signal quality or bad TV :)

A bit "speculative" example (Mouskattack, a rather obscure, NTSC-only game):

Altirra (PAL, Bicubic filter, PAL artifacting @1680x1050):

Real Atari + old TV (PAL, RF) - photo posted on polish forum:

That's how I remember this game (especially these lowly saturated colors) and probably that's how Vice (C64 emulator) and WinUAE handle PAL modes, using so-called "PAL Filter".

Altirra (NTSC, Bicubic filter, NTSC artifacting @1680x1050):

galu - 28 10 09 - 08:13

Both Gremlins and Ghost Chaser also have the sound artifacts on my 800XL. The clicks in Ghost Chaser aren't surprising -- M.U.L.E. has the same problem, although a bit more subtle. Gremlins is much more blatant, and the problem is that the loader for that disk is buggy and doesn't restore the AUDCTL register. The OS-B and XL kernel ROMs differ in the state of AUDCTL after warm restart, and in the XL case it leaves channels 3+4 ganged in 16-bit, 1.79MHz mode leading to the screeching. You can "fix" it by typing this in the debugger: "e audctl 0"

In any case where you suspect that the async disk sound support is what is breaking the sound, this is how you fix it: e skctl 3. "e skctl 13" will break it again.

It appears that the SIO patch has a bug in that it doesn't set SKCTL after the transfer, but fixing that is unlikely to help as it would actually break more programs -- the real SIO leaves async mode on after a read operation.

Altirra's artifacting engine only targets specific cases. In the NTSC case, it has a deliberate filter to only produce color where alternation is detected; in the PAL case, it only emulates the artifacts caused by color mixing due to a chroma delay line in the TV set, which is taken advantage of by many PAL demos. Altirra doesn't attempt to do full NTSC/PAL emulation because it would degrade the video in a non-useful manner. I did implement full NTSC color emulation at one point by transforming to Y/I/Q space and doing luma/chroma separation, but I gave it up because it was a lot more complex and slower and it mostly just made the emulator look like a really crappy TV set.

Phaeron - 29 10 09 - 17:45

phaeron, I found some images are loading onto tapes Atari800winplus4.0, but altirra to crash.

and if not difficult, I beg you, add a button to pause the emulator, please.

Images cassettes can be taken here

breaker - 29 10 09 - 19:41

Just a thought / I'm not going to ask for saved screen size and position again..homest ;)

Actually how easy or not would it to make it so that multiple versions of Altirra cannot be ran and the open one could be reused on the fly.

The reason is one of the bane's of Gamebases is that you load up game A, play and then have to shut down the emulator to play the next game. Kind of seems silly as the emulator is there and open and just needs to be virtually rebooted.

IS this a daft idea?

Mclane - 31 10 09 - 01:45

@breakers' comment
These games are stored in an old "Turbo Tape" software turbo mode.
Software turbo usually loads 2-block loader (using standard transmission), speeds up the transmission up to ~900 baud and then loads the block(s) of the proper program/game code. The whole program may be stored in one, long block (no pauses), or at least the pauses may be shorter than they are in standard transmission.
Another "software turbo" example - "Iron Turbo" - also won't load in Altirra ( ).

Starting from the late 80s, hardware turbo systems became popular in Eastern Europe. Such systems as Turbo Blizzard or KSO Turbo 2000 allowed transmission at rates ranging from 2000 up to 9600 (!) baud.
Unfortunately CAS format does not support anything like that.

galu - 31 10 09 - 02:27

New prerelease version:

This raises the data line sense filter cutoff to allow the turbo tapes to load, and also fixes a nasty Port B banking problem that was preventing Gyruss from loading. That might also explain some XL-mode incompatibility issues.

The Alley Cat image appears to be bad. It didn't load in Atari800Win either, and looking at the load process, I don't see how it could possibly work. The loader is issuing a request to CIO to load into the cassette buffer ($0400), but the data is already coming from that buffer and is quickly wiped. I'm guessing that this might have originally been a copy protected tape that didn't survive the imaging process. It looks like the Iron Turbo example also may have a similar problem with artifacts that didn't survive the conversion to CAS, but I need to check more deeply.

Surprisingly, some forms of turbo load do survive CAS conversion. Although the real turbo loaders require support for being able to bypass the FSK decoder and the CAS format lacks support for indicating which portions are or aren't FSK encoded, it turns out this is irrelevant if the switching is ignored on both the imaging and emulation sides. In other words, it's largely irrelevant that the turbo mode isn't actually emulated as long as the data seen by the loader is the same. The CAS format does support custom baud rates, so that isn't the problem either. The real problem is that CAS can't hold any cassette data that isn't byte framed according to the standard Pokey 8-bit data, 1 start bit, 1 stop bit format. That screws up any turbo loader that tries to use a sync mark to begin the transmission, as that's dumped on conversion.

As for the Gamebase issue, there is a way for external programs to tell Altirra to quit: send a WM_QUIT to the application's main window. That's the standard way in Windows to do it, and I don't see any reason why I couldn't support that going forward.

Phaeron - 01 11 09 - 10:00

Thanks always a star!

Mclane - 01 11 09 - 20:37

sat down to play in game Panther, one of my favorite games on the atari :)
Played likely hour, but further a place where "warning plasma attack" to reach and it was not possible.

phaeron, and you can make in the emulator search of codes (cheat) also as in emulator Atari800winplus ?

breaker - 02 11 09 - 04:29

From what I've read, guys from Poland are working on extending the CAS format (it's tentaively called XCAS) and one of the aims is to support every single cassette, including non-standard and protected ones. It has been announced a few days ago, but it seems that a lot of work has already been done.

galu - 02 11 09 - 05:43

@Breaker, re a cheating part..

While you are waiting to see if Phaeron decides to add cheat options htere are two free cheat softwares that allow you to link to Altirra as a process and find cheats for yourself.

The first page is in Russian so should help you a lot

its very good but I prefer this program

Both are excellent

Mclane - 03 11 09 - 20:30

phaeron, sorry, we probably had enough of you request, but ...
I want to ask, you can add an option in the emulator to connect to any other OS?

breaker - 05 11 09 - 17:59

Breaker, did you try those 2 cheat programs?

Mclane - 05 11 09 - 22:27

I have long know these programs, especially artmoney, but I do not like to use such programs.
I much prefer as done in Aatari800winplus.

breaker - 05 11 09 - 23:39

But the trainer options are very limited in that, for the most part they won't find many cheats at all. Not every thing is based upon what you see on the screen, you could search for 3 lives as that's what you see but the real number could be 33 as that's the screen code for 3. It might not even be 3 at all, it can be incrementing a number but what you see is a decremented number and so on and so forth.

Cheat Engine will do almost all the hard work for you, it helps to understand how games do scores and status bars but even if you have no idea of a value there's options for that.

Mclane - 06 11 09 - 00:49

Mclane, agree, it is far easier to find the cheat, save it in a file and then upload directly to the emulator when it is convenient for you.
In addition, you can find almost any code, I have to Atari800winplus3.1 found a lot of codes.

look what a big code base turned

phaeron, we see the final release of 1.4 or it will be a gift to the new year ;)

breaker - 06 11 09 - 04:57

That's not a help request or a tech support question, I just came across a strange behaviour on some non-standard hardware and I want to share some information about this. It's not my PC, and I don't need to run Altirra on it :)

A grab from Windows Task Manager - - Altirra running on a single core Celeron M 1.8GHz (Intel Core-era) w/ VIA Chrome9 HC (latest WDDM1.1 drivers, also tested old WDMM1.0 drivers) + Windows 7 Pro (retail).
The integrated GPU is one of the worst in the market and it's probably worse than GMA950 (but it runs Aero and outputs 1080p WinUAE w/ filtering, so I don't understand why it has problems with Altirra).

Altirra displaying scaled or full screen (@1280x800) window:
Point filtering = occasional stuttering
Enabling bilinear filtering = unresponsive controls, no stuttering or occasional stuttering
Enabling bicubic filtering = serious stuttering, slow motion or unresponsive controls

Please take a look at the Task Manager graphs to fully understand what's going on :)
I can run Altirra at full speed on an undervolted/underclocked Pentium M @600MHz w/ DX7-era GPU with better results (point/bilinear) @1024x768 - Except I cannot enable Bicubic filter on Radeon7000 because it renders the screen unusable (

galu - 08 11 09 - 09:44

Altirra 1.4 is now released -- please see front page. You may continue the epic thread there. :)

A cheat manager is actually not too hard to do, but I haven't gotten around to it. In practice, disabling P/M collisions is very effective, which decreases the immediate need for a memory-based cheat manager. A PC-based cheat manager, however, will indeed be functional. Altirra keeps the main Atari memory in a single 64K block and doesn't copy memory when banking, so this should be fairly effective.

The display problems are likely related to Direct3D9 acceleration, which is either underpowered or just broken in your case. Bicubic filtering is also very demanding on GPUs that don't have pixel shaders, so it's not recommended for a Radeon 7000. In cases like this where the GPU is capable of 3D acceleration but it underperforms or breaks, use /ddraw or /gdi on the command line to force a lower display mode, and you should be fine.

Phaeron - 08 11 09 - 12:06

altirra 1.4 discussions here.

breaker - 08 11 09 - 15:35

Thanks for the new version...

As regards the Cheat side, the only downside of using things like cheat engine is that they have no handling of 6502 code so if like me you want to understand what is going on it's impossible to do as it basically just ends up being about set locations (sort of). So some trainer commands in the debugger would indeed be nice after all the better things are done if that's possible.

And just a quick clarification as to my request for re use of the emulator for Gamebase etc. After rereading it a couple of times I became confused as to what you plan to add.

The way it sounds is that you are making it possible for Altirra to be passed a request to close which would save some time although I'm not sure how it would be done via a script on Gamebase.

What I'm hoping you meant was that if a second game was launched instead of opening another instance of Altirra it would check if Altirra was already open and then boot the new image on the existing already open Altirra. I've seen on many programs a tick box to limit it to a single instance.

Sadly with my advanced years I'm easily confused ;)

Mclane - 09 11 09 - 04:59

Hi Phaeron, any snippets of news?

blog seemed a bit quiet

Mclane - 15 11 09 - 23:04

Not much going on here... been working on some stuff for both Altirra and VirtualDub, but nothing releasable yet on either side.

Phaeron - 16 11 09 - 14:59

No problem, just trying to liven up the blog with a new post as well as politely asking what's new..

Mclane - 16 11 09 - 22:15

Hi Phaeron, this isn't exactly a repeat request it's more of a reason for it.

It might be nice to have the ability to have alternative rom versions for each rom, I know you can rename them but I've found a game (Imperial Walker by Mike Potter) that thanks to some info only loads with version A of basic. Weird I know but perhaps there are others out there and the ability to have an alternative would be great if you want to sometimes boot Omnimon.

Just an extra slot for each rom with a tick box that allows it to be the default rom.

Mclane - 18 11 09 - 04:02

Yes, you must add an emulator to support other types of basic.
I also hope that will be added to the choice of other OS.

breaker - 18 11 09 - 15:09

Santa Phaeron, if we are good little boys and girls might we get a christmas present from you :)

I'll leave some milk and cookies out :)

Mclane - 27 11 09 - 20:23

version 1.5 final for Holidays :)

breaker - 28 11 09 - 01:33

V1.5 final for the holidays is quite unlikely, but we'll see.

Supporting a custom version for each ROM is probably a bit more than I'd like to do... I'd probably just opt for making the filenames configurable and having the user browse to different files. In general making anything N-way flexible is a pain, and I'd like to avoid it for something as lame as a BASIC program that only runs on rev A (@&*#?!). By the way, Atari BASIC started as a cartridge and remains programmed that way even on XL machines, so you should just be able to mount the rev A image as an plain 8K cartridge.

Phaeron - 28 11 09 - 21:10

Cheers for the update

The browsing for files would be great, it's easier for you and serves the purpose...That way things like Omnimon will be ok as opposed to being unable to mount it in the last option.

Btw, I wasn't expecting 1.5 final, was just hoping for another beta to play with a an xmas pressie. There's no way I would ask or expect you to compress good beta time into a hasty release. I expect to see 1.5 final when it's good and ready..No rush no pressure.

Mclane - 28 11 09 - 22:15

Oops, meant to say "when you are good and ready"

Mclane - 28 11 09 - 22:16

encoded in the old theme Comments:)
phaeron, I proposed an innovation about the keyboard, so can the pudding? # body

breaker - 28 11 09 - 22:48

Just a request re the blogs..

Is it possible to have one main blog?

It's just that release info is happening on another blog and not this, so either way can we just have a central blog or a release blog

Ta muchly..

Mclane - 29 11 09 - 01:03

Just a question, at the moment you display the whole screen, will you ever give the option to just see the TV aspsect ie lose the left and right additional data. It just makes the display neater.

Just a question?

Mclane - 29 11 09 - 01:39

Comment form

Please keep comments on-topic for this entry. If you have unrelated comments about VirtualDub, the forum is a better place to post them.
Remember personal info?

Email (Optional):
Your email address is only revealed to the blog owner and is not shown to the public.
URL (Optional):
Comment: /

An authentication dialog may appear when you click Post Comment. Simply type in "post" as the user and "now" as the password. I have had to do this to stop automated comment spam.

Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.