существует ли шанс что эмуль соберут по windows/arm? unreal работает более менее нормально при эмуляции а zxmak2 крашится…
существует ли шанс что эмуль соберут по windows/arm? unreal работает более менее нормально при эмуляции а zxmak2 крашится…
Последний раз редактировалось ZXMAK; 22.01.2025 в 02:24.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
ZXMAK, спасибо Вам, видимо все таки владете телепатией, сегодня внезапно заработало само все, скорее всего дело в апдейтах винды, работает довольно клево на Win11Arm@VMWare Fusion@Apple M3
а где ссылки на сам актуальный эмулятор? а то тему читаю, все время чтото поправляют и добавляют, а на гитхабе дохлая мышь от 2018 года только висит.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
нужно синхронизировать код с репозиторием, когда я начинал исправлять код, у меня не был настроен git. Сейчас там нужно потратить время, чтобы все корректно синхронизировать, т.к. изменения включают исправления в регистре имени файлов (важно для линукса), я также делал OpenGL бакенд но работа приостановилась в состоянии - прототип на Linux отлично работает, не хуже чем бакенд DirectX в Windows, но в Windows у меня сейчас нет возможностей проверить, а по некоторым отзывам на Windows с новым OpenGL бакендом есть проблемы с пропуском кадров при отображении, непонятно с чем связанные - это не нагрузка на процессор, скорости хватает, все кадры отправляются на дисплей, но система почему-то пропускает некоторые кадры даже на простом приложении с переключением цвета заливки экрана на каждом кадре, возможно проблема с конкретным драйвером nVidia.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
abelenki(02.05.2025)
Готов с этим помочь, если выложишь просто снапшот текущей директории. Замежу и пулл-реквест пришлю. Больно смотреть, как эмулятор превращается в распространяющийся бинарями closed source.
- - - Добавлено - - -
Вот, кстати, может будет интересно. Недавно озаботился причесыванием своей архивной копии репозитория.
Там у меня не как у тебя, где первый коммит - это переезд на гитхаб, а хранится вся история со времен codeplex. Я перетащил все более свежие коммиты из основного репо и настроил автосборку на серверах гитхаба при пуше.
Еще переписал всю историю, распаковав ROMS.PAK. Теперь всё лежит отдельными ромами (так намного удобней отслеживать историю изменений в логе), а в архив собирается уже при окончательной релизной сборке автоматом.
https://github.com/atsidaev/ZXMAK2-archive
abelenki(02.05.2025)
да, с ромами я тоже сделал отдельную папку с ромами и скриптом для сборки, правда скрипт bash, для линукс. Можно и для Windows батник добавить, но может есть лучше варианты?
Я там также убрал ildasm/ilasm из проектного файла, т.к. оно сильно тормозило сборку и слишком сложно было править большой IL файл и были проблемы с компиляцией на линукс, теперь код генерится с помощью Mono.Cecil, и достаточно просто добавить прототип функции в C# и он автоматически при сборке имплементируется. Это используется для реализации OpenGL, где для вызова функции теперь достаточно толко объявить прототип функции и переменную с указателем с таким-же именем и они автоматически имплементятся и инициализируются при компиляции - можно сразу вызывать и проверять указатель - найдена ли функция. Переписывание кода с си заключается по сути в добавлении прототипов функций в класс gl и замене glClear на gl.Clear, или GL_VERSION на GL.VERSION.
Вот пример OpenGL кода:
А как ты перетащил историю с codeplex?Код:static void onResize(Vector2i wndSize) { gl.Viewport(0, 0, wndSize.X, wndSize.Y); gl.MatrixMode(GL.PROJECTION); gl.LoadIdentity(); gl.Ortho(0.0, 1.0, 1.0, 0.0, 1, 0); gl.MatrixMode(GL.MODELVIEW); } static void onRender(Context ctx, Vector2i size) { gl.MatrixMode(GL.MODELVIEW); gl.PushMatrix(); gl.Clear(GL.COLOR_BUFFER_BIT | GL.DEPTH_BUFFER_BIT); gl.Enable(GL.TEXTURE_2D); gl.LoadIdentity(); if (_program.IsLinked) { gl.UseProgram(_program.Id); if (_rubyInputSizeId != -1) gl.Uniform2f(_rubyInputSizeId, 320f, 256f); if (_rubyOutputSizeId != -1) gl.Uniform2f(_rubyOutputSizeId, (float)size.X, (float)size.Y); if (_rubyTextureSizeId != -1) gl.Uniform2f(_rubyTextureSizeId, 320f, 256f); } curtxid = texids[curtex]; gl.BindTexture(GL.TEXTURE_2D, curtxid); gl.Begin(GL.TRIANGLE_STRIP); gl.TexCoord2f(1.0f, 0.0f); gl.Vertex2f(1.0f, 0.0f); // RT gl.TexCoord2f(0.0f, 0.0f); gl.Vertex2f(0.0f, 0.0f); // LT gl.TexCoord2f(1.0f, 1.0f); gl.Vertex2f(1.0f, 1.0f); // RB gl.TexCoord2f(0.0f, 1.0f); gl.Vertex2f(0.0f, 1.0f); // LB gl.End(); if (_program.IsLinked) { gl.UseProgram(0); } gl.Disable(GL.TEXTURE_2D); gl.MatrixMode(GL.MODELVIEW); gl.PopMatrix(); gl.Flush(); //gl.Finish(); ctx.SwapBuffers(); }
Последний раз редактировалось ZXMAK; 29.04.2025 в 15:17.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Я уже не помню, что там не кодеплексе было, svn вроде? Экспортировал весь репо в несколько сотен патчей, а потом на их основе гит-репо конструировал.
А зачем? Для разработки достаточно того, что папка ROMS копируется в папку с экзешником (я добавил в csproj таргет для этого). У тебя же там так и сделано, что в ROMS.PAK мы лезем только если файл не найден в файловой системе. Поэтому скопировать всю папку достаточно. А релизные версии пусть сам гитхаб собирает, раз он предоставляет теперь такие возможности. Вот такой у меня там скрипт - https://github.com/atsidaev/ZXMAK2-a...lows/build.ymlда, с ромами я тоже сделал отдельную папку с ромами и скриптом для сборки, правда скрипт bash, для линукс. Можно и для Windows батник добавить
Я там еще начал делать чтобы артефакты сборки куда-нибудь выкладывались, но не допилил еще. Можно сделать даже так, что новые версии будут прямо в Releases выкладываться.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)