Jump to content
IGNORED

Altirra 3.90 released


phaeron

Recommended Posts

1 hour ago, phaeron said:

https://www.virtualdub.org/beta/Altirra-4.00-test39.zip
https://www.virtualdub.org/beta/Altirra-4.00-test39-src.7z

  • Added 1050 rev. E to firmware detect list.
  • Fixed lack of word wrap in update dialog.
  • Audio monitor now dims channels that have been toggled off.
  • Fixed extraneous audio pulses in two-tone mode when timer underflow occurred on the same cycle as the timer 1+2 resync.
  • Added .vbxe_pal debugger command.
  • Fixed a tiny amount of aliasing leakage in audio output (32-bit x86 only).

Regarding the two-tone audio issue -- I tested timer 1+2 two-tone timing against the actual hardware and 3.90+ is correct, with 3.20 being off by two cycles. The actual issue was a corner case in where a resync 1+2 tones signal on the same cycle where an underflow happens causes the output pulse to be suppressed, which wasn't happening and resulting in a pure tone instead of a complex tone. This case wasn't being hit in 3.20 for the pitches involved due to the two cycle difference in period.

 

As this is the first test release after the addition of the Check for Updates feature, it'll be interesting to see how well it works. The feed won't be updated until about 10 minutes after this post lands, since I have to update the feed with the link to this post.

 

Too much to add to the core, but I could add these to the verifier, which has a more granular UI anyway.

 

#1 and #4 may be tricky or slow as it's not easy to check for 'unmapped' -- open bus reads are actually another kind of mapped, plus the debugger will insert memory layers.

 

I'm curious about #3. Is 16MB wrapping really an issue? SBC $FFFFFF,X I could see as it's $FF FF FF FF and probably a bogus insn, but LDA $FFFFFF,X only when wrapping?

 

thanks for adding the .vbxe_pal command 

Link to comment
Share on other sites

9 hours ago, phaeron said:

#1 and #4 may be tricky or slow as it's not easy to check for 'unmapped' -- open bus reads are actually another kind of mapped, plus the debugger will insert memory layers.

I thought that attempted accesses to the unmapped area might be detected if that area generated some sort of exception. Such as the ABORT interrupt. But it is of course up to you to decide, if it is possible or worthwhile.

 

#1 is rather important (that is why it was 1 on my list in the first place). The scenario: code or stack corruption cause the program to jump to the unmapper area. That area is filled with $FFs, which is a valid instruction (SBC $FFFFFF,X), so it gets executed in infinite loop until the history buffer gets completely filled with it. So it usually takes a while before one could trace this back to the code which jumped to there. If the core stopped immediately, it would be immediately known too.

 

So maybe the easiest way to achieve this is to fill the unmapped area with $00s instead of FFs. "Stop on BRK instruction" will then cause the wanted effect.

9 hours ago, phaeron said:

I'm curious about #3. Is 16MB wrapping really an issue? SBC $FFFFFF,X I could see as it's $FF FF FF FF and probably a bogus insn, but LDA $FFFFFF,X only when wrapping?

It could be an issue as it would mean that there is a bug in the program which accesses the memory it should not.

 

It is, by the way, the same with 6502 and 64k boundary crossing: programs do that, but I would not be mistaken much if I said that probably at least half of the time it is unintentional. I even saw an example, how it is made, in a source code: they used an off-the-shelf procedure and, without peeking into, put it to the memory much lower than its original author intended. And the original author used LDA label-constant,X or something like that. Due to assembling the code to very low addresses, the "constant" happened to be greater than the value of the "label". The result: negative argument of LDA and 64k boundary crossing, being a bug in the program.

Edited by drac030
Link to comment
Share on other sites

So noticed a tiny bug. Went to play River Raid via Altirra yesterday. Then noticed a bug. Found a way to avoid bug, tried different systems and I can reproduce so Im reporting.

 

when running River Raid on real hardware and on Altirra in DX9 all is good.

 

however run it on Altirra in fullscreen any resolution in DX11 mode and bug shows up instantly.

 

right when you boot river raid its in atract mode. Screen scrolling vertically and text along bottom horizontally.

 

on 4 different computers with nothing in common all set up correctly the bottom text jitters bad on altirra in directx 11 mode.

 

simply running in dx9 solves this. But i just fugured Ide mention it since it can be reproduced very simple.

 

run altirra in dx11 mode, load river raid, go full screen watch the bottom scroll text and its jitter city. Compare to real hardware or to altirra dx9 mode and the jitter will stick out like a sore thumb.

 

4 different systems tested 2 using nvidia gpu with latest driver 1 using radeon gpu and one using intel igpu all latest drivers all with both vsync on and off.

 

all are systems in proper order.

 

I dont know what else can help in showing this hopefully Ive explained well.

Link to comment
Share on other sites

1 hour ago, Mclaneinc said:

Sorry to say, with monitor set to 60Hz and ran in FS and DX11(only), it's smooth as silk here..VSYNC on..

 

(I'm an i7 gen 4 4770 3.4 ghz 16gigs ram, Geforce 750i, set to high performance)

Interesting. Maybe another setting i have enabled or disabled in altirra as well like frame blending or software on the machines involved then. Going to have to dig deeper. Something is going on here, on 4 machines too.

 

The difference im noticing between dx9 and dx11 is huge. 

Link to comment
Share on other sites

 

I can't imagine it's a setting in Altirra, I have loads of things turned on (High artifacting etc etc) and I get zero performance issues. The GPU is certainly beefy enough. One thing you could test to see if it is Altirra (unlikely) is to set Altirra to portable, remove the ini file in the main dir and keep it safe, Start up altirra and it should be totally fresh, scan in the roms and try from a fresh emulated machine in DX11 and FS, it it still happens then shut down Altirra, drop the ini back in, run it and then if you prefer registry mode then swap it out of portable mode and the reg will be repopulated with your old settings.

 

Only other things I can think of is the ordinary stuff like drivers and version of DX but I doubt there's an issue there..

 

The fact it's on 4 machines and doing the same is a bit freaky, are the same Altirra settings on all 4 machines?

 

PS, what version of Altirra are you running?

Edited by Mclaneinc
Link to comment
Share on other sites

7 minutes ago, Mclaneinc said:

 

I can't imagine it's a setting in Altirra, I have loads of things turned on (High artifacting etc etc) and I get zero performance issues. The GPU is certainly beefy enough. One thing you could test to see if it is Altirra (unlikely) is to set Altirra to portable, remove the ini file in the main dir and keep it safe, Start up altirra and it should be totally fresh, scan in the roms and try from a fresh emulated machine in DX11 and FS, it it still happens then shut down Altirra, drop the ini back in, run it and then if you prefer registry mode then swap it out of portable mode and the reg will be repopulated with your old settings.

 

Only other things I can think of is the ordinary stuff like drivers and version of DX but I doubt there's an issue there..

 

The fact it's on 4 machines and doing the same is a bit freaky, are the same Altirra settings on all 4 machines?

 

PS, what version of Altirra are you running?

Its got to be a setting in Altirra. I will update this morning after I try again. I use altirra in portable mode. My last tests were with the latest test 39.

 

I will try a fresh download test with minimal settings and then turn on things one by one till I find the culprit. I know for sure its not cpu or gpu time or ram.

 

its not video driver or dx install either.

 

since it happens for me and not for you its going to probably be a specific setting.

 

one i can think of I like that most wont have enabled is frame blending. I will test properly and see if I can find it.

Link to comment
Share on other sites

I was going to say that I enabled frame blending and no change, all smooth.

 

I have had the odd time when freaky stuff happens and when I reset the settings all goes away... Very rare it happens though...

 

You may find that this is the same for you and when you re-enable all the stuff it stays fine (hopfelly)

 

Paul..

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Mclaneinc said:

I was going to say that I enabled frame blending and no change, all smooth.

 

I have had the odd time when freaky stuff happens and when I reset the settings all goes away... Very rare it happens though...

 

You may find that this is the same for you and when you re-enable all the stuff it stays fine (hopfelly)

 

Paul..

Odd, but since i started fresh I can not for the life of me get it to happen.

Link to comment
Share on other sites

53 minutes ago, Mclaneinc said:

There you go, I have no idea how it happens but I've had the strange situation a few times and a full reset clears it all, and then it's all fine..

 

If it happens again, then make a copy of your ini and post it in the thread for Avery to see..

Odd, wish I kept the ini. Well if it comes back ill post the ini

Link to comment
Share on other sites

2 hours ago, Mclaneinc said:

As said, I've found it to happen very, very rarely. I did mention it to Avery a long time ago, but as there seems to be almost no way to force it to happen, it's a needle in a haystack. But at least it's happened enough for it to be picked up and a cure found.

I dont think its altirras fault. I was moving my ini between multiple devices for a while. This is why i widh i kept a copy before replacing. Could be maybe something caused by all the moving an copy rather than altirra, or could be some odd setting combo.

 

either way love how altirra is running once again. I love this emulator 

Link to comment
Share on other sites

51 minutes ago, oo7 said:

I dont think its altirras fault. I was moving my ini between multiple devices for a while. This is why i widh i kept a copy before replacing. Could be maybe something caused by all the moving an copy rather than altirra, or could be some odd setting combo.

 

either way love how altirra is running once again. I love this emulator 

Who knows what causes it, outside program interference, possibly...

 

As for the emulator, it's a work of brilliance..

Link to comment
Share on other sites

Feature: in video recording there should be proportional frame scales to the regular Atari dimensions.

 

Atari dimensions are:

Normal:        336 x 224(240)  ->  frame scale: 672 x 448 (NTSC), 672 x 480 (PAL).

Widescreen: 352 x 224(240)  ->  frame scale: 704 x 448 (NTSC), 704 x 480 (PAL).

Extended:     376 x 240          ->  frame scale: 752 x 448 (NTSC), 752 x 480 (PAL).

In that way it's sure that the pixel proportion is 1:1 (or 1:2). Now with both 720 height (960x720, 1280x720) the scaling is not 1:1 of pixels.

 

Plus also regular dimension of the market: 4:3, 16:9 like now (480, 720)

 

Link to comment
Share on other sites

1 hour ago, tane said:

Feature: in video recording there should be proportional frame scales to the regular Atari dimensions.

 

Atari dimensions are:

Normal:        336 x 224(240)  ->  frame scale: 672 x 448 (NTSC), 672 x 480 (PAL).

Widescreen: 352 x 224(240)  ->  frame scale: 704 x 448 (NTSC), 704 x 480 (PAL).

Extended:     376 x 240          ->  frame scale: 752 x 448 (NTSC), 752 x 480 (PAL).

In that way it's sure that the pixel proportion is 1:1 (or 1:2). Now with both 720 height (960x720, 1280x720) the scaling is not 1:1 of pixels.

 

Plus also regular dimension of the market: 4:3, 16:9 like now (480, 720)

So you want 2:1 or 3:1 enlarging without the letterboxing? I can add that.

 

Note that doing this for NTSC is totally wrong aspect ratio wise, since it doesn't have anywhere near square pixels.

Link to comment
Share on other sites

29 minutes ago, phaeron said:

So you want 2:1 or 3:1 enlarging without the letterboxing? I can add that.

Yeah, the thing is when the image is enlarged, in some areas the proportion is different compared with others. It's easily noticeable with a lot of vertical bars of 1 pixel wide, when it's scaled in the video the result is some bars at 2 pixel wide and others of 3 pixels wide (for example), so the scaling doesn't look good as a whole image.

 

29 minutes ago, phaeron said:

Note that doing this for NTSC is totally wrong aspect ratio wise, since it doesn't have anywhere near square pixels.

Ok, still is good to have custom options and see the results.

 

Link to comment
Share on other sites

The disassembly window seems to have problems when the listing begins at address below $0080, and especially at $0000 (in 65C816 mode also in higher addresses like $3F0000). Setting the address at $0000, then clicking down arrow causes the address field to automatically count up. Then after reaching $82-$83 it either stops or resets to $000000.

 

In 6502 mode, could the disassebler display illegal instructions as "???" instead of interpreting them, when they are not enabled in the options?

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