                     for spriteIndex in (0...7).reversed() {
                         if state.spriteDisplay[spriteIndex] {
                             let previousCycleRasterX = state.rasterX >= 8 ? state.rasterX - 8 : configuration.xLimits.last + state.rasterX - 8
-                            if state.m_x[spriteIndex] == previousCycleRasterX {
+                            if state.pipe.m_x[spriteIndex] == previousCycleRasterX {
                                 state.spriteShiftRegisterCount[spriteIndex] = 24
                             }
                             if state.spriteShiftRegisterCount[spriteIndex] > 0 {

    internal func readByte(_ position: UInt8) -> UInt8 {
        switch position {
        case 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E:
            return UInt8(truncatingIfNeeded: state.m_x[Int(position >> 1)])
        case 0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F:
            return state.m_y[Int((position - 1) >> 1)]
        case 0x10:
            var value = (state.m_x[0] & 0xFF00) >> 8
            value |= (state.m_x[1] & 0xFF00) >> 7
            value |= (state.m_x[2] & 0xFF00) >> 6
            value |= (state.m_x[3] & 0xFF00) >> 5
            value |= (state.m_x[4] & 0xFF00) >> 4
            value |= (state.m_x[5] & 0xFF00) >> 3
            value |= (state.m_x[6] & 0xFF00) >> 2
            value |= (state.m_x[7] & 0xFF00) >> 1
            return UInt8(truncatingIfNeeded: value)
        case 0x11:
            return (state.yScroll & 0x07) | (state.rsel ? 0x08 : 0) | (state.den ? 0x10 : 0) | (state.bmm ? 0x20 : 0) | (state.ecm ? 0x40 : 0) | UInt8((state.raster & 0x100) >> 1)

    fileprivate var currentLine: UInt16 = 0
    
    //MARK: Registers
    fileprivate var m_y: [UInt8] = [UInt8](repeating: 0, count: 8) // Y Coordinate Sprite
    fileprivate var yScroll: UInt8 = 0 // Y Scroll
    fileprivate var rsel = true // (Rows selection)?
