Важная информация

User Tag List

Страница 35 из 98 ПерваяПервая ... 313233343536373839 ... ПоследняяПоследняя
Показано с 341 по 350 из 980

Тема: Emu80 v.4

  1. #341
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,180
    Спасибо Благодарностей отдано 
    263
    Спасибо Благодарностей получено 
    456
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZEman, FORMULA - похоже, что проблема именно в эмуляторе. Не разбирался еще, но надеюсь, что в следующих версиях исправлю.
    MARSIANE - не смотрел еще толком.

    Кнопка Mute и автоскрытие указателя мыши есть в планах, сделаю рано или поздно (скорее рано, чем поздно .

  2. #342
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,180
    Спасибо Благодарностей отдано 
    263
    Спасибо Благодарностей получено 
    456
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Разместил исходники Qt-версии на github
    Работа под Windows и Linux протестирована, желающие могут попробовать собрать и под другие ОС

  3. #343
    Master
    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    910
    Спасибо Благодарностей отдано 
    20
    Спасибо Благодарностей получено 
    272
    Поблагодарили
    149 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    MARSIANE - не работает и в других эмуляторах, возможно, поврежденный файл? Впервые вижу эту игру, откуда он вообще?
    Цитата Сообщение от ZEman Посмотреть сообщение
    скачивал откуда-то, не помню точно.
    ZEman, вы специально троллите разработчика(-ов) эмулятора(-ов) битыми игрушками?

    ---

    marsiane.rk - возможно выдрана из пакета O1.GAM (ссылка)
    В составе пакета она работает.

    Скрытый текст

    Александр Дëмин тоже "шутник" - как играть в игрушку "ПРОГРАММАТОР ПЗУ" в онлайн-эмуляторе ?
    Ну, и стоит упомянуть, что в каталоге с его эмулятором много полубитых игрушек и/или игрушек не с Радио-86РК (много с Партнёра)
    [свернуть]
    Последний раз редактировалось DDp; 30.04.2018 в 23:01.
    D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

  4. #344
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,180
    Спасибо Благодарностей отдано 
    263
    Спасибо Благодарностей получено 
    456
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Эх, занялся бы кто-нибудь созданием единого репозитория всех известных игр (или не только игр) для РК и клонов...
    А то такой зоопарк уже развелся... Причем самое неприятное, что многие даже не работают на реале: только в некоторых эмуляторах
    Сам бы взялся, но времени на это жалко.

    - - - Добавлено - - -

    Цитата Сообщение от ZEman Посмотреть сообщение
    вот такая есть странность:
    игра запущенна в режиме микроши на обоих эмуляторах.
    Вопрос про "Ъ"? Ну да, знакогенератор Микроши слегка отличается от знакогенератора РК, в том числе и символом с кодом 7F. На РК это почти полностью закрашенный прямоугольник, а на Микроше - твердый знак.

    - - - Добавлено - - -

    В помощь тем, кто будет собирать из исходников Qt-версию под Linux: мне в Debian 9 пришлось дополнительно установить следующие пакеты:
    • qtbase5-dev
    • qtmultimedia5-dev
    • libqt5multimedia5-plugins (если не установить, не будет звука)
    • qt5-default (как обойтись без него, пока не разбирался)

    Если не сложно, напишите, какие пакеты понадобилось установить в используемом вами дистрибутиве.

  5. #345
    Master
    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    910
    Спасибо Благодарностей отдано 
    20
    Спасибо Благодарностей получено 
    272
    Поблагодарили
    149 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    Цитата Сообщение от Pyk Посмотреть сообщение
    MARSIANE - не работает и в других эмуляторах, возможно, поврежденный файл? Впервые вижу эту игру, откуда он вообще?
    Цитата Сообщение от ZEman Посмотреть сообщение
    скачивал откуда-то, не помню точно.
    ZEman, вы специально...

    Вот, оттуда (kas17.zip прямая ссылка) он взял marsiane.rk . Но...
    1) кроме этой, все остальные программы там для Микроши...
    2) имеется интересный файл zagr_rk86.rkm
    Это загружаемый монитор 86РК для Микроши.
    1. загружаем в Микрошу zagr_rk86
    2. запускаем G5800
    3. загружаем marsiane
    4. запускаем G100
    Резюме: файл не битый, но не для Радио-86РК ! ( гемплей оценивать не буду )
    Вложения Вложения
    D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

  6. #346
    Guru Аватар для ZEman
    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,052
    Спасибо Благодарностей отдано 
    113
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    23 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Вопрос про "Ъ"? Ну да, знакогенератор Микроши слегка отличается от знакогенератора РК, в том числе и символом с кодом 7F. На РК это почти полностью закрашенный прямоугольник, а на Микроше - твердый знак.
    ага именно это и имел ввиду.
    в одном полоски в другом "Ъ".

    скачивал я файлы давно и из разных источников, извините если что-то напутал.
    особенно когда в файле указано расширение rk без последней буквы указывающей на тип компьютера.

  7. #346
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #347
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробовал компилировать под 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 и константой -- непонятно что это значит.

  9. #348
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,180
    Спасибо Благодарностей отдано 
    263
    Спасибо Благодарностей получено 
    456
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, спасибо за внимание к эмулятору!

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Собралось без ошибок и варнингов (и это отлично).
    Какой компилятор? clang? У меня gcc6 выдавал кажется один варнинг где-то - не успел избавиться...

    Цитата Сообщение от nzeemin Посмотреть сообщение
    memset(&m_states, sizeof(m_states), 1);
    Ошибка, хотя и не очень критичная. Должно быть memset(&m_states, 0, sizeof(m_states));

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Странно что m_inputCurPos сначала вычисляется в зависимости от условия, а потом обнуляется.
    Пробовал разные варианты, забыл убрать лишнюю строку.

    Цитата Сообщение от nzeemin Посмотреть сообщение
    В функции ConfigReader::createObject() два раза одна проверка:
    fixed

    Цитата Сообщение от nzeemin Посмотреть сообщение
    cbits = (IXY ^ IXY ^ sum) >> 8;
    Так в оригинале у Frank D. Cringle (на его коде основан исходник), надо разбираться.


    Цитата Сообщение от nzeemin Посмотреть сообщение
    Что-то тут не так, AF это af[af_sel], то есть первая и третья строчки делают присваивание в себя.
    Не, не, см. 2-ю строчку, индекс-то меняется!

    Цитата Сообщение от nzeemin Посмотреть сообщение
    И вот тут ниже подобный код, думаю та же проблема:
    Аналогично

    Цитата Сообщение от nzeemin Посмотреть сообщение
    m_useRomDisk = value && 0x80;
    Логический AND между bool и константой
    Баг, но по стечению обстоятельств не проявивший себя. Довольно часто такие ошибки делаю - пишу логические операции вместо битовых и наоборот

    Еще раз спасибо за тестирование, исправленные исходники в репозитории (кроме вопроса насчет IXY).

    - - - Добавлено - - -

    Цитата Сообщение от nzeemin Посмотреть сообщение
    При запуске пустое окно со списком платформ -- тут было бы здорово писать сообщение о том что нужно положить/настроить emu80.conf
    Согласен, сделаю.

    Цитата Сообщение от nzeemin Посмотреть сообщение
    также стоит это написать в README.md в исходниках
    Там процедура установки описана, которая сама все положит куда нужно...

  10. #349
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyk, компилятор -- g++ из MinGW.
    Вообще было бы здорово и MSVC поддерживать, VS2013 или VS2015.

    Не, не, см. 2-ю строчку, индекс-то меняется!
    Ну давай раскроем шаблон AF и вот так запишем:
    Код:
        case 0x08:          /* EX AF,AF' */
            af[af_sel] = af[af_sel];
            af_sel = 1 - af_sel;
            af[af_sel] = af[af_sel];
            break;
    Получается что меняется только af_sel, может оно и правильно, но зачем тогда лишние присваивания.

    - - - Updated - - -

    7. Ut88.cpp:65, Micro80.cpp:69
    memset два раза, странный размер m_bufSize, а выделяется до этого 512 * 512, совсем не факт что эти две величины равны.

    8. CpuZ80.cpp:281
    Код:
                cbshflg1:
                    AF = (AF & ~0xff) | (temp & 0xa8) |
                        (((temp & 0xff) == 0) << 6) |
                        parity(temp) | !!cbits;
    Тут что-то странное, два оператора логического NOT дают тип bool, с которым делают побитовую операцию -- в общем, тут надо копать.

  11. #350
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,180
    Спасибо Благодарностей отдано 
    263
    Спасибо Благодарностей получено 
    456
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Вообще было бы здорово и MSVC поддерживать, VS2013 или VS2015
    Так MSVC поддерживается, хотя я нигде явно это не афишировал. По крайней мере, я периодически собираю в MSVC 2015 x32 и x64. Для того, чтобы официально объявить о поддержке, не хватает некоторых мелочей: есть проблемы с отображением статусной строки в последних версиях (что-то с интерпретацией unicode-констант в исходниках) и нечитаемые варнинги при сборке из-за русской локали установленного у меня MSVC. Думаю, что и с тем, и с другим вполне можно разобраться, но опять-таки - руки не дошли...

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Ну давай раскроем шаблон AF и вот так запишем:
    Так в данном контексте AF вроде бы переменная и ее нельзя так раскрыть!


    Цитата Сообщение от nzeemin Посмотреть сообщение
    Ut88.cpp:65, Micro80.cpp:69
    memset два раза, странный размер m_bufSize, а выделяется до этого 512 * 512, совсем не факт что эти две величины равны
    Да, похоже, что лишняя память выделяется, а в memset размер правильный. Завтра внимательно проверю.

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Тут что-то странное, два оператора логического NOT дают тип bool, с которым делают побитовую операцию
    Опять-таки не мой код, сильно подозреваю, что !!cbits эквивалентно чему-то вроде (cbsts == 0 ? 0 : 1);

Страница 35 из 98 ПерваяПервая ... 313233343536373839 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 00:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •