Эмуляция > Эмуляторы консолей 6 поколения и выше
Makaron - Эмулятор Sega Dreamcast
<< < (106/116) > >>
karaulov:

--- Цитата: Zenkai от 06 Июнь 2013, 19:07:25 ---

--- Конец цитаты ---

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

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


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

set.exe vert.exe pause.exe

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

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

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

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

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


--- Цитата ---запустился там cmd.exe ,set.exe
--- Конец цитаты ---
Излишняя паранойа. Командную строку запустило, а из неё скрипт или Макарон с какими-то параметрами. Там, видимо, не сделаешь нормальный Гуй к нему иначе.
paul_met:

--- Цитата: karaulov ---set.exe vert.exe pause.exe
--- Конец цитаты ---

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


--- Цитата: Wind ---Ох уж этот паскаль
--- Конец цитаты ---

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

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



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


Что нужно для настройки времени? напишу без вирусов на c#(или возможно C++) автоматический настройщик без всяких хуков и вирусов.
paul_met:

--- Цитата: karaulov ---Зачем экран поворачивать?
--- Конец цитаты ---

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


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

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

--- Цитата: paul_met от 09 Октябрь 2013, 22:49:01 ---Что-то у тебя всё подозрительно криво работает.

--- Конец цитаты ---
Не знаю, выбрал 1440x900

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

---------------------------
MakaronEX
---------------------------
'#' is not a valid integer value.
---------------------------
ОК   
---------------------------
paul_met:

--- Цитата: karaulov ---Не знаю, выбрал 1440/900
--- Конец цитаты ---

Откуда наклонная черта взялась? Должен быть икс между цифрами.
karaulov:
Ну ок, исправил текст сообщения, но от этого лучше не стало работать. 



P.S / = X = НА

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

1. Выбираю 1440x900






2. Получаю


Yaranga:
Ну так другое разрешение выбери. Похоже, твоя видеокарта не сможет рендерить игровой экран в таком разрешении.
karaulov:
Скачал заново makaronex , несколько раз поменял разрешение и опять такое началось. Без MakaronEx разрешение в конфиге меняю и все работает, только игра не запускается. С makaronex ошибка такая как и у


--- Цитата: Zenkai от 06 Июнь 2013, 19:07:25 ---

--- Конец цитаты ---

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

EdHell:
И тут еще раз спрошу, ты как выходишь из эмулятора? По поводу "вирусов": а чего ты ждал? Вся оболочка построена на хаках и костылях, поскольку исходников эмулятора не имеется, а автору насрать, как юзеры будут использовать эмуль.  Возьми обычный макарон и делай с ним, что хочешь. Ручками.
karaulov:
Я решил себе написать конфигуратор для макарона  0_0


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



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

А разве просто в dreamcast_flash_##.bin нельзя дату заменить на нужную? Я пытался разобраться как там время хранится, но не получилось.
Wind:
Заменить можно, но алгоритм знаем только мы ;)
karaulov:
Может в секундах  0_0? но там еще каких-то 2 левых байта изменяются не знаю за что они отвечают :)
Wind:
CRC
MetalliC:

--- Цитата: karaulov ---Может в секундах  ?
--- Конец цитаты ---

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


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

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


--- Код: ---                    //Часть моего г#вн#кода
                    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);

--- Конец кода ---



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

--- Конец цитаты ---

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

А может в demul время не правильно сохраняется? или в makaron'е :)
MetalliC:

--- Цитата: karaulov ---А может в demul время не правильно сохраняется? или в makaron'е
--- Конец цитаты ---

хз, тебе интересно - ты и разбирайся %)
karaulov:
Я же так и знал что там в секундах хранится , никакого там специального алгоритма нет  :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 не правильный получается?
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии