| Разработка и ромхакинг > Ромхакинг и программирование |
| Обращение к создателям эмуляторов NES |
| << < (2/3) > >> |
| Ti_:
--- Цитата: Phil от 18 Февраль 2014, 23:15:52 ---зеркало --- Конец цитаты --- А я использовал подобный трюк ещё во времена денди. И помню надпись TIXE в кэпе, на выходе с уровня. |
| Phil:
--- Цитата: MetalliC от 18 Февраль 2014, 23:50:29 --- сделай себе эмулятор такой чтоб нравится и играй, ну или измени какой-то из уже существующих под себя. делать персонально для тебя как ты любишь и что любишь никто ничего не будет. --- Конец цитаты --- Я думаю, что идея играть в единый лучший эмулятор не нова. И идею с отражением я предложил не только для себя, не считаю эту идею глупой - как раз, если бы функция отражения и замены курсоров ВЛЕВО_ВПРАВО была бы реализована по одному клику, то ей бы пользовались многие. А так, как раз, заморачиваться через нестандартные "отражатели" и каждый раз вручную курсоры менять, как раз никто не будет. Вот и кажется, что моя идея глупая. Я пользуюсь эмулятором фсеу от CAH4E3а с палитрой от virtuanes, считаю его лучшим. Ну, тем не менее спасибо. |
| gepar:
В варианте с зеркалом влево-вправо на приставке не менялись же, хотя я не понимаю какое это разнообразие когда всё просто отзеркалено. Разве есть какая-то разница слева замок в Марио или справа? |
| Inspector_Popabol:
--- Цитата: gepar от 19 Февраль 2014, 01:48:26 ---В варианте с зеркалом влево-вправо на приставке не менялись же, хотя я не понимаю какое это разнообразие когда всё просто отзеркалено. Разве есть какая-то разница слева замок в Марио или справа? --- Конец цитаты --- В камастуре лимон поз, а суть у каждой одна. Ну две максимум. :neznayu: |
| Phil:
--- Цитата: gepar от 19 Февраль 2014, 01:48:26 ---В варианте с зеркалом влево-вправо на приставке не менялись же, хотя я не понимаю какое это разнообразие когда всё просто отзеркалено. Разве есть какая-то разница слева замок в Марио или справа? --- Конец цитаты --- А ты попробуй поиграть в отзеркаленный вариант. Разница в моторике. Кажется будто всё одно и тоже, а на деле, как в новую игру попал. |
| gepar:
--- Цитата: Inspector_Popabol ---В камастуре лимон поз, а суть у каждой одна. Ну две максимум. --- Конец цитаты --- Нет, там другое и это сравнимо с разными дорогами к одному и тому же финалу в играх с разветвлениями, а вот в данном случае я вас не понимаю. |
| Inspector_Popabol:
--- Цитата: gepar от 19 Февраль 2014, 11:28:17 --- Нет, там другое и это сравнимо с разными дорогами к одному и тому же финалу в играх с разветвлениями, а вот в данном случае я вас не понимаю. --- Конец цитаты --- Когда ты дверь открываешь тебе дверь надо открыть или попасть внутрь? В Beyond Two Sould кстати было тыща с чем-то анимаций открывания двери. А я всю игру прошёл, но мне ни одна из них не запомнилась. :neznayu: |
| Razor:
Помню себе я разнообразил игру, выключая изображение в Sonic 2 вообще, ориентируясь по звуку - тоже разнообразно. Ну или как с девушкой вместе проходили игры, деля на одного D-Pad, на другого - кнопки :lol: Или даже как пытались проходить игры, ограничивая себя в нажатиях некоторых кнопок: Кстати, неплохо ещё иногда отзеркаливать игры и сверху вниз :lol: |
| yur:
Phil, есть один мне известный эмулятор напоминающий твою тенденцию - называется E3000, но недоработанный до конца, много процессорного времени жрёт и не все предназначенные проги правильно эмулирует |
| Phil:
В общем, наконец-то я приобрёл новый комп, и у меня появилась возможность настраивать эмуляторы, требовательные к ресурсам. Скачал Retroarch-1-3-4, после долгих мучений всё же настроил (и с графическим фильтром, и отражённое изображение, и джойстик (реальный дендивский с поменянными кнопками "ВЛЕВО" и "ВПРАВО") подключил). Впечатлений масса!!! Вроде бы игры всего-лишь стали зеркальными, но проходить я их стал по другому. Например, в играх типа Утиные истории или Чёрный плащ, я всё равно в симметричных локациях (например, битвы с Боссами и др.) играю, ориентируясь на левую сторону. Даже самым большим скептикам советую поиграть хоть один раз в зеркальном мире!!! |
| Xerox:
Phil, запиши видос, хотя бы 1 уровень) Просто посмотреть охота |
| CaH4e3:
[sarcasm on] "На данном форуме некропостинг не приветствуется" (с) Rumata [sarcasm off] |
| Ogr:
--- Цитата: Mr2 от 17 Май 2019, 21:07:57 ---менять конфиг RetroArch --- Конец цитаты --- можно в CRT-Royale отзеркалить, поставив в настройках присета ширину экрана в минус. http://filthypants.blogspot.com/2018/05/retroarch-mirror-mode.html |
| Phil:
--- Цитата: Mr2 от 17 Май 2019, 21:07:57 ---Я не ради чёса, я по делу. Тема норм, в кишках копаться неохота.(менять конфиг RetroArch) Если кто реализует в fceux, будет круто. ;) --- Конец цитаты --- Именно. В RetroArch вопрос уже давно решённый. Всё уже настроено. Но хочется именно во fceux! Одним кликом отзеркаливание и замена кнопок управления: ЛЕВО на ПРАВО, и ПРАВО на ЛЕВО. |
| Sharpnull:
--- Цитата: Phil от 19 Май 2019, 10:34:28 ---Но хочется именно во fceux! --- Конец цитаты --- Сделал для последней версии https://github.com/TASVideos/fceux. Что делать Зайти в Config -> Map Hotkeys. В самом низу назначить для команды Toggle Screen Mirroring клавишу, например End. Во время игры при нажатии этой клавиши будет отзеркален экран и переставлены кнопки влево/вправо для 4 контроллеров. Если при выходите из эмулятора оставить отзеркаленный режим, то кнопки останутся переставленными - это недоработка (UPD: Исправлено). Как сделать сборку для новой версии Я использовал https://ci.appveyor.com/ для сборки со скриптом, который "патчит" исходный код. Пока исходный код не изменится кардинально, патч будет работать для новых версий. Что было изменено в коде: --- Код: ---### src/fceu.cpp // В конец функции void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int skip) { // добавить extern int screenMirroring; if (screenMirroring) { for (int y = 0; y < 256; y++) { for (int x = 0; x < 256; x++) { XBuf[y * 256 + x] = XBackBuf[y * 256 + 255 - x]; } } } ### src/input.h // Вместо EMUCMD_MAX EMUCMD_TOOL_MIRRORING, EMUCMD_MAX ### src/input.cpp // Вместо #include "drivers/win/taseditor.h" #include "drivers/win/taseditor.h" #include "drivers/win/input.h" // Вместо static void DebuggerStepInto(void); static void DebuggerStepInto(void); static void ScreenMirroring(void); // После "Debugger - Step Into", EMUCMDFLAG_TASEDITOR }, добавить { EMUCMD_TOOL_MIRRORING, EMUCMDTYPE_MISC, ScreenMirroring, 0, 0, "Toggle Screen Mirroring", EMUCMDFLAG_TASEDITOR }, // Добавить в конец int screenMirroring = 0; void ScreenMirroring(void) { screenMirroring ^= 1; extern ButtConfig GamePadConfig[4][12]; for (int i = 0; i < 4; i++) swap(GamePadConfig[i][6], GamePadConfig[i][7]); } ### src/drivers/win/main.cpp // Вместо SaveConfig(TempArray); extern ButtConfig GamePadConfig[4][12]; extern int screenMirroring; for (int i = 0; screenMirroring && i < 4; i++) swap(GamePadConfig[i][6], GamePadConfig[i][7]); SaveConfig(TempArray); --- Конец кода --- Настройка Appveyor Зарегистрироваться в https://ci.appveyor.com. Projects -> New project, слева Git, ввести в Clone URL: https://github.com/TASVideos/fceux.git У выбранного проекта: Settings -> Artifacts, Add, ввести в Path to artifact: vc\fceux.zip Settings -> Build -> Script, PS, вставить скрипт: --- Код: ---(Get-Content src\input.h) -replace "EMUCMD_MAX","EMUCMD_TOOL_MIRRORING, EMUCMD_MAX" | Set-Content src\input.h (Get-Content src\input.cpp) -replace "#include `"drivers/win/taseditor.h`"","#include `"drivers/win/taseditor.h`"`r`n#include `"drivers/win/input.h`"" | Set-Content src\input.cpp (Get-Content src\input.cpp) -replace "static void DebuggerStepInto\(void\);","static void DebuggerStepInto(void);`r`nstatic void ScreenMirroring(void);" | Set-Content src\input.cpp (Get-Content src\input.cpp) -replace "Debugger - Step Into`", EMUCMDFLAG_TASEDITOR },","Debugger - Step Into`", EMUCMDFLAG_TASEDITOR },`r`n { EMUCMD_TOOL_MIRRORING, EMUCMDTYPE_MISC, ScreenMirroring, 0, 0, `"Toggle Screen Mirroring`", EMUCMDFLAG_TASEDITOR }," | Set-Content src\input.cpp Add-Content src\input.cpp "int screenMirroring = 0;`r`nvoid ScreenMirroring(void)`r`n{`r`n screenMirroring ^= 1;`r`n extern ButtConfig GamePadConfig[4][12];`r`n for (int i = 0; i < 4; i++)`r`n swap(GamePadConfig[i][6], GamePadConfig[i][7]);`r`n}" (Get-Content src\fceu.cpp) -replace "if \(movieSubtitles\)","extern int screenMirroring;`r`n if (screenMirroring) {`r`n for (int y = 0; y < 256; y++) {`r`n for (int x = 0; x < 256; x++) {`r`n XBuf[y * 256 + x] = XBackBuf[y * 256 + 255 - x];`r`n }`r`n }`r`n }`r`n if (movieSubtitles)" | Set-Content src\fceu.cpp (Get-Content src\drivers\win\main.cpp) -replace "SaveConfig\(TempArray\);","extern ButtConfig GamePadConfig[4][12];`r`n extern int screenMirroring;`r`n for (int i = 0; screenMirroring && i < 4; i++)`r`n swap(GamePadConfig[i][6], GamePadConfig[i][7]);`r`n SaveConfig(TempArray);" | Set-Content src\drivers\win\main.cpp cd vc msbuild vc14_fceux.sln /p:Configuration=PublicRelease /p:Platform="win32" /t:rebuild $a = Start-Process -FilePath .\archive.bat -Wait -passthru;$a.ExitCode --- Конец кода --- Не забывайте нажимать Save. Вкладка Current build -> New build. Ждёте сборки, если всё успешно, то в Artifacts сможете скачать fceux.zip. Примечания Скрипт повторяет поведение официальной сборки https://ci.appveyor.com/project/zeromus/fceux, с добавлением патча через замену кода. По-хорошему следовало настроить автоматическую сборку после коммита, но я не знаю как. -------- Исправил сохранение переставленных кнопок влево/вправо. |
| Mr2:
--- Цитата: Sharpnull от 19 Май 2019, 19:52:45 ---Сделал для последней версии --- Конец цитаты --- Забрал! :gamer: Зеркало нехило так дезориентирует в уровнях с многоэтажной архитектурой. :wow: --- Цитата: Sharpnull от 19 Май 2019, 19:52:45 ---Как сделать сборку для новой версии --- Конец цитаты --- Вон оно чё, a я искал где нажать кнопку build. :lol: А тут нужно целый ритуал пройти. :blush: Sharpnull, ты крутой, спасибо! :drinks: Пойду в Батлтодсов играть. :nyam: |
| Sharpnull:
--- Цитата: Mr2 от 19 Май 2019, 21:37:45 ---Вон оно чё, a я искал где нажать кнопку build. :lol: А тут нужно целый ритуал пройти. :blush: --- Конец цитаты --- Я не написал, что можно просто скачать последнюю версию FCEUX на компьютер, запустить команды замены из скрипта (которые с -replace) в PowerShell и собрать в Visual Studio. Автосборка удобна тем, что в будущем будет собираться в одно нажатие. -------- Ещё есть универсальный способ, платная утилита UltraMon умеет зеркалить даже отдельные приложения (если верить скриншоту): https://www.realtimesoft.com/ultramon/tour/mirroring.asp |
| Phil:
Sharpnull, большущее спасибо!!! --- Цитата: Sharpnull от 19 Май 2019, 19:52:45 ---Если при выходите из эмулятора оставить отзеркаленный режим, то кнопки останутся переставленными - это недоработка. --- Конец цитаты --- Я эту проблему решил поставив галочку "ТОЛЬКО ЧТЕНИЕ" на файл fceux.cfg после всех настроек. Кстати, быстрое зеркалирование нажатием например "END" удобно. Например, если игра сложная, то полазить по менюшкам, а уже в момент самой игры зеркалить. |
| Sharpnull:
Исправил сохранение переставленных кнопок влево/вправо. Обновил сборку в сообщении выше вместе со скриптом. --- Цитата: Mr2 от 20 Май 2019, 07:59:13 ---Попробуй в обработчике главного окна вернуть настройки управления обратно: --- Конец цитаты --- Там несколько сложнее, для надёжности вставил код как раз перед сохранением конфига перед выходом (src/drivers/win/main.cpp - SaveConfig(TempArray)). |
| Phil:
--- Цитата: Sharpnull от 20 Май 2019, 13:41:28 ---Исправил сохранение переставленных кнопок влево/вправо. Обновил сборку в сообщении выше вместе со скриптом.Там несколько сложнее, для надёжности вставил код как раз перед сохранением конфига перед выходом (src/drivers/win/main.cpp - SaveConfig(TempArray)). --- Конец цитаты --- Sharpnull, РЕСПЕКТИЩЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! МЕЧТЫ СБЫВАЮТСЯ!!!!!!!!!!!!!!!!! |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |