+MrFish Posted December 28, 2018 Share Posted December 28, 2018 (edited) http://www.virtualdub.org/beta/Altirra-3.20-test10.zip http://www.virtualdub.org/beta/Altirra-3.20-test10-src.zip Initial support for hardware accelerated screen effects: fake-tv.jpg Very nice. I've been hoping for options like these to appear for some time now. Altirra is really offering a great array of display controls. One thing that might be useful to add in the future, given so many display options, is some sort of display profile saving. Edited December 28, 2018 by MrFish Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted December 28, 2018 Share Posted December 28, 2018 (edited) I'm pretty sure that's covered with one of the choices in the profile maker.....Possibly the environment one, not sure if it currently saves the new items, not tested as yet.. No, not saved .....as yet? Also mixed up the colour and environment there, things like if you use artifacting get saved in that category.. Edited December 28, 2018 by Mclaneinc Quote Link to comment Share on other sites More sharing options...
+MrFish Posted December 28, 2018 Share Posted December 28, 2018 http://www.virtualdub.org/beta/Altirra-3.20-test10.zip http://www.virtualdub.org/beta/Altirra-3.20-test10-src.zip Initial support for hardware accelerated screen effects: fake-tv.jpg This is an early version, so there are still some bugs, but these are the changes: BTW, how feasible would it be to add the ability to tweak the different facets of high-artifacting mode? I like it much better than standard artifacting, but it's just a bit strong in some of it's effects. Quote Link to comment Share on other sites More sharing options...
phaeron Posted December 28, 2018 Author Share Posted December 28, 2018 Avery, with the addition of the effects in a big way would it be a pain to move the effect load tab out of Tools / Options and maybe have it in View? Just seems so out of place now these things are more in action.. It's not a commonly used item, so no on moving it to the top-level View menu. It might move to Configure System as I consolidate, since the division between that and Options is now weird. Not sure about the future of the custom display effects, since it's underused and right now DX9 only. Shader compatibility with other software is very difficult due to how hard it is to accommodate shader language differences and the majority of shaders being built in GLSL. The internal shader effects are written completely differently than the way that the external custom effects are written. I'm pretty sure that's covered with one of the choices in the profile maker.....Possibly the environment one, not sure if it currently saves the new items, not tested as yet.. No, not saved .....as yet? Also mixed up the colour and environment there, things like if you use artifacting get saved in that category.. They are saved under View. BTW, how feasible would it be to add the ability to tweak the different facets of high-artifacting mode? I like it much better than standard artifacting, but it's just a bit strong in some of it's effects. The algorithm has some internal knobs, but they're finicky and not very intuitive. For instance, the sharpness of the luminance filter also affects artifact hue due to phase shift effects. It depends on what kind of adjustment you're looking for. The filter doesn't work by adding artifacts, it works by actually forming a composite signal and doing luma/chroma separation. This means that it is not accommodating of "cheats", like if you want an unrealistically sharp luma output while still having artifacting -- it'll start giving you jailbars like on actual hardware. 4 Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted December 28, 2018 Share Posted December 28, 2018 Cheers Avery... Quote Link to comment Share on other sites More sharing options...
Keatah Posted December 28, 2018 Share Posted December 28, 2018 Minor usability/feature req: Display the name of the current palette somewhere in the "adjust color" menu, or perhaps a simple checkmark in the palette dropdown. And if any sliders are moved away from default, indicate "custom". Maybe even put a tick-mark by the sliders indicating default position for the specified palette. Quote Link to comment Share on other sites More sharing options...
+MrFish Posted December 28, 2018 Share Posted December 28, 2018 They are saved under View. Great. The algorithm has some internal knobs, but they're finicky and not very intuitive. For instance, the sharpness of the luminance filter also affects artifact hue due to phase shift effects. It depends on what kind of adjustment you're looking for. The filter doesn't work by adding artifacts, it works by actually forming a composite signal and doing luma/chroma separation. This means that it is not accommodating of "cheats", like if you want an unrealistically sharp luma output while still having artifacting -- it'll start giving you jailbars like on actual hardware. Overall, the high artifacting mode for NTSC is really nice. It's producing a lot of what is typically seen on a real set. Really, I'm just looking to clean up the signal a bit, in order to get something a little closer to what I'm seeing on the hardware I have -- and some hardware I've had in the past. Maybe an unrealistic idea, though, in the case of trying to modify the parameters available in the algorithm. Quote Link to comment Share on other sites More sharing options...
mono Posted December 30, 2018 Share Posted December 30, 2018 (edited) Altirra 3.20-test10 65C816 @ 3MHz configured. Following code sync1 LDA VCOUNT ;$D40B sync2 CMP VCOUNT BEQ sync2 BCC sync1 loops to infinity. It works correctly for all CPU configurations except of this one. Edit: C flag isn't set when A=$9B and VCOUNT is $00. Edited December 30, 2018 by mono 1 Quote Link to comment Share on other sites More sharing options...
mono Posted December 30, 2018 Share Posted December 30, 2018 (edited) Altirra 3.20-test10 65C816 @ 3MHz configured. Following code sync1 LDA VCOUNT ;$D40B sync2 CMP VCOUNT BEQ sync2 BCC sync1 loops to infinity. It works correctly for all CPU configurations except of this one. Edit: C flag isn't set when A=$9B and VCOUNT is $00. Is it possible that VCOUNT has value $9C on CMP, but $00 later on LDA? Simius has described any time ago that it's possible for few cycles. Lazy translation: I've done one thing more. I've added one instruction: loop: LDA VCOUNT LDX VCOUNT ;added instruction CMP #$9C BNE loop RTS As I thought, X always returns 0. That means 156 appears for the time shorter that 4 clock cycles. I forgot to mention I have PAL configured during my tests. Edit: Second comparation before BCC fixes the issue. sync1 LDA VCOUNT ;$D40B sync2 CMP VCOUNT BEQ sync2 CMP VCOUNT BCC sync1 I apologise for unnecessary alarm. Edited December 30, 2018 by mono 1 Quote Link to comment Share on other sites More sharing options...
phaeron Posted December 30, 2018 Author Share Posted December 30, 2018 Is it possible that VCOUNT has value $9C on CMP, but $00 later on LDA? Simius has described any time ago that it's possible for few cycles. Lazy translation: I forgot to mention I have PAL configured during my tests. Yes, there is a one-machine cycle glitch in VCOUNT before it rolls over to $00, yes. What is probably happening is that your frame timing is causing this to just happen consistently on 3.58MHz (2x). The root of the problem is resetting the baseline by jumping back to the LDA VCOUNT, which introduces a race condition. The revised code should work, but if what you're trying to detect is the rollover, you could poll for the sign change: sync1 bit vcount bpl sync1 sync2 bit vcount bmi sync2 2 Quote Link to comment Share on other sites More sharing options...
mono Posted December 30, 2018 Share Posted December 30, 2018 Yes, there is a one-machine cycle glitch in VCOUNT before it rolls over to $00, yes. What is probably happening is that your frame timing is causing this to just happen consistently on 3.58MHz (2x). The root of the problem is resetting the baseline by jumping back to the LDA VCOUNT, which introduces a race condition. The revised code should work, but if what you're trying to detect is the rollover, you could poll for the sign change: sync1 bit vcount bpl sync1 sync2 bit vcount bmi sync2 Hah, KISS. Your method is simpler and much better - thanks a lot. I've changed only BIT to LDA in sync2 for my purposes. 1 Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted December 30, 2018 Share Posted December 30, 2018 He knows his stuff you know...Always makes me smile when he dives in and does the full on tech stuff that fixes 99.9% of stuff as if its totally nothing while others have been sweating a little about it... Always nice to know he's on the case with helping folks as well as updating and improving Altirra.... Quote Link to comment Share on other sites More sharing options...
phaeron Posted January 4, 2019 Author Share Posted January 4, 2019 http://www.virtualdub.org/beta/Altirra-3.20-test11.zip http://www.virtualdub.org/beta/Altirra-3.20-test11-src.zip Accelerated screen effects are now implemented for Direct3D 9. Some work to reduce border artifacts with some of the accelerated effects. Fixed quarter-line offset when using distortion and accelerated scanlines together. Fixed stripes appearing in NTSC standard artifacting due to output correction being run twice on some of the scanlines. Fixed debugger deferring symbol loads even after being opened because it didn't auto-switch to the 'when enabled' setting properly. The baseline requirement for accelerated effects is now any shader model 2+ capable graphics card, though performance may vary. The heaviest effect is the distortion effect (fishbowl), which on my ancient Intel 865 raises system load up by about 40%. Any reasonably modern graphics card shouldn't have a problem, though. 10 Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted January 4, 2019 Share Posted January 4, 2019 Anyone got a good selection of shaders they have used on Altirra? I've tried loads but there's almost always a parsing error in the most tiny writing I've seen Just interested to see how they look but its more to have a play with this newish feature... I've looked at the Vintage TV one just a little too much Quote Link to comment Share on other sites More sharing options...
baktra Posted January 4, 2019 Share Posted January 4, 2019 The horizontal and vertical distortion settings in the View/Adjust Screen Effects Dialog are a nice touch. I remember these box-art images with "screen shots" using the same distortion to feel more like TV screen. Now one can press Print Screen and use distorted view for screen shots. Not that GFX editors couldn't do the same, of course. 2 Quote Link to comment Share on other sites More sharing options...
+JAC! Posted January 5, 2019 Share Posted January 5, 2019 I find it really kind of funny that for 40 years we have been trying to improve the video output quality of the original machine with SCART, S-Video MODs, UAV, VBXE and in parallel we a trying to make the emulation output as "bad" as our childhood memories look like 10 Quote Link to comment Share on other sites More sharing options...
VladR Posted January 5, 2019 Share Posted January 5, 2019 I find it really kind of funny that for 40 years we have been trying to improve the video output quality of the original machine with SCART, S-Video MODs, UAV, VBXE and in parallel we a trying to make the emulation output as "bad" as our childhood memories look like 1 Quote Link to comment Share on other sites More sharing options...
snicklin Posted January 5, 2019 Share Posted January 5, 2019 I find it really kind of funny that for 40 years we have been trying to improve the video output quality of the original machine with SCART, S-Video MODs, UAV, VBXE and in parallel we a trying to make the emulation output as "bad" as our childhood memories look like I remember my TV that I used with my Atari used to get distorted whenever the bathroom light was switched on or off. Avery, is this next on your list to emulate? 2 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted January 5, 2019 Share Posted January 5, 2019 Haha Quote Link to comment Share on other sites More sharing options...
baktra Posted January 5, 2019 Share Posted January 5, 2019 Power supply emulation is the next step. But seriously, effects of the old TV can be considered a trinquet, however as a developer relying heavily on emulation, I can test if my software will look acceptably on those old TVs that I don't have but some users do. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted January 5, 2019 Share Posted January 5, 2019 Dead MT DRAM emulation would be interesting. 1 Quote Link to comment Share on other sites More sharing options...
atx4us Posted January 5, 2019 Share Posted January 5, 2019 I remember my TV that I used with my Atari used to get distorted whenever the bathroom light was switched on or off. Avery, is this next on your list to emulate? Happy New Year to everyone! And don't think that he won't. He'll do it just for kicks and a last laugh Avery does have a very good sense of humor. Quote Link to comment Share on other sites More sharing options...
Nezgar Posted January 5, 2019 Share Posted January 5, 2019 Please don't add weak RF signal noise emulation... or the startling white snow/noise when turning the computer off/on Quote Link to comment Share on other sites More sharing options...
phaeron Posted January 5, 2019 Author Share Posted January 5, 2019 I remember my TV that I used with my Atari used to get distorted whenever the bathroom light was switched on or off. Avery, is this next on your list to emulate? Never had that problem. Mixer in the kitchen, on the other hand, gave a nice light show.... Modern equipment can produce a cleaner display but it isn't always better. Different colors and lack of artifacting means that games don't really look the same as they're meant to. Displaying NTSC output with square pixels or worse stretching to widescreen is awful. Where this gets really bad is when people think this is the way the original computer was, and then begin writing code that looks or runs incorrectly on the original hardware. Gotta put a stop to that. Originally there was the excuse that host computers weren't up to accurate emulation, but that's less of an excuse now (though there are still constrained platforms like the RPi). Emulating the way that old computers and CRT displays rendered is actually rather complex, which is why I'm annoyed when programmers going for a retro look think that retro just means point sampling (which just looks like garbage, not retro): As for what I plan to do, well, first priority is to stabilize the new stuff, make sure it works nicely with other features like light pen emulation and get good defaults in place. I'm probably going to do some work on the color settings as it's clear that some people are still stuck on old Altirra color presets and need a nudge to get updated to the new ones. Refresh bars and the luma 7/8 gap are two things I might look more into as they were kind of notorious XE artifacts that you still only see on the actual hardware. 8 Quote Link to comment Share on other sites More sharing options...
R0ger Posted January 6, 2019 Share Posted January 6, 2019 Wow, the new effects are amazing. The bloom especially. With scanlines on, lowest possible intensity, and some 1clk bloom the output has that nice round blobby pixels I so love on CRTs. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.