fujidude Posted May 12, 2016 Share Posted May 12, 2016 (edited) If I disable SIO Burst Transfers for Disk (D:) under System --> Acceleration, it's golden. I _think_ I had this setting on under recent previous versions of Altirra when it was still working though. But I can't absolutely swear to it. Under the same Acceleration area, I can leave the D: patch (Disk SIO) enabled without trouble. And yes, I do have (and had all along) the SIO Override Detection enabled to avoid issues with U1MB/SIDE2/PBI HDD and Altirra acceleration. I hope this helps. PS: I haven't seen the sub-modes for Burstio IO acceleration (interrupt & polled) in the configure menu for a while. The help file still refers to them though. Edited May 12, 2016 by fujidude Quote Link to comment Share on other sites More sharing options...
phaeron Posted May 13, 2016 Author Share Posted May 13, 2016 (edited) Update:http://www.virtualdub.org/beta/Altirra-2.80-test36.ziphttp://www.virtualdub.org/beta/Altirra-2.80-test36-src.zip Fixes some odd behavior with overlapping SIO commands and has a bunch of fixes and improvements to the custom shader support: Fixed some parsing bugs. Precompiled shaders are now used by default if present. Shaders can be precompiled with option shader_precompile=true. Shader profile can be forced above 2.0 with shader_profile_d3d9=2_0, 2_a, 2_b, or 3_0. Profiling is now supported (shader_profiling=true) Includes are now supported when compiling. FP16/FP32 framebuffers are now supported. Border texture addressing is now used when available. Added shader validation. Attached is a port of a TV shader that you can try. I didn't write it; a link to the original source is in the archive. I removed a couple of components that didn't work well, especially the flicker. Just a warning, it's not that well optimized -- it requires shader model 3.0 and runs at about 7ms/frame on my Quadro K2100. This means that even if you do get it to run you may run into frame rate or vsync problems depending on how fast your graphics card is. However, it looks pretty neat. Unfortunately, running .cg shaders verbatim is not going to be possible since there is simply too great of a difference between Cg and HLSL and the shaders often have a lot of constructs that are not valid in the ps_3_0 profile, even if not actually used. 1) in the debugger: ba r seems to react also on writes. ba r $0600, later POKE $0600,0 from the SDX prompt, hit on STA (BUFADR),Y [$00:0600]. Same reaction in BASIC on POKE 1536,0. This is unfortunately due to how the CPU core and memory breakpoint systems work in the emulator. On a real 6502 or 65816, indexed store instructions always do a possibly false read followed by a true write. The reason is that the CPU needs an additional cycle to process a carry on a page crossing, and while indexed loads are optimized by doing a speculative read without doing the carry to try to save a cycle, writes can't be done speculatively. This means that for indexed stores the CPU always does a dummy read cycle at a possibly incorrect address before doing the write at the correct address. Altirra emulates this in the CPU core because there are cases where this matters, particularly if the dummy read hits a hardware register that is read sensitive (PIA data register, IDE data register, cartridge banking registers). The problem is that access breakpoints are implemented as a memory layer in the memory subsystem and thus it too sees these false reads. In turn, the way the CPU core works, it doesn't know whether this read is a false read until the next cycle where it computes the carry. The result is that read breakpoints will frequently trigger on indexed writes. It is also possible to get false reads from branches since the CPU will also do a false instruction read in that case. It's all accurate to the real hardware behavior, but not frequently useful. I've been trying to think of ways to fix this and allow the CPU core to identify false reads for the breakpoint system, but haven't figured out a good way to do so without slowing down the CPU emulation. In the meantime, the only good workaround is to use conditional breakpoints to filter the read breakpoints so they don't trip on the problematic instructions, i.e.: bx "read=(address) and db(pc) != $91". It's annoying, but it's better than nothing. The 65816 core has the same issues, but it's a bit more problematic there because the 65816 explicitly signals when it is doing internal operation (IO) cycles, making it easier for the motherboard to ignore those cycles and avoid unnecessary wait states. I haven't worried about this much because the 65816 mode doesn't attempt to be cycle-exact to anything physical, but it'd be more of an issue if I did (like, say, Rapidus). 2) the audio monitor: perhaps I am interpreting its display incorrectly, but does it show the state of the second Pokey when the stereo is enabled? A little description would be helpful, but I was unable to find it in the help file (a search for /Audio monitor/ returns nothing). The help file is out of date -- I only recently added the second audio monitor in stereo mode. But yes, as you've discovered, when SlightSID emulation is enabled it replaces the standard POKEY monitor. If I disable SIO Burst Transfers for Disk (D:) under System --> Acceleration, it's golden. I _think_ I had this setting on under recent previous versions of Altirra when it was still working though. But I can't absolutely swear to it. Under the same Acceleration area, I can leave the D: patch (Disk SIO) enabled without trouble. And yes, I do have (and had all along) the SIO Override Detection enabled to avoid issues with U1MB/SIDE2/PBI HDD and Altirra acceleration. I hope this helps. PS: I haven't seen the sub-modes for Burstio IO acceleration (interrupt & polled) in the configure menu for a while. The help file still refers to them though. I wasn't able to reproduce the issue with PCLink, but I did run into some odd behavior with the PBI BIOS's high speed driver enabled that may have given a clue. Give the above build a shot. The issue has to do with what happens when the computer tries to send a command while the device is still busy with a previous one. The common behavior is that the device ignores the second command, and a less common behavior is that it interrupts the first command to process the second. The emulator's SIO manager was doing some unholy mix of the two, which may have resulted in some garbled command responses. Older versions of the emulator required you to pick whether the SIO routine was interrupt-based or polling-based as it had two separate strategies for doing burst I/O. I figured out how to combine the two, so current versions only have a single option. As usual, the documentation is out of date. VintageTV.zip Edited May 13, 2016 by phaeron 4 Quote Link to comment Share on other sites More sharing options...
atx4us Posted May 13, 2016 Share Posted May 13, 2016 Hello Everybody, I'm trying to catch up with the Altirra recent developments and the VintageTV topic seems interesting. Can someone please briefly tell me how to use the VintageTV file(s)? Thanks. Quote Link to comment Share on other sites More sharing options...
fujidude Posted May 13, 2016 Share Posted May 13, 2016 (edited) Great news! I just saved a bunch of money on car insurance. LOL, no, rather test 36 seems to have cleared up the issue with PCLink and Burst IO acceleration. On a related note; is it safe to use the /S switch on PCLINK.SYS? Using it forces PCLink to use the stock OS SIO routines rather than the SDX optimized ones. I would like to do that because under Altirra with the D: patch, the stock OS routines are intercepted and handled by routines in the emulator which run more at host machine speed. So it ends up being faster than even the SDX optimized SIO routines (or any other speedy SIO solution native to the Atari). It's not a huge thing, as burst IO acceleration is pretty fast too. Reliability is of course a higher priority for me than raw speed, but the most speed while still maintaining reliability is what I'm after. Edited May 13, 2016 by fujidude Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 13, 2016 Share Posted May 13, 2016 The /S switch is dropped (for reasons of unreliability) in SDX 4.48, so if looking to upgrade, no. Quote Link to comment Share on other sites More sharing options...
fujidude Posted May 13, 2016 Share Posted May 13, 2016 The /S switch is dropped (for reasons of unreliability) in SDX 4.48, so if looking to upgrade, no. That is a concise answer, and is precisely the information I was looking for. Goodbye "/S" on PCLINK.SYS Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted May 13, 2016 Share Posted May 13, 2016 (edited) Hello Everybody, I'm trying to catch up with the Altirra recent developments and the VintageTV topic seems interesting. Can someone please briefly tell me how to use the VintageTV file(s)? Thanks. First, grab the other shaders from this post, it also has the how to there but I'll run through it any way.. http://atariage.com/forums/topic/246939-altirra-270-released/page-19?do=findComment&comment=3502384 Right make sure you have beta 33 onwards then unpack the shaders where ever you like. After that go to tools / options display effects then browse to the .cgp file ie vintage.cgp. Then the fiddly bit that needs to be done only once, go to tools Keyboard Shortcuts, in the list on the left look for View.EffectRelad, now select a key combination to activate it, once you have decided on your shorcut key(s) push those keys while making sure the cursor in in the text input box to the right of shorcut Global and click add. Now hit your selected shortcut key(s) and the effect will be shown as long as your DirectX is up to date, see Phaerons post mentioned above if its not. If you want a crazy effect the select the Rotate effect cgp file from the above link. And lastly, to stop the effect simply go back to the Tools, options, display effects place and delete the path to the cgp file, ok it and it should stop, If you don't delete the path it will start again the next time you run Altirra so if its one you like there's no need to keep choosing the effect. Edited May 13, 2016 by Mclaneinc Quote Link to comment Share on other sites More sharing options...
atx4us Posted May 13, 2016 Share Posted May 13, 2016 First, grab the other shaders from this post, it also has the how to there but I'll run through it any way.. Thanks, Paul for your helpful hints. I'll be sure to check it out to see what Avery has been up to Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted May 13, 2016 Share Posted May 13, 2016 Thanks, Paul for your helpful hints. I'll be sure to check it out to see what Avery has been up to Sorry for the ever so simple break down but I thought that there may be others who are not as experienced as yourself who might be stuck so I did it step by step for them. Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted May 13, 2016 Share Posted May 13, 2016 Am I going mad or is the right hand cart slot option gone? Don't remember it being mentioned as removed? Quote Link to comment Share on other sites More sharing options...
atx4us Posted May 14, 2016 Share Posted May 14, 2016 Sorry for the ever so simple break down but I thought that there may be others who are not as experienced as yourself who might be stuck so I did it step by step for them. I got the shader effects running. I created a new folder under the Altirra folder called "Shaders" and put all of the shader related files in the new folder. I share the others opinions here, the rotate.cgp can seriously induce motion sickness And, the vintage tv.cgp is quite realistic. Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted May 14, 2016 Share Posted May 14, 2016 I like the Vintage TV but my old card struggles a little with it, its still pretty smooth but from the extra fan I'm hearing its not all that happy But its exactly what Phaeron mentioned in his post.. One day I'll upgrade but its not even on my when I win the lottery list Quote Link to comment Share on other sites More sharing options...
serj Posted May 14, 2016 Share Posted May 14, 2016 Yes, a great filter has turned out.there would be more to add phosphorous glow - it would do well. and more like adding a good custom filter scanline. Quote Link to comment Share on other sites More sharing options...
serj Posted May 14, 2016 Share Posted May 14, 2016 (edited) very sorry that the screenshots are creating without the use of filters. I found an error in the filter.These are the vertical bands become visible in full screen mode. Edited May 14, 2016 by serj Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted May 14, 2016 Share Posted May 14, 2016 Not seeing it here Serj, wonder if its different on different graphics cards? Mines an Nvidia. Quote Link to comment Share on other sites More sharing options...
phaeron Posted May 14, 2016 Author Share Posted May 14, 2016 Haven't seen the full-screen bars yet either. Took a quick look at the shader and shaved about 10% off by switching the float framebuffer to half precision, but what's mainly killing it is the main CRT shader that has both a ton of texture samples and a lot of manual sRGB<->linear conversions. It's only about 1.6ms/frame on my NVIDIA-based system but is ~5ms/frame on the Intel Skylake GPU. Update: http://www.virtualdub.org/beta/Altirra-2.80-test37.zip http://www.virtualdub.org/beta/Altirra-2.80-test37-src.zip Adds support for a Parallel Bus Interface (PBI) based acceleration hook. Add it from Devices, and it'll add a PBI device on ID 7 that will try to accelerate anything that the regular SIO patch is enabled for. Seems to work for both disks and PCLink on SDX 4.47 without needing to MAP to OS mode. 2 Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted May 14, 2016 Share Posted May 14, 2016 (edited) What about the right hand cart slot, did you remove it and I've forgotten? Sorry Avery, ignore, brain blank.....Must be stress, must try and sleep some time Edited May 14, 2016 by Mclaneinc Quote Link to comment Share on other sites More sharing options...
fujidude Posted May 14, 2016 Share Posted May 14, 2016 Adds support for a Parallel Bus Interface (PBI) based acceleration hook. Add it from Devices, and it'll add a PBI device on ID 7 that will try to accelerate anything that the regular SIO patch is enabled for. Seems to work for both disks and PCLink on SDX 4.47 without needing to MAP to OS mode. Hi Avery. Again, thanks for your efforts. Although I am familiar with the terminology, it's not really clear to me what that says above. How would this PBI "hook" provide acceleration that the regular SIO patch doesn't already? I think my lack of understanding of what you mean exactly by "PBI hook" and "OS mode" are contributing to my confusion. Quote Link to comment Share on other sites More sharing options...
phaeron Posted May 14, 2016 Author Share Posted May 14, 2016 (edited) Emulator SIO patches traditionally work by intercepting the SIOV vector in ROM. Problem is, SpartaDOS X doesn't use SIOV, which is why SIO patches typically don't work with it. However, it does call into Parallel Bus Interface device firmware if it is present. So all the new device does is add a PBI device to intercept the SIO calls. There are ways to direct recent versions of SDX to use SIOV. For disk drives, the MAP command will do this (MAP 1 OS for D1:), and for PCLINK.SYS, this used to be /S. However, there are some limitations on this, and you also have to manually enable it. Using PBI to hook requests also has the benefit of hooking at the end of a priority chain, so if the PBI BIOS is present it has priority over the emulator's hook instead of the other way around. This would make the SIO override option unnecessary if only PBI hooking were enabled. This isn't possible yet as the PBI hook can only be enabled if the SIOV hook is also enabled, but I'll probably be fixing that. One downside of the PBI hook is that it requires an XL/XE system and also an XL/XE OS that still supports PBI; some modified OSes have ripped out the PBI support. The second downside is that not all DOSes support PBI. The third downside is that it slightly delays the timing for SIO requests that aren't intercepted since the OS is doing extra work to poll PBI devices on every SIO request. Edited May 14, 2016 by phaeron 1 Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted May 14, 2016 Share Posted May 14, 2016 Does the emulator have more than one PCL:? Now no matter which PCL drive I address returns the same as PCL1 through PCLO: Also SIOSET has been returning 15 US $09.with no drive installed except the partition O: I have Ultimate memory set and 13 partitions FDISKed as C: through O: Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 14, 2016 Share Posted May 14, 2016 Only one PCL: drive, since there's only one server path. DUNIT is ignored. Quote Link to comment Share on other sites More sharing options...
Timothy Kline Posted May 15, 2016 Share Posted May 15, 2016 Good afternoon, everyone! For the life of me, I cannot figure out how to check out the built-in VBXE emulation available through the latest Altirra release. I have a VBXE on the way from Lotharek (going out in the mail this week, I believe), but was hoping to just have a sneak preview in emulation. I downloaded The Last Word's most-recent release (v3.3 Test 7), but Altirra crashes about three boxes into the progression graph of TLW's loading screen. My current settings for Altirra are 800XL with XL OS. First I tried SDX but TLW came up and said it needed Atari DOS, so I switched to DOS 2.5. That got me past that error, allowing the actual loading screen to appear and the progression bar to begin. But by that 3rd box, Altirra reports that it crashed and offers its usual recommendations (320k and/or PAL). I've tried both, with the same result. As a former Atari800Win user during my Atari hardware sabbatical (ha ha), I admit finding Altirra sometimes overwhelming with its options, but absolutely love its full-screen mode over that of Atari800Win. It's just when I try activating the 3rd party hardwares that it seems to fall apart for me, including ICD MIO emulation, and now VBXE. I do want to apologize if this has been answered elsewhere, but I really did spend a couple hours searching for a solution (and getting distracted by all the great discussions going on here that show me just how behind the curve I am). Any help would certainly be appreciated, though! Thank you, in advance! Tim Quote Link to comment Share on other sites More sharing options...
Timothy Kline Posted May 15, 2016 Share Posted May 15, 2016 Follow-up: I found a post by FJC that got me on the right path to the solution! Yayy! So, please ignore most of my previous post, although I'd still love to know how I can get the MIO emulation up and running, still. --Tim Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 15, 2016 Share Posted May 15, 2016 You need to add the MIO device via System->Devices->Add..., then click Add again with the MIO device selected and attach a hard disk. You also need to go into Firmware options and add the MIO ROM. I haven't tested MIO emulation much, but here's a selection of ROMs you can try: MIO ROMs.zip Quote Link to comment Share on other sites More sharing options...
Timothy Kline Posted May 15, 2016 Share Posted May 15, 2016 You need to add the MIO device via System->Devices->Add..., then click Add again with the MIO device selected and attach a hard disk. You also need to go into Firmware options and add the MIO ROM. I haven't tested MIO emulation much, but here's a selection of ROMs you can try: MIO ROMs.zip Hi, FJC, and thank you for your response. I thought I did do what you recommended when I was trying, but then again, the shine is still on my noobness, so I'll go back and doublecheck my steps again--especially now that I figured out what I was doing wrong with the VBXE issue (thanks to your lead, in fact!). ^_^ --Tim 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.