Попробовал компилировать под Windows в Qt Creator 4.6.0.
Конфигурация Desktop Qt 5.6.3 MinGW 32bit.
Собралось без ошибок и варнингов (и это отлично).

При запуске пустое окно со списком платформ -- тут было бы здорово писать сообщение о том что нужно положить/настроить emu80.conf, также стоит это написать в README.md в исходниках.
Затем, после того как я положил emu80.conf и запустил конфигурацию rk86 -- видимо программа не нашла папки rk86, программа работает в фоне, ошибок не показывает -- тут надо показать окно-алерт и завершиться или вернуться в окно выбора платформы.

При выборе команды Debug -- segmentation fault в DebugWindow::draw() строка 257.
Эта проблема решилась тем что подложил файл dbgfont.bin. Но тут нужно проверять что шрифт не загрузился.
Ну и отладчик лучше было переделать в графический конечно, выделить в отдельные окна просмотр памяти и всё остальное.

- - - Updated - - -

Несколько подозрительных мест в коде:

1. Debugger.cpp:130
Код:
    memset(&m_states, sizeof(m_states), 1);
Похоже на то что перепутаны местами значение и количество байт.

2. Debugger.cpp:1035
Код:
    if (useInitialNumber) {
        m_inputCurPos = nDigits - 1;
        m_inputCurValue = int2Hex(initialNumber, nDigits);
    } else {
        m_inputCurPos = 0;
        m_inputCurValue = "";
    }
    m_inputCurPos = 0;
Странно что m_inputCurPos сначала вычисляется в зависимости от условия, а потом обнуляется.

3. ConfigReader.cpp
В функции ConfigReader::createObject() два раза одна проверка:
Код:
    else if (typeName == "Ut88MemPageSelector")
        obj = new Ut88MemPageSelector();
4. CpuZ80.cpp:377
Код:
            cbits = (IXY ^ IXY ^ sum) >> 8;
IXY ^ IXY -- странно что одно и то же значение, по идее это даёт 0.

5. CpuZ80.cpp:841
Код:
    case 0x08:          /* EX AF,AF' */
        af[af_sel] = AF;
        af_sel = 1 - af_sel;
        AF = af[af_sel];
        break;
Что-то тут не так, AF это af[af_sel], то есть первая и третья строчки делают присваивание в себя.

И вот тут ниже подобный код, думаю та же проблема:
Код:
    case 0xD9:          /* EXX */
        regs[regs_sel].bc = BC;
        regs[regs_sel].de = DE;
        regs[regs_sel].hl = HL;
        regs_sel = 1 - regs_sel;
        BC = regs[regs_sel].bc;
        DE = regs[regs_sel].de;
        HL = regs[regs_sel].hl;
        break;
6. Eureka.cpp:70
Код:
    m_useRomDisk = value && 0x80;
Логический AND между bool и константой -- непонятно что это значит.