Jump to content

sage

Members
  • Posts

    1,374
  • Joined

  • Last visited

Posts posted by sage

  1. On 2/22/2023 at 9:37 AM, Stephen Moss said:

    The PSU voltage output must be regulated, which it should be on a USB PSU as they are set to 5V to comply with USB standards.

    You trust a cheap USB switch enough to deliver 5V according to USB standard? And, how much over-voltage is allowed by the standard? Is it below the limits the Lynx chips can safely operate?

  2. On 2/2/2023 at 10:28 AM, laoo said:

    I dug a little into the topic, and indeed there were compilation problems. But few simple fixes and one workaround for GCC bug and libFelix happily compiles under gcc 11.

    I'm not adding any makefile now though as libFelix needs some small tweaks to be really usable by other entities than WinFelix.

    not really. My main issue is that some stuff from the boost in the std c lib as it is c++20, like std::ranges std::span etc...

    also no success with clang.

     

  3. 5 hours ago, laoo said:

    That can be tweaked for time being. But I'm in a process of researching GLFW/Vulkan to get rid of DX11 so I hope that in few months it can be compiled everywhere (with some wrappers on Mac, as it has its own Metal, but Vulkan can be translated to it AFAIK).

    but thats part of the platform part, not emulator core ...

  4. 16 hours ago, laoo said:

    Have you ever observed TIMER_DONE bit of CONTROLB timer register?

    I'm actually testing it while investigating this issue, and found that it's always zero, regardless if reload is set or not.

    Furthermore:  LAST_CLOCK seems to be 1 just before the clock when the counter is decremented (so it's observable with prescaler greater than 1)

    BORROW_IN is 1 even when the timer is not being linked but just in every cycle the timer is decremented.

    Only BORROW_OUT bit is reasonable and behaves like I expect it to do.

    unluckily not. but it could explain why comlynx is emulated badly. redeye code uses one shot timers.

     

    16 hours ago, laoo said:

    The project is cleanly divided into libFelix that is platform agnistic and just does the emulation, and application itself that does I/O and A/V.

    It might be CPU hungry though (as it ultimately aims to be cycle exact without cheating).

    yes. but unluckily does not compile under linux yet... will give it a try again after updates.

    I would happily include it into sdl-handy

  5. 1 hour ago, laoo said:

    For one-shot timers without reload you just need to remember to set INTRST at the end of the interrupt as it will almost certainly shot another time during interrupt handler. Beside this their the same. Frankly, this "feature" feels buggy to me.

    I wonder if the timer done bit is set differently.

  6. 1 hour ago, laoo said:

    Sorry for the clickbait title, but what I've found is hard to explain in a title.

    I don't actually know whether it's genuinely unknown feature, but I haven't read about it in the docs and author of Handy haven't read about it too, so I suspect it's something new.

     

    tl;dr:

     

    When enabling linking of two timers with higher timer triggering an interrupt and with no reloading, after counter underflows the interrupt is being triggered at each borrow.

     

     

    TIMER_DONE does not prevent triggering an interrupt after borrow from previous timer and the interrupt is being triggered each time the previous timer underflows.

     

    That's it. That's the mystery. A minor thing, but a thing. I'll just incorporate the fix into the Felix :)

    It is know that Timers are not emulated prefect in Handy, esp audio timers which high frequency are no emulated.

    But the linking is a nice find.

×
×
  • Create New...