Jump to content

Photo

Altirra 1.8 released


48 replies to this topic

#26 LYNXGUY OFFLINE  

LYNXGUY

    Stargunner

  • 1,449 posts
  • Location:At my computer

Posted Sun Jan 23, 2011 9:51 PM

Question what exactly do I click on to download Altirra 1.8 ????

#27 phaeron OFFLINE  

phaeron

    River Patroller

  • Topic Starter
  • 2,507 posts
  • Location:USA

Posted Sun Jan 23, 2011 10:09 PM

Question what exactly do I click on to download Altirra 1.8 ????


http://virtualdub.org/altirra.html
-> Altirra 1.8 binary (local download)

#28 Rybags OFFLINE  

Rybags

    Quadrunner

  • 15,665 posts
  • Location:Australia

Posted Mon Mar 7, 2011 5:46 AM

A few bug reports/issues here.

Not sure if this is the latest build of 1.8 I'm using, so some of these might be resolved:

- In a game I'm currently working on, I noticed that although I had a stable looking DLI/colour change, it was not the case on real hardware, so possibly some DMA issue there. The DLI occurs on a normal Mode 2+LMS line but the following line is a Mode 4+HSCROL+LMS line. But I can't release the code for this... still under wraps in development (and also resolved insofar as the program goes).

- More an annoyance than a bug. Single-step instruction via F11 doesn't work unless the Console window is in focus.

- Single-step bug. If you have VBXE enabled, then stop and then single-step, you get a downward colour bleed effect that progressively corrupts the display.

- Watch display. Kind of annoying, if VBXE enabled, the watch is done using skinnier text - much easier to read if VBXE not enabled.

#29 Mclaneinc OFFLINE  

Mclaneinc

    Quadrunner

  • 5,679 posts
  • Location:Northolt, UK

Posted Mon Mar 7, 2011 11:59 AM

Rybags, here's the link to the very latest beta which looks like being the 1.9 final or very close to it, there's a load of stuff fixed since 1.8 and some great additions so might be worth a try..

http://www.virtualdu...-1.9-test20.zip

#30 andym00 OFFLINE  

andym00

    Stargunner

  • 1,036 posts
  • Location:A geordie cowfield...

Posted Mon Mar 7, 2011 12:06 PM

Rybags, here's the link to the very latest beta which looks like being the 1.9 final or very close to it, there's a load of stuff fixed since 1.8 and some great additions so might be worth a try..

http://www.virtualdu...-1.9-test20.zip


That link is a bit malformed.. http://www.virtualdu...-1.9-test20.zip

#31 Tezz OFFLINE  

Tezz

    River Patroller

  • 2,373 posts
  • Location:Manchester, England

Posted Mon Mar 7, 2011 12:33 PM

... here's the link to the very latest beta which looks like being the 1.9 final or very close to it, there's a load of stuff fixed since 1.8 and some great additions so might be worth a try..

cool, thanks. That fixes some stuff for me from the 1.8 final build.

#32 Mclaneinc OFFLINE  

Mclaneinc

    Quadrunner

  • 5,679 posts
  • Location:Northolt, UK

Posted Tue Mar 8, 2011 3:04 AM

Sorry about the messed up link..

Here's the brand new beta to make up for it :)

http://www.virtualdu...-1.9-test21.zip

Link DOES work :)

Edited by Mclaneinc, Tue Mar 8, 2011 3:04 AM.


#33 MaPa OFFLINE  

MaPa

    Dragonstomper

  • 941 posts
  • Location:Czech Republic

Posted Tue Mar 8, 2011 3:18 AM

I'm just posting some "bug". When I have selected Integral Square Pixels stretch mode and use Adjust windows size feature (requested by me ;) ) then the windows is smaller due to menu is too long and splitted into two rows and the picture is distorted then. See attached pic (word MEMORY looks more like MCMORY i.e.).

altirra.png

Edited by MaPa, Tue Mar 8, 2011 3:18 AM.


#34 phaeron OFFLINE  

phaeron

    River Patroller

  • Topic Starter
  • 2,507 posts
  • Location:USA

Posted Tue Mar 8, 2011 3:39 AM

If you can PM me about any clues or symptoms on the DLI issues, I can take a look.

F11+VBXE redraw issues -- do you have interlacing on? I can see an issue there to fix.

Yeah, I've been bitten by the debug key focus issue too. Part of the issue is that several of the debug commands are context sensitive, so I can't just bind them to global accelerators. Need to figure out a solution.

The narrow font happens because the VBXE and artifacting modes generate a 14MHz (640x) signal instead of 7MHz (320x). I was bad and hardcoded a lot of coordinates in the HUD code, though, so I need to fix all that up.

#35 Rybags OFFLINE  

Rybags

    Quadrunner

  • 15,665 posts
  • Location:Australia

Posted Tue Mar 8, 2011 4:07 AM

Sounds good - I'll have to backtrack through the versions and find the last before I resolved the issue, but will try and get it to you in the next day or so.

#36 phaeron OFFLINE  

phaeron

    River Patroller

  • Topic Starter
  • 2,507 posts
  • Location:USA

Posted Thu Mar 10, 2011 2:41 AM

Fixed the interlace mode beam position refresh and menu wrap autosizing bugs (dumb AdjustWindowRect function):
http://www.virtualdu...-1.9-test22.zip
http://www.virtualdu...-test22-src.zip

#37 MaPa OFFLINE  

MaPa

    Dragonstomper

  • 941 posts
  • Location:Czech Republic

Posted Thu Mar 10, 2011 5:40 AM

Btw. when I coded intro for FLOP diskette magazine I ran into inaccurate emulation issue too. Altirra was working fine, but in A800Win it had some glitches and surprisingly on real HW were the same glitches. Probably some 1 cycle inaccuracy. I think it was on wide screen mode, character mode line and first line (badline) with hscroll enabled ;) I'll try to recover it out, as I fixed it already and I'm not sure where exactly it was and how the code was before fix.

#38 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,557 posts
  • Location:United Kingdom

Posted Thu Mar 10, 2011 7:19 AM

Is there (or can there be) a way to accelerate the mouse speed? I tend to run Atari800Win with the mouse sampling ramped up some when testing the GUI, and this appoximates to the responsiveness of a real mouse on actual hardware.

#39 Mclaneinc OFFLINE  

Mclaneinc

    Quadrunner

  • 5,679 posts
  • Location:Northolt, UK

Posted Thu Mar 10, 2011 10:09 AM

Is there (or can there be) a way to accelerate the mouse speed? I tend to run Atari800Win with the mouse sampling ramped up some when testing the GUI, and this appoximates to the responsiveness of a real mouse on actual hardware.


Hi Jon, if in the mouse input settings you set mouse movement axis's mode to relative and crank up the speed to 10 on either one or both depending if its a PC mouse mode or ST, that will give you more speed..

#40 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,557 posts
  • Location:United Kingdom

Posted Thu Mar 10, 2011 10:16 AM

Hi Jon, if in the mouse input settings you set mouse movement axis's mode to relative and crank up the speed to 10 on either one or both depending if its a PC mouse mode or ST, that will give you more speed..

Wow - I'd never been down in those dialogues before. This emulator is just amazing. I cranked both up to 10 and mouse movement feels much better now. Thanks! :)

#41 phaeron OFFLINE  

phaeron

    River Patroller

  • Topic Starter
  • 2,507 posts
  • Location:USA

Posted Thu Mar 10, 2011 10:27 PM

Btw. when I coded intro for FLOP diskette magazine I ran into inaccurate emulation issue too. Altirra was working fine, but in A800Win it had some glitches and surprisingly on real HW were the same glitches. Probably some 1 cycle inaccuracy. I think it was on wide screen mode, character mode line and first line (badline) with hscroll enabled ;) I'll try to recover it out, as I fixed it already and I'm not sure where exactly it was and how the code was before fix.


I believe this, but I'd really need to see an example. I do know of a couple of bugs in the way that Altirra handles HSCROL, in particular with when and what changes to it take effect. The window for this can be very late for a wide hscroll playfield, so it's possible to accidentally trip this with writes in HBLANK, especially if you have an LMS afterward fixing any discrepancies in the memory scan counter. I have a branch with some fixes to HSCROL handling, but I haven't integrated it into the mainline yet because there is a noticeable hit to emulation speed.

#42 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,557 posts
  • Location:United Kingdom

Posted Tue Apr 5, 2011 4:52 AM

Doing some work on the MyIDE driver and fired up 1.9 test of Altirra... no HDD found. Has anything changed in the MyIDE emulation code? The 1.0RC SDX MyIDE driver which worked fine with previous versions of the emulator suddenly no longer detects the disk

EDIT: Went back to 1.8 and it's fine now. So something's not right in the 1.9 test code.

Edited by flashjazzcat, Tue Apr 5, 2011 4:55 AM.


#43 phaeron OFFLINE  

phaeron

    River Patroller

  • Topic Starter
  • 2,507 posts
  • Location:USA

Posted Tue Apr 5, 2011 9:38 PM

Haven't changed the IDE code since 1.8, and actually, I can't get the driver in 4.43RC2_MYIDE (v1.0RC) working with $D1xx on that version either. I backed down to an earlier SDX build that has v0.6 of your driver, and it seems to work with 1.9-test.

What I'm seeing so far is that the OS search for PBI devices manages to initiate a valid READ SECTOR ($20) command on the device, due to the unfortunate aliasing of $D107 with $D1FF. This then puts the device in a state with DRQ set. Presumably this is why the current version of your MyIDE driver can't detect it, as if I hack the IDE code to ignore writes to $D1FF it works fine. However, the schematics I've been able to find for internal MyIDE interfaces at $D1xx don't decode A2-A7, so they wouldn't have this check.

I dug around a bit in ATA-4, and I found one possible reason for the difference from real hardware. Altirra emulates a hard disk that does not support the PACKET (ATAPI) command set, and therefore according to ATA-4 section 9.1 needs to init the command registers to head 0, cylinder 0, sector 1. This is unfortunately a valid CHS and thus the bogus READ SECTOR command succeeds. A device that supports the PACKET set, however, inits to cylinder $EB14 instead, which is most likely not valid and thus the READ SECTOR command fails. This still won't help on a warm reset since MyIDE doesn't pass reset through, but it would affect cold reset.

Altirra also doesn't reset the emulated IDE device on a cold reset, but that's easily fixed (and still doesn't affect the startup case).

A couple of questions I have:
  • Do you know or can you test if an internal MyIDE decodes $D1FF as the command register?
  • How does your device detection code handle a device that currently in a read sector command?

My instinct says that some device recovery code might be needed in the driver init path, but that's assuming the DRQ issue is what's actually happening.

#44 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,557 posts
  • Location:United Kingdom

Posted Wed Apr 6, 2011 4:04 AM

Yeah - you're right. The internal interface detection of 1.0RC doesn't work with Altirra 1.8. I can't get either internal or external to work with Altirra 1.9, however.

It's easy to test $D1FF as the command register. Just specify the custom hardware base address (in hex) as an argument to the driver. I don't have an internal interface setup at the moment, however.

The drive detection code just waits for ready to go high at the beginning of the routine. I guess what you're saying is that it should check for DRQ, and if it's high, execute reads until it goes low. However, the initial scan for the hardware base address is simply the following, and is executed before anything else:

detect_ide
	lda #$0F ; check for internal interface
R25	sta $D105 ; IDE_CYLL (internal)
R26	lda $D105
	cmp #$0F
	rts
;
This is called twice: with $D105, and then with $D505 (the hardware addresses having been relocated before the second attempt). The actual method used inside detect_ide is a copy of what Sijmen uses in his BASIC version of FDISK

Thereafter - owing to the limited access we have to assume if not using 8-bit PIO mode - we do:

detect_drive ; attempt to read sector 0 on master/slave drive
	sta usertable[0].dev
	jsr lba0
	lda secbuf_p ; point to internal partition table buffer
	sta usertable[0].buf
	lda secbuf_p+1
	sta usertable[0].buf+1
	lda #2
	sta usertable[0].sec_size
	jmp readsector
;
This tries to read sector 0 at 256bps, and returns the error on a failed read. It's fairly obvious that the driver is failing to detect the internal drive, not the internal interface: hence "HDD not found" rather than "No MyIDE found".

Edited by flashjazzcat, Wed Apr 6, 2011 4:06 AM.


#45 HiassofT OFFLINE  

HiassofT

    Stargunner

  • 1,057 posts
  • Location:Salzburg, Austria

Posted Wed Apr 6, 2011 4:50 AM

Hi Phaeron!

What I'm seeing so far is that the OS search for PBI devices manages to initiate a valid READ SECTOR ($20) command on the device, due to the unfortunate aliasing of $D107 with $D1FF. This then puts the device in a state with DRQ set. Presumably this is why the current version of your MyIDE driver can't detect it, as if I hack the IDE code to ignore writes to $D1FF it works fine. However, the schematics I've been able to find for internal MyIDE interfaces at $D1xx don't decode A2-A7, so they wouldn't have this check.

Hardware doing no proper address decoding is a real pain in the ass. I considered this to be a bug (or unfortunate shortcut) in the original internal schematic, so I built my own interface which decodes A4-A7, limiting MyIDE addresses to $D10x (D107 is still aliased to D10F etc, but I did this intentionally so I could later map D108-D10F to the secondary IDE register set, enabling access to the alternate status/control register).

The MyIDE OS and all other software works fine with strict address decoding, so I'd say just limit MyIDE to D100-D107 (or D10F).

BTW: the original MyIDE cart also didn't do any address decoding and used the whole $D5xx range, the later MyIDE+flash cart limited IDE access to the lower D5xx addresses - still without any compatibility issues.

so long,

Hias

#46 rdea6 OFFLINE  

rdea6

    River Patroller

  • 2,696 posts
  • Location:Arizona USA

Posted Wed Apr 6, 2011 2:25 PM

Just a quick question about the Quick Load State and Save State options on the File column: Did these ever work or are they ever going work?




#47 phaeron OFFLINE  

phaeron

    River Patroller

  • Topic Starter
  • 2,507 posts
  • Location:USA

Posted Wed Apr 6, 2011 11:57 PM

LOL... turns out the $D1FF issue was masking a more basic problem: I had RAM mapped in at $D1xx! That was preventing external MyIDE detection ($D5xx) from working.

This version is fixed:

http://www.virtualdu...-1.9-test33.zip
http://www.virtualdu...-test33-src.zip

I went ahead and restricted the IDE register range. Without the actual hardware I can't test the address range, and with the detection problems it's not worth speculatively emulating the address mirroring (even though I kind of hate turning it off).

BTW, SDX seems to break slightly when the IDE partition table is scrambled: either it prints extra lines on the command prompt, or it starts spewing bogus errors. Works fine if either the MyIDE interface is not detected or the partition table is valid. I still think it would be worth looking at clearing a pending read, but there are lots of other cases that could arise on a warm reset, like a sector *write* in progress. Without being able to directly issue a reset to the drive -- having no access to the reset line or the secondary register set -- it's going to be hard to stably and safely reset the drive.

Just a quick question about the Quick Load State and Save State options on the File column: Did these ever work or are they ever going work?


They work, but they only save to a memory buffer. I'm not ready to commit to a save format yet.

#48 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,557 posts
  • Location:United Kingdom

Posted Thu Apr 7, 2011 2:11 AM

LOL... turns out the $D1FF issue was masking a more basic problem: I had RAM mapped in at $D1xx! That was preventing external MyIDE detection ($D5xx) from working.

This version is fixed:

http://www.virtualdu...-1.9-test33.zip
http://www.virtualdu...-test33-src.zip

I went ahead and restricted the IDE register range. Without the actual hardware I can't test the address range, and with the detection problems it's not worth speculatively emulating the address mirroring (even though I kind of hate turning it off).

BTW, SDX seems to break slightly when the IDE partition table is scrambled: either it prints extra lines on the command prompt, or it starts spewing bogus errors. Works fine if either the MyIDE interface is not detected or the partition table is valid. I still think it would be worth looking at clearing a pending read, but there are lots of other cases that could arise on a warm reset, like a sector *write* in progress. Without being able to directly issue a reset to the drive -- having no access to the reset line or the secondary register set -- it's going to be hard to stably and safely reset the drive.

Thanks. I'll test this later.

As for SDX breaking: I've noticed the exact same effect on real hardware, usually when testing unstable hardware which results in big problems on bootup. I need to track down what's happening there. Also, with regard to pending reads, we can't even rely on cautionary reads/writes to the data register to clear DRQ, since we can't know in advance which kind of operation we're "interrupting". It's a tricky problem indeed.

Edited by flashjazzcat, Thu Apr 7, 2011 2:12 AM.


#49 MrFish ONLINE  

MrFish

    River Patroller

  • 4,848 posts
  • Location:1010-1010

Posted Sun Apr 24, 2011 5:10 PM

Any plans to add a emulation speed setting, similar to A800WP, in order to slow down emulation?




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users