Jump to content

Atari Nut

Members
  • Content Count

    433
  • Joined

  • Last visited

Posts posted by Atari Nut


  1. Thanks for the suggestion. I configured Altirra to use a 1050 with ROM version L but it still doesn't work.

     

    It does work if I either enable the patch "D:patch (Disk SIO)" OR untick "Accurate Sector Timing". Which one would be the better to use thinking about what may not work?


  2. Update:

    http://www.virtualdub.org/beta/Altirra-2.80-test36.zip

    http://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.

     

     

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

     

     

    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.

     

     

    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.

     

    The VintageTV shader is cool. Is there a way to round the corners with this?


  3. Most likely a bad unit or compatibility problem with the TV. Others have reported no sound issues at all playing the same games as mentioned here.

     

    It's not a bad unit. If you look up in the thread, you will see that I returned the original unit and bought a different unit from a different retailer. It's a compatibility with certain TVs as the problem occurs on the two TVs I have here.


  4. Does anyone know the maximum of characters that is accepted in flashback 9? I noticed that the console can only read the roms with small names with no space between them and with few letters, also does not accept any kind of special character, we have to write as short as possible and no space between letters. I found it very tiring to have to rename all roms if you want to play them, Retron is a much better option than Flashback ....

     

    Mine reads long names with special characters...

     

    Wizard_Of_Wor_(1982)_[CBS_Electronics].bin

    • Like 2

  5. Thanks for that explanation. Understanding exactly what this means makes it a lot easier. The Dead Zone has been adjusted but I am having difficulty with games that use joystick 2 for one player...Wizard Of Wor for example. There is a mapping "Gamepad -> Joystick (port 1) Unit 1. How do I create the same mapping for port 2? 5200 mapping is a problem also. How do I create a mapping where I use the Keyboard and the Gamepad?


  6. Thank you for the help. I am just trying to play the games already on the console. No SD card. This is actually my second one. I bought one yesterday. I thought, like you, that it was probably defective. I took it back today and exchanged for a new one. It is doing the same thing. I have emailed At Games customer service. He asked me for the brand and model number of the monitor I am trying to play on. I guess he is thinking that maybe certain monitors / displays are not compatible. But what gets me is that it displays everything fine. I can scroll through the menu of games, select games, etc. It just won't play them. I am about to try to hook it to my TV and see what it does. It's got me stumped. Seems like if there's ever a problem no one has had before, I'll have it! LOL.

    Thanks again!

     

    I have a sound issue with mine that no one else here has so you're not the only one!

×
×
  • Create New...