Разогнанный эмулятор Game Gear
Автор |
Сообщение |
20 авг 2009, 17:16 |
|
Зарегистрирован: 22 июл 2007, 02:10 Сообщения: 313 Откуда: ниоткуда
|
Обычно главный модуль программы инициализирует компоненты с нужными параметрами. Z80.c - это чисто эмулятор процессора, в нём частота (число) не должна быть прописана, но должна быть функция типа z80_init, где будут прописаны основные параметры, и частота тоже. А число будет где-то в главном модуле, он передаст его z80, т.е. "запустит" z80 с нужной частотой. Но эта функция z80_init в исходниках вообще не используется (слово z80_init нигде больше не встречается), я не знаю, чё они там намутили и зачем писать ненужный код. В ридми написано, что там 3 разных эмулятор z80, по умолчанию используется Doze. От него и пляши.
Ты сначала оригинал скомпиль, а то толку от твоих изысканий не будет.
_________________ Мысль - это интеллектуальный эксцесс данного индивидуума.
|
|
20 авг 2009, 17:30 |
|
Зарегистрирован: 23 июл 2007, 12:24 Сообщения: 195 Откуда: Vladivostok, Russia
|
GManiac писал(а): но должна быть функция типа z80_init, где будут прописаны основные параметры, и частота тоже. Не имеет смысла передавать в эмулятор Z80 частоту проца в отрыве от других компонентов. Там нет каких-либо функций контролирующих скорость эмуляции. Ему передаётся только количество тактов, которые необходимо выполнить, а уж с какой частотой ты будешь вызывать этот модуль, решаешь сам.
|
|
20 авг 2009, 17:33 |
|
Зарегистрирован: 22 июл 2007, 02:10 Сообщения: 313 Откуда: ниоткуда
|
Вообще, почему именно Dega? Эмулей геймгира полно, вот здесь хотя бы. http://www.zophar.net/sms-gg.htmlВ описании не всегда написано, что есть исходник эмуля. Смотришь каждый эмуль, например, Cogwheel и ищешь в гугле "Cogwheel source". И получаешь http://code.google.com/p/cogwheel/И так далее. Можно не только на зофаре смотреть. Глядишь, что-нибудь и скомпилится без проблем, тогда можно думать о разгоне. Мне лично лень этим заниматься, GG для меня не представляет никакой ценности. А тебе я наводку дал. ---- добавлено ---- AntZ писал(а): Не имеет смысла передавать в эмулятор Z80 частоту проца в отрыве от других компонентов. Там нет каких-либо функций контролирующих скорость эмуляции. Ему передаётся только количество тактов, которые необходимо выполнить, а уж с какой частотой ты будешь вызывать этот модуль, решаешь сам. Да, так тоже можно. Скажем, выполнить пачку команд на время одной строки растра. НО. Количество тактов в пачке считает главный модуль, а логичней всего считать его, исходя из частоты процессора. Так делается в генсе. А в деге, возможно, тупо прописана константа.
_________________ Мысль - это интеллектуальный эксцесс данного индивидуума.
|
|
20 авг 2009, 17:57 |
|
Зарегистрирован: 18 авг 2009, 13:13 Сообщения: 19
|
Цитата: Вообще, почему именно Dega Первым нашел
|
|
20 авг 2009, 17:58 |
|
Зарегистрирован: 23 июл 2007, 12:24 Сообщения: 195 Откуда: Vladivostok, Russia
|
GManiac писал(а): А в деге, возможно, тупо прописана константа. Да, так и есть, насколько я понял viewtopic.php?p=8464#p8464GManiac писал(а): В ридми написано, что там 3 разных эмулятор z80, по умолчанию используется Doze. Заглянул в этот Doze, что-то непонятное. Похоже на рекомпилятор в ассемблерный (не машинный) код x86. Как это потом вызывается, непонятно. Легче уж Z80=z80jb
|
|
20 авг 2009, 18:05 |
|
Зарегистрирован: 18 авг 2009, 13:13 Сообщения: 19
|
Цитата: Мне лично лень этим заниматься, GG для меня не представляет никакой ценности Для меня ценность на данной платформе представляет лиш серия Соников, самому тоже всё делать лень, но потихоньку буду пытаться чёт сделать
|
|
21 авг 2009, 16:45 |
|
Основатель сайта
Зарегистрирован: 21 июл 2007, 15:40 Сообщения: 2234 Откуда: Москва
|
А разве на эмуляторах Game Gear вообще может что-нибудь тормозить? К чему весь сыр-бор?
|
|
21 авг 2009, 17:00 |
|
Зарегистрирован: 18 авг 2009, 13:13 Сообщения: 19
|
Цитата: А разве на эмуляторах Game Gear вообще может что-нибудь тормозить? К чему весь сыр-бор? Эмулятор не тормозит - тормозят сами игры (как в случае с Contra Force)
|
|
21 авг 2009, 18:06 |
|
Основатель сайта
Зарегистрирован: 21 июл 2007, 15:40 Сообщения: 2234 Откуда: Москва
|
То есть они и на оригинальной приставке тормозят?
|
|
21 авг 2009, 18:20 |
|
Зарегистрирован: 15 сен 2008, 16:22 Сообщения: 407 Откуда: Neo Arcadia
|
Да, но там это частично компенсируется ограничением спрайтов. (на nes 8, на gg не знаю, многие эмуляторы позволяют убирать это ограничение) Здесь же используют подход увеличения скорости процессора, как результат - там где тормозило работает нормально, в иных частях игры всё быстрее чем нужно.
|
|
21 авг 2009, 18:52 |
|
Зарегистрирован: 23 июл 2007, 12:24 Сообщения: 195 Откуда: Vladivostok, Russia
|
Zeru-j писал(а): Да, но там это частично компенсируется ограничением спрайтов. Что-то непонятно, как ограничение спрайтов может пывысить скорость? Zeru-j писал(а): там где тормозило работает нормально, в иных частях игры всё быстрее чем нужно. Вряд ли. Всё равно все игры завязаны на покадровой отрисовке.
|
|
21 авг 2009, 19:37 |
|
Зарегистрирован: 15 сен 2008, 16:22 Сообщения: 407 Откуда: Neo Arcadia
|
AntZ писал(а): Что-то непонятно, как ограничение спрайтов может пывысить скорость? Легко, ведь тормоза если брать как пример игру Contra Force вызваны обилием взрывов/выстрелов/врагов одновременно на экране. Если ограничить количество отрисовываемых спрайтов одновременно нагрузка снижается. В общем-то зачем говорить если можно попробовать Ради любопытства запусти Contra Force на FCEUX с ограничением и без, если уж не веришь Обращу внимание только на "частично компенсируется" так как несмотря на то что ускорение заметно, скорость по прежнему ниже чем на участках где нет, гммм, перестрелок. Вряд ли Contra Force была бы играбельной на реальной консоли без такого ограничения.
|
|
21 авг 2009, 20:04 |
|
Зарегистрирован: 14 ноя 2007, 11:19 Сообщения: 370
|
Razor_ua писал(а): Цитата: А разве на эмуляторах Game Gear вообще может что-нибудь тормозить? К чему весь сыр-бор? Эмулятор не тормозит - тормозят сами игры (как в случае с Contra Force) Т.е. фпс столько сколько нужно? В таком случае вероятнее всего там не правильно эмулируются прерывания, немного экскурса: Вообщем суть проблемы такова, как известно в эмуляции часто применяться куча допущений, основным из них являеться следуещее, события будь то DMA передача, прерывания конца отрисовки, еще что-то подобное обычно происходят сразу т.е. например запущеная программа просить через DMA передать даные, то обычно в эмуляции сразу же передают эти даные и выставляют прерывание конец DMA ибо так проще всего, зачастую этого достаточно. Но на реальной системе же на передачу данных через DMA требуеться время и иногда программа расчитывает на это время и пока передаються даные она выполняет еще что-то. В случае эмулятора это "что-то" она не успевает выполнить и как итог программа или не работает совсем или работает не верно. Так что стоит обратить внимание на то как в эмуляторах данной системы это организовано.
|
|
21 авг 2009, 21:09 |
|
Основатель сайта
Зарегистрирован: 21 июл 2007, 15:40 Сообщения: 2234 Откуда: Москва
|
Zeru-j писал(а): Да, но там это частично компенсируется ограничением спрайтов. (на nes 8, на gg не знаю, многие эмуляторы позволяют убирать это ограничение) Здесь же используют подход увеличения скорости процессора, как результат - там где тормозило работает нормально, в иных частях игры всё быстрее чем нужно. Ну, это как-то криво получается. Если на приставке тормозит, то я бы так и играл. Это ж эмуляция. Хотя, дело вкуса, конечно.
|
|
21 авг 2009, 21:35 |
|
Зарегистрирован: 23 июл 2007, 12:24 Сообщения: 195 Откуда: Vladivostok, Russia
|
Zeru-j писал(а): Легко, ведь тормоза если брать как пример игру Contra Force вызваны обилием взрывов/выстрелов/врагов одновременно на экране. Если ограничить количество отрисовываемых спрайтов одновременно нагрузка снижается. Снижается нагрузка на GPU (так как в таких системах изображение формируется "на лету", то любая задержка недопустима, поэтому и ставят ограничения спрайтов) , но не на CPU. CPU всё так же продолжает обрабатывать все объекты, несмотря на то, что они не отрисовываются. Хотя не факт, конечно. Возможно, он определяет, какие объекты не были отрисованы и что-то пропускает. CF надо посмотреть. Wind писал(а): Т.е. фпс столько сколько нужно? В таком случае вероятнее всего там не правильно эмулируются прерывания, немного экскурса: Вообщем суть проблемы такова, как известно в эмуляции часто применяться куча допущений, основным из них являеться следуещее, события будь то DMA передача, прерывания конца отрисовки, еще что-то подобное обычно происходят сразу т.е. например запущеная программа просить через DMA передать даные, то обычно в эмуляции сразу же передают эти даные и выставляют прерывание конец DMA ибо так проще всего, зачастую этого достаточно. Но на реальной системе же на передачу данных через DMA требуеться время и иногда программа расчитывает на это время и пока передаються даные она выполняет еще что-то. В случае эмулятора это "что-то" она не успевает выполнить и как итог программа или не работает совсем или работает не верно. Так что стоит обратить внимание на то как в эмуляторах данной системы это организовано. Ну, думаю, если на реальной системе тоже всё тормозит, то дело не в этом. ---- добавлено ---- Eevon писал(а): Ну, это как-то криво получается. Если на приставке тормозит, то я бы так и играл. Это ж эмуляция. Хотя, дело вкуса, конечно. Ты и графические фильтры не используешь? Странный у тебя вкус, честно говоря.
|
|
21 авг 2009, 22:10 |
|
Зарегистрирован: 15 сен 2008, 16:22 Сообщения: 407 Откуда: Neo Arcadia
|
ИМХО тормоза в игре можно использовать себе на пользу. Там где враги должны неожиданно появляться и атаковать или где можно случайно нарваться и растерять колечки. Так что действительно дело вкуса. Думаю и любители играть совсем без фильтров тоже есть, играет же кто-то с фильтром scanlines 75%. А вот имитация какого-нибудь оторванного проводка наверняка никого не заинтересует и уже было бы симуляцией, а не эмуляцией
|
|
21 авг 2009, 22:19 |
|
Основатель сайта
Зарегистрирован: 21 июл 2007, 15:40 Сообщения: 2234 Откуда: Москва
|
AntZ писал(а): Ты и графические фильтры не используешь? Странный у тебя вкус, честно говоря. Неа, не использую. Мне оригинальное изображение нравятся. Фильтры всё только портят, на мой взгляд.
|
|
21 авг 2009, 22:38 |
|
Зарегистрирован: 18 авг 2009, 13:13 Сообщения: 19
|
Цитата: Неа, не использую. Мне оригинальное изображение нравятся. Фильтры всё только портят, на мой взгляд. А я подключаю телевизор к видеокарте и играю на геймпаде Ощущение что играеш на железной приставке ---- добавлено ---- Тему можно закрывать При увеличении частоты процессора лаги исчезают только при горизонтальном скроллинге Тормоза заметны при вертикальном скроллинге, наверно они зависят не только от CPU возникают графические баги игры часто виснут звук идёт быстрее много игр не грузятся P.S.: С психу удалил билд и весь софт для его компилирования ---- добавлено ---- Цитата: ИМХО тормоза в игре можно использовать себе на пользу. Там где враги должны неожиданно появляться и атаковать или где можно случайно нарваться и растерять колечки ИМХО Sonic triple trouble - лучшая игра на GG, а Соник с такими тормозами не Соник - GG просто не тянет быстрый скроллинг, как на SMD (есть идея: надо на Sonic Retro или SSRG предложить портировать Sonic triple trouble на SMD )
|
|
22 авг 2009, 06:41 |
|
Зарегистрирован: 23 июл 2007, 12:24 Сообщения: 195 Откуда: Vladivostok, Russia
|
Zeru-j писал(а): ИМХО тормоза в игре можно использовать себе на пользу. Там где враги должны неожиданно появляться и атаковать или где можно случайно нарваться и растерять колечки. Если так сложно, можно использовать замедление эмуляции. Razor_ua писал(а): При увеличении частоты процессора лаги исчезают только при горизонтальном скроллинге Тормоза заметны при вертикальном скроллинге, наверно они зависят не только от CPU возникают графические баги игры часто виснут звук идёт быстрее много игр не грузятся P.S.: С психу удалил билд и весь софт для его компилирования
Зачем? А как мы узнаем, что ты говоришь правду? Какие конкретно изменения ты сделал?
|
|
22 авг 2009, 11:07 |
|
Зарегистрирован: 18 авг 2009, 13:13 Сообщения: 19
|
Цитата: Какие конкретно изменения ты сделал? Код: if (MastEx&MX_PAL) LineCyc=273; // PAL timings (but not really: not enough lines) else LineCyc=228; // NTSC timings
TotalCyc=LineCyc*262; // For sound для PAL и NTSC увеличил показания на 20% (PAL - 328; NTSC - 274) TotalCyc=LineCyc тоже поменял на 20% (вроде поэтому звук стал быстрее) А вообще я очень психованая личность в плане неудач
|
|
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|