Автор Тема: Makaron - Эмулятор Sega Dreamcast  (Прочитано 492112 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2100 : 09 Октябрь 2013, 21:19:53 »


Точно такая же ошибка.

Как исправить эту ошибку? Проверил все настройки, ничего не помогло.


И зачем вы распространяете вирусы?

set.exe vert.exe pause.exe

https://www.virustotal.com/ru/file/21384632c942c052b67d02217d09cc5527c6b3e18273474188f122aa7da80030/analysis/1381338692/

Думал MakaronEx установить, а там на все дополнительные файлы начало ругаться, троян и т.п

Что эти файлы делают? запустил в песочнице, включил настройку времени, запустился там cmd.exe ,set.exe ... Открылся makaron.dll запустился эмулятор, потом ошибка похожая как на скрине только там что-то про ..urom.. было написано. Потом кнопки стали сами по себе нажиматься и т.п


Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2101 : 09 Октябрь 2013, 21:22:30 »
Ох уж этот паскаль

Оффлайн cptPauer

  • Пользователь
  • Сообщений: 4178
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2102 : 09 Октябрь 2013, 22:21:42 »
Цитата
Что эти файлы делают? запустил в песочнице, включил настройку времени, запустился там cmd.exe ,set.exe ... Открылся makaron.dll запустился эмулятор, потом ошибка похожая как на скрине только там что-то про ..urom.. было написано. Потом кнопки стали сами по себе нажиматься и т.п
Добавляй смело в исключения, там нет вирусов, это враппер такой. Касперский, Майкрософт же не ругаются, а Симантек пишет, что подозрительный (но это не значит, что вирус).
На счёт ошибки, кто ж его знает - что то с видеокартой твоей сязано.. Древний DirectX стоит может быть или драйвера.. Лично у меня эта сборка Макарона работала ещё на GF 6600GT+ Sempron 3000 под WinXP Sp3, тестил моды 4x4 Evolution и HL1 на ней. Ну а на новых так там вообще даже фуллспид в WinCE (хоть и с глюками и вылетами)

Цитата
запустился там cmd.exe ,set.exe
Излишняя паранойа. Командную строку запустило, а из неё скрипт или Макарон с какими-то параметрами. Там, видимо, не сделаешь нормальный Гуй к нему иначе.
« Последнее редактирование: 09 Октябрь 2013, 22:30:08 от cptPauer »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8115
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2103 : 09 Октябрь 2013, 22:28:09 »
Цитата: karaulov
set.exe vert.exe pause.exe

Не вирусы это вовсе. Все приложения необходимы для корректно работы оболочки. Грубо говоря - это хуки, которые позволяют поворачивать экран, настраивать время автоматом и т.д. Исключи их из сканирования в антивируснике и жалоб не будет.

Цитата: Wind
Ох уж этот паскаль

А паскаль то тут причём?

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2104 : 09 Октябрь 2013, 22:38:35 »
А время без этих файлов никак не настроить? Зачем экран поворачивать? и почему конфиг криво сохраняет makaronex? выбираю 1440/900 разрешение, но оно не сохраняется.

Запустил макарон 12/5 без makaronex , ошибка пропала, НО игра не запускается :) (вообще ничего не происходит ,и потом окно эмулятора закрывается)
Добавлено позже:
И почему запускается 2 процесса, makaron.dll и makaron.exe ? в обычном макароне ведь только один makaron.exe а этот переименованный в dll из exe....Ужас какой-то :)



Сейчас как-то запустилась настройка времени, но по моему рано начались кнопки нажиматься, так как у меня эмулятор не загрузился до конца, а они уже нажимаются :)


Что нужно для настройки времени? напишу без вирусов на c#(или возможно C++) автоматический настройщик без всяких хуков и вирусов.
« Последнее редактирование: 09 Октябрь 2013, 22:46:39 от karaulov »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8115
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2105 : 09 Октябрь 2013, 22:49:01 »
Цитата: karaulov
Зачем экран поворачивать?

Для соответствующих игр - вертикальных стрелялок.

Цитата: karaulov
и почему конфиг криво сохраняет makaronex? выбираю 1440/900 разрешение, но оно не сохраняется.

Что-то у тебя всё подозрительно криво работает.

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2106 : 09 Октябрь 2013, 22:53:29 »
Что-то у тебя всё подозрительно криво работает.
Не знаю, выбрал 1440x900

после перезапуска получил:

---------------------------
MakaronEX
---------------------------
'#' is not a valid integer value.
---------------------------
ОК   
---------------------------
« Последнее редактирование: 09 Октябрь 2013, 23:35:45 от karaulov »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8115
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2107 : 09 Октябрь 2013, 22:58:22 »
Цитата: karaulov
Не знаю, выбрал 1440/900

Откуда наклонная черта взялась? Должен быть икс между цифрами.

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2108 : 09 Октябрь 2013, 23:36:13 »
Ну ок, исправил текст сообщения, но от этого лучше не стало работать. 



P.S / = X = НА

Вот даже скрины:

1. Выбираю 1440x900






2. Получаю



Оффлайн Yaranga

  • Администратор
  • Сообщений: 13698
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2109 : 09 Октябрь 2013, 23:57:50 »
Ну так другое разрешение выбери. Похоже, твоя видеокарта не сможет рендерить игровой экран в таком разрешении.

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2110 : 10 Октябрь 2013, 00:36:54 »
Скачал заново makaronex , несколько раз поменял разрешение и опять такое началось. Без MakaronEx разрешение в конфиге меняю и все работает, только игра не запускается. С makaronex ошибка такая как и у



Геймпад Dinput , но там нет триггеров аналоговых.


Оффлайн EdHell

  • Технический консультант
  • Сообщений: 12193
  • Пол: Мужской
  • Ортодоксальный пофигист
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2111 : 10 Октябрь 2013, 10:06:04 »
И тут еще раз спрошу, ты как выходишь из эмулятора? По поводу "вирусов": а чего ты ждал? Вся оболочка построена на хаках и костылях, поскольку исходников эмулятора не имеется, а автору насрать, как юзеры будут использовать эмуль.  Возьми обычный макарон и делай с ним, что хочешь. Ручками.

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2112 : 10 Октябрь 2013, 16:48:53 »
Я решил себе написать конфигуратор для макарона  0_0


Настройка времени без лагов и ее сложно случайно сломать . (BlockInput(true) и почти никакой эмуляции клавиш, просто изменения в памяти.)



https://www.virustotal.com/ru/file/967a7559e8f1f5f6b128f98ed84bce4e782a21b10de6ef73a717ea47b8d5097b/analysis/1381409260/

А разве просто в dreamcast_flash_##.bin нельзя дату заменить на нужную? Я пытался разобраться как там время хранится, но не получилось.

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2113 : 10 Октябрь 2013, 16:51:52 »
Заменить можно, но алгоритм знаем только мы ;)

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2114 : 10 Октябрь 2013, 16:54:34 »
Может в секундах  0_0? но там еще каких-то 2 левых байта изменяются не знаю за что они отвечают :)

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2115 : 10 Октябрь 2013, 17:31:15 »
CRC

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2116 : 10 Октябрь 2013, 18:21:18 »
Цитата: karaulov
Может в секундах  ?

нет в дримовском формате, но грабля даже не в этом, если взять из Demul флешку с прописанным там текущим временем и правильным CRC и скормить ее Макарону - биос всё равно выкидывает запрос на установку даты.
я хз что там Кнут у себя намутил в эмуляторе.

Цитата: karaulov
(BlockInput(true) и почти никакой эмуляции клавиш, просто изменения в памяти.)

я правильно понял что ты в памяти процесса макарона меняешь цифирки ? но тогда оно будет работать только с какой-то определенной версией, а это не айс

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2117 : 10 Октябрь 2013, 18:36:05 »
да, но не нужна эмуляция клавиш:)  И а зачем поддержка старых версий? :)

                    //Часть моего г#вн#кода
                    BlockInput(true);
                    ....
                    if (selectmenu == 1)
                    {
                        short YearDM = makaproc.ReadShort("Makaron.exe", 0xAAC400);
                        byte MonDM = makaproc.ReadByte("Makaron.exe", 0xAAC402);
                        byte DayDM = makaproc.ReadByte("Makaron.exe", 0xAAC403);
                        byte hourDM = makaproc.ReadByte("Makaron.exe", 0xAAC404);
                        byte minDM = makaproc.ReadByte("Makaron.exe", 0xAAC405);

                        short YearMy = Convert.ToInt16(DateTime.Today.Year);
                        byte MonMy = Convert.ToByte(DateTime.Today.Month);
                        byte DayMy = Convert.ToByte(DateTime.Today.Day);
                        byte hourMy = Convert.ToByte(DateTime.Today.Hour);
                        byte minMy = Convert.ToByte(DateTime.Today.Minute);

                        Boolean settimetimded = true;
                        while(settimetimded)
                        {
    MakaronUpdateScreen(30);

                            if (YearDM > YearMy)
                                YearDM--;
                            else if (YearDM < YearMy)
                                YearDM++;

                            if (MonDM > MonMy)
                                MonDM--;
                            else if (MonDM < MonMy)
                                MonDM++;

                            if (DayDM > DayMy)
                                DayDM--;
                            else if (DayDM < DayMy)
                                DayDM++;

                            if (hourDM > hourMy)
                                hourDM--;
                            else if (hourDM < hourMy)
                                hourDM++;

                            if (minDM > minMy)
                                minDM--;
                            else if (minDM < minMy)
                                minDM++;

                            //short YearDM =
                                makaproc.WriteShort("Makaron.exe", 0xAAC400,YearDM);
                            //byte MonDM =
                                makaproc.WriteByte("Makaron.exe", 0xAAC402, MonDM);
                           // byte DayDM =
                                makaproc.WriteByte("Makaron.exe", 0xAAC403, DayDM);
                            //byte hourDM =
                                makaproc.WriteByte("Makaron.exe", 0xAAC404, hourDM);
                           // byte minDM =
                                makaproc.WriteByte("Makaron.exe", 0xAAC405, minDM);

                            if (YearDM == YearMy && MonDM == MonMy && DayDM==DayMy && hourDM == hourMy && minDM == minMy)
                            {
                                settimetimded = false;
                            }

                            System.Threading.Thread.Sleep(100); // Так, для анимации :)
                        }
                        byte selectmenutmpbyte = 0x05;
                        makaproc.WriteByte("Makaron.exe", 0xA2B162, selectmenutmpbyte); // Выбрать 5 пункт меню
MakaronSendKey(MK.START); // A
                    }
                   
                }
                BlockInput(false);



нет в дримовском формате, но грабля даже не в этом, если взять из Demul флешку с прописанным там текущим временем и правильным CRC и скормить ее Макарону - биос всё равно выкидывает запрос на установку даты.
я хз что там Кнут у себя намутил в эмуляторе.
 
я правильно понял что ты в памяти процесса макарона меняешь цифирки ? но тогда оно будет работать только с какой-то определенной версией, а это не айс

Там еще один байт 0F на 07 заменяется в флэшке (где-то в конце )

А может в demul время не правильно сохраняется? или в makaron'е :)
« Последнее редактирование: 10 Октябрь 2013, 19:49:24 от karaulov »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2118 : 10 Октябрь 2013, 21:00:32 »
Цитата: karaulov
А может в demul время не правильно сохраняется? или в makaron'е

хз, тебе интересно - ты и разбирайся %)

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2119 : 10 Октябрь 2013, 23:04:26 »
Я же так и знал что там в секундах хранится , никакого там специального алгоритма нет  :lol:
Добавлено позже:
private int calcCRC(byte[] buf)
        {
            int i, c, n = 0xffff;
            for (i = 0; i < buf.Length; i++)
            {
                n ^= (buf[i] << 8);
                for (c = 0; c < 8; c++)
                    if ((n & 0x8000) != 0)
                        n = (n << 1) ^ 4129;
                    else
                        n = (n << 1);
            }
            return (~n) & 0xffff;
        }


if (File.Exists("Makaron\\ROM\\Dreamcast_flash_eu.bin"))
            {
                if (File.Exists("Makaron\\ROM\\Dreamcast_flash_eu.bin.bak"))
                    File.Delete("Makaron\\ROM\\Dreamcast_flash_eu.bin.bak");

                File.Move("Makaron\\ROM\\Dreamcast_flash_eu.bin", "Makaron\\ROM\\Dreamcast_flash_eu.bin.bak");
               

                byte[] flash = File.ReadAllBytes("Makaron\\ROM\\Dreamcast_flash_eu.bin.bak");

                byte[] curtime = new byte[4] { flash[129346], flash[129347], flash[129348], flash[129349] };

                DateTime mydata = new DateTime(1950, 1, 1, 0, 0, 0);

                UInt32 mytime = BitConverter.ToUInt32(curtime, 0);

                DateTime mynewdata = mydata.AddSeconds(Convert.ToDouble(mytime));

                MessageBox.Show(String.Format("Current eu bios time: {0}:{1} {2}/{3}/{4} ", mynewdata.Hour, mynewdata.Minute, mynewdata.Day, mynewdata.Month, mynewdata.Year));

                TimeSpan mydate = DateTime.Now - mydata;

                byte[] mynewtime = BitConverter.GetBytes(Convert.ToUInt32(mydate.TotalSeconds));
                flash[129346] = mynewtime[0];
                flash[129347] = mynewtime[1];
                flash[129348] = mynewtime[2];
                flash[129349] = mynewtime[3];

                flash[129346 - 1] = 0x00;
                flash[129346 - 2] = 0x05;
                flash[129346 + 5] = 0x01;
                flash[129346 + 6] = 0x00;
                flash[129346 + 7] = 0x00;
                flash[129346 + 8] = 0x7D;
                flash[129346 + 9] = 0x0A;
                flash[129346 + 10] = 0x62;
                flash[129346 + 11] = 0x61;

                flash[129406] = 0xFF;
                flash[129406 + 1] = 0xFF;

                flash[131036] = 0x07;
                flash[131036 + 1] = 0xFF;

                UInt16 tmpcrc = Convert.ToUInt16(calcCRC(flash));
                byte[] tmpcrcbyte = BitConverter.GetBytes(tmpcrc);

                flash[129406] = tmpcrcbyte[0];
                flash[129406 + 1] = tmpcrcbyte[1];

                ByteArrayToFile("Makaron\\ROM\\Dreamcast_flash_eu.bin", flash);
            }

Этот код работает но макарон все равно требует время :(

Может у меня CRC не правильный получается?
« Последнее редактирование: 11 Октябрь 2013, 00:02:19 от karaulov »

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2120 : 11 Октябрь 2013, 00:34:57 »
Ты же сказал что ты умнее нас и все там просто ;)

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2121 : 11 Октябрь 2013, 00:47:51 »
Все просто, время устанавливается, но makaron другой алгоритм crc использует.

One more thing, don't bother trying to calculate CRC for FLASH files - the files are changed by emulators
вот что написал автор макарона

если я правильно понял то он послал всех куда-то :D

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2122 : 11 Октябрь 2013, 00:56:28 »
Да ты далек от эмуляции, причем тут макарон?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2123 : 11 Октябрь 2013, 00:58:49 »
Цитата: karaulov
но makaron другой алгоритм crc использует.

crc проверятся биосом, почему под другими эмуляторами прописанная ручками дата + CRC биос устраивает, а под лапшой нет - для меня лично загадка.
Цитата: karaulov
Может у меня CRC не правильный получается?

а какой именно ты взял алгоритм ? их какбы дофига всяких

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2124 : 11 Октябрь 2013, 01:00:34 »
http://mc.pp.se/dc/ip0000.bin.html этот, что-то было написано про дримкаст, решил что подойдет :)
только переписал на c#

private int calcCRC(byte[] buf)
        {
            int i, c, n = 0xffff;
            for (i = 0; i < buf.Length; i++)
            {
                n ^= (buf[i] << 8);
                for (c = 0; c < 8; c++)
                    if ((n & 0x8000) != 0)
                        n = (n << 1) ^ 4129;
                    else
                        n = (n << 1);
            }
            return (~n) & 0xffff;
        }

возможно ошибка в коде :)

CRC нужно проверять всего файла или только какой-то части(даты)?
« Последнее редактирование: 11 Октябрь 2013, 01:08:49 от karaulov »

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2125 : 11 Октябрь 2013, 01:06:57 »
Ну для начало нужно от шарпа избавиться, как научишься писать на правильных языках дело быстрей пойдет поверь

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2126 : 11 Октябрь 2013, 01:10:03 »
Ну для начало нужно от шарпа избавиться, как научишься писать на правильных языках дело быстрей пойдет поверь
Ну я не собираюсь писать эмулятор, хотя у меня получился бы намного лучше демула :)


Просто решил конфигуратор написать, для этого не обязателен C , достаточно csharp'а :)

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2127 : 11 Октябрь 2013, 01:14:13 »
Лол, программировать научись для начал хоть как-то, а потом говорю что у тебя лучше получилось бы, у целого мира не получилось, а у него получилось бы

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2128 : 11 Октябрь 2013, 01:33:22 »
Цитата: karaulov
возможно ошибка в коде

CRC нужно проверять всего файла или только какой-то части(даты)?

код верный, считать нужно црц записи времени, догадайся сколько байт
Цитата: karaulov
хотя у меня получился бы намного лучше демула

крайне сомневаюсь, мало нужных навыков судя по частому использованию десятичных чисел для офсетов в флешке

Оффлайн karaulov

  • Пользователь
  • Сообщений: 18
    • Просмотр профиля
Re: Makaron - Эмулятор Sega Dreamcast
« Ответ #2129 : 11 Октябрь 2013, 13:58:45 »
крайне сомневаюсь, мало нужных навыков судя по частому использованию десятичных чисел для офсетов в флешке
Ну нет у меня структуры флэш файла, даже гугл не хочет ее давать :)