diff options
author | Vas Crabb <vas@vastheman.com> | 2022-07-04 05:42:04 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2022-07-04 05:42:04 +1000 |
commit | e26797d69c62f33675c916f6388d55ca38501b9f (patch) | |
tree | 7b7165f264e977323e42ece75e8f44b3a9020196 /src/lib/util | |
parent | b1002b8362581edd0f99be18d7e5bff8c25b67d1 (diff) |
bus/nubus: Implemented enough for interlaced modes not to hang.
Implemented more CRTC registers, getting to the point where System 6.0.8
and System 7.0.1 will show video on NTSC and PAL displays with
approximately correct interrupt timings. Also implemented 1:2:1
convolutions (this blurs the image vertically - in real life it reduces
interlace flicker).
Screen update in interlaced modes isn't right yet - it updates every
line on every frame, and there's a vertical offset caused by the initial
half-line.
Diffstat (limited to 'src/lib/util')
-rw-r--r-- | src/lib/util/endianness.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lib/util/endianness.h b/src/lib/util/endianness.h index aa83421f1d7..b93c1ffe44f 100644 --- a/src/lib/util/endianness.h +++ b/src/lib/util/endianness.h @@ -56,6 +56,7 @@ public: constexpr offset_endian_cast(In *ptr, std::ptrdiff_t offs) noexcept : m_ptr(reinterpret_cast<Out *>(ptr)), m_offs(offs) { } constexpr Out &operator[](std::ptrdiff_t i) const noexcept { return m_ptr[(m_offs + i) ^ ((Endian != endianness::native) ? SWIZZLE : 0)]; } + constexpr Out &operator*() const noexcept { return m_ptr[m_offs ^ ((Endian != endianness::native) ? SWIZZLE : 0)]; } constexpr offset_endian_cast operator+(std::ptrdiff_t i) const noexcept { return offset_endian_cast(*this) += i; } constexpr offset_endian_cast operator-(std::ptrdiff_t i) const noexcept { return offset_endian_cast(*this) -= i; } |