public WriteOamDirect(int position, OamEntry value, boolean skipHl) {
    this.clear = value.equals(OamEntry.DISABLED);
    skipHlAddressOffset = skipHl ? 3 : 0;
    skipHlCycleOffset = skipHl ? -12 : 0;
    
    inputMap.put(skipHlCycleOffset + 20, toJoypadInput1(position << 2));
    inputMap.put(skipHlCycleOffset + 36, toJoypadInput2(position << 2));
    
    if (!clear) {
      for (int i = 0; i < 4; i++) {
        inputMap.put(skipHlCycleOffset + 36*i + 48, toJoypadInput1(value.get(i)));
        inputMap.put(skipHlCycleOffset + 36*i + 48 + 16, toJoypadInput2(value.get(i)));
      }
    }
  }