PDA

Просмотр полной версии : ZXMAK.NET 1.0.8.0 + сырцы ;)



ZXMAK
28.03.2008, 02:03
собственно сабж в аттачменте ;)

Люди подскажите, чем удобнее выкладывать файлы в SourceForge, чтото гуевое по типу StarTeam есть? :rolleyes:

EXE: http://zx.pk.ru/attachment.php?attachmentid=7753&stc=1&d=1206658939

Сырцы: http://zx.pk.ru/attachment.php?attachmentid=7752&stc=1&d=1206658939



ZXMAK.NET Version 1.0.8.0 [28.03.2008]
.NET Crossplatform ZX Spectrum Emulator

====================Short help====================

The most important keyboard shortcuts:
<Alt>+<Enter> = switch between windowed/fullscreen mode
<Alt>+<Ctrl> = release captured mouse (click in window to start mouse capturing)

<Left Shift> = <Caps Shift>
<Right Shift> = <Symbol Shift>
<F3> = reset spectrum
<F7> = rewind tape
<F8> = play/pause tape
<F5> = stop spectrum
<F9> = start spectrum

To run emulator you should have the following libraries:
- .NET Framework 2.0 Runtime (Download it from Microsoft, not required for Windows Vista)
- fresh DirectX 9.0c (Download it from Microsoft)

Recommended PC:
CPU: 1.7-2 GHz or above
Video: 3D accelerated videocard
Audio: DirectX compatible soundcard


Emulator tested by ZEXALL z80 cpu test, it is 100% precise :)

ZEK
28.03.2008, 10:14
О!!! Свершилось!!

Добавлено через 1 минуту

по типу StarTeam есть
Черепашко - http://www.tortoisesvn.org/

Ajax16384
28.03.2008, 12:45
Alexander Makeev
великолепно!

нужна ли помощь в портировании на mono (путем дописания платформы sdl.net) ?

Alexandr Medvedev
28.03.2008, 13:00
собственно сабж в аттачментеНу вот и дожались, автору thx!
А как насчёт исходников самого ZXMAK (не .NET) и утилиты TRX2X?

ZXMAK
28.03.2008, 23:59
Alexander Makeev
великолепно!

нужна ли помощь в портировании на mono (путем дописания платформы sdl.net) ?

конечно, буду рад :)

ZXMAK
29.03.2008, 00:02
Ну вот и дожались, автору thx!
А как насчёт исходников самого ZXMAK (не .NET) и утилиты TRX2X?

Исходники TRX2X см. аттачмент ;), для эмулятора нужно поискать в архивах

ZEK
30.03.2008, 16:02
Первое (разумное?) предложение.
-Класы реализующие платформу вынести в одтельные DLL что бы не висели Referens на DirectX, что бы не хватать exception под mono-linux

Ajax16384
30.03.2008, 18:41
логика эмуляции ZX выносится в отдельную сборку ("ZXMAK.NET").

логика реализации платформы managed directx помещается в сборку ZXMAK.NET.MDX и ссылается на сборку эмуляции.

логика платформы sdl.net также помещается в сборку ZXMAK.NET.SDL.

MDX и SDL платформы используют в качестве UI библиотеки - "Windows.Forms".

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

ZXMAK
31.03.2008, 05:37
можно и так, а разве под mono будет падать exception? Если PlatformFactory не использует референсов, то исключение при создании экземпляра класса, который использует не существующие референсы можно будет отловить, и отметить что эти платформы не доступны... По крайней мере в родном дотнете это так, на моно не пробовал :)

ZEK
31.03.2008, 09:11
Ненаю по мне как то мутненько, Exception тож можно отхватить, тока зачем, да и если захочеш под linux собрать прийдется помучаться с растановкой по коду #ifdef иначе код будет синтаксически неверен...

Причем проблем с отладкой вроде как данное решение не прибавляет.

Alexandr Medvedev
31.03.2008, 17:24
Исходники TRX2XПерекомпилировал, сразу размер в 2 раза уменьшился, осталось ошибки выловить и поправить.
В TeleDisk файлах секторы с битыми CRC и отсутствующими полями данных воспринимаюся как нормальные.
Вероятно таже ошибка имеется и в ZXMAK'е.

для эмулятора нужно поискать в архивахНу как движутся поиски?

Ajax16384
01.04.2008, 00:24
Представляю на ваш суд порт ZXMAK.NET на SDL.NET. Вместе с написанием платформы sdl был также проделан небольшой рефакторинг кода (разбиение на логические уровни: ziplib, zxmak, интерфейс wf, mdx, sdl)

для компиляции необходима библиотека SDL.NET 6.0.0

todo:
- fullscreen, scale window
- реальный запуск под mono

пожелания Александру:
- просмотреть данные исходные коды и совместить их с основной веткой.
- выложить исходники на sf.net в анонимный svn и сопровождать их путем ревизии и утверждения патчей

ps:

Alexander Makeev welcome to #emu-russia :v2_thumb:

ZXMAK
01.04.2008, 08:05
Представляю на ваш суд порт ZXMAK.NET на SDL.NET.

Вау :v2_thumb: уже смотрю :)

[bETA]mEN
01.04.2008, 08:24
ps:

Alexander Makeev welcome to #emu-russia :v2_thumb:
irc.newnet.net

ZXMAK
01.04.2008, 10:00
Вероятно таже ошибка имеется и в ZXMAK'е.
Ну как движутся поиски?

нашел, но выкладывать стесняюсь - код некрасивый :rolleyes:
в эмуляторе тотже самый diskimage.cpp используется поэтому поведение тоже самое, если нужно, могу отдельные модули выложить... :)

ZXMAK
01.04.2008, 10:07
todo:
- реальный запуск под mono


а под моно запускается? особенно интересно - из под Linux и Mac OS :)

бинарник в аттачменте, там есть небольшая ошибка - логгер не всегда закрывается, но пока не исправлял

Для запуска нужно установить SDL runtime: http://sourceforge.net/project/showfiles.php?group_id=52340

ZXMAK
01.04.2008, 11:22
Перекомпилировал, сразу размер в 2 раза уменьшился, осталось ошибки выловить и поправить.


это очень странно, может у тебя она вирусом заражена была? :v2_conf2:
Та версия что выложена на zx.da.ru, скомпилена старой студией, но зажата упаковщиком, ума не приложу как при этом размер можно меньше получить, разве что более мощным упаковщиком зажать.




В TeleDisk файлах секторы с битыми CRC и отсутствующими полями данных воспринимаюся как нормальные.


Я уже не помню подробностей про TeleDisk, но вроде он не понимает секторов с битыми CRC, возможно ошибаюсь...

Alexandr Medvedev
01.04.2008, 14:03
это очень странно, может у тебя она вирусом заражена была? :v2_conf2:
Та версия что выложена на zx.da.ru, скомпилена старой студией, но зажата упаковщиком, ума не приложу как при этом размер можно меньше получить, разве что более мощным упаковщиком зажать.Всё очень просто переписал всё на чистом WinAPI, отсюда такой выигрыш. После упаковки всего 12 Кб.
Я уже не помню подробностей про TeleDisk, но вроде он не понимает секторов с битыми CRC, возможно ошибаюсь...Судя по исходнику многие поля из заголовков просто игнорируются. А у TeleDisk'а много версий как для прямой работы с контроллером так и через int13h, так что битые CRC тоже читаются.
нашел, но выкладывать стесняюсь - код некрасивыйТогда кинь через ЛС, хочу его пересобрать.

ZXMAK
03.04.2008, 02:07
Добавил поддержку XNA :)
Итого уже работает через MDX, SDL и XNA :)

SDL версию под Linux запускать еще не пробовал, на всякий случай убрал жесткий референс на SdlDotNet.dll (использовалась версия 6.0.0.0). Если кто уже попробовал - отпишите результат :)

Регистрация проекта на sourceforge.net в процессе, жду утверждения... :)

thims
03.04.2008, 17:52
Добавил поддержку XNA :)
Это что же - на Xbox360 можно пускать? :v2_jawdr:

И кстати, MDX не пускается под Vista x64:
Type: System.BadImageFormatException
Message: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
Stack trace:
at ZXMAK.Platform.MDX.Render3D.free()
at ZXMAK.Platform.MDX.Render3D.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.Windows.Forms.Control.Dispose(Boolean disposing)
at System.Windows.Forms.ContainerControl.Dispose(Bool ean disposing)
at System.Windows.Forms.Form.Dispose(Boolean disposing)
at ZXMAK.Platform.MDX.MainForm.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at ZXMAK.Platform.MDX.Platform.Running()
at ZXMAK.Platform.GenericPlatform.Run()

Где-то там что-то 32-битным скомпилено... судя по всему сам dx :( Подпатчил CorFlags'ом ZXMAK.MDX.exe на предмет /32BIT+, всё заработало.

ZXMAK
04.04.2008, 01:09
Это что же - на Xbox360 можно пускать? :v2_jawdr:


можно, только нужно перекомпилировать под XBOX 360. Возможно понадобится удалить поддержку мыши, т.к. класс Mouse, судя по всему на XBOX не доступен. Однако XNA версия без звука :rolleyes:




Это что же - на Xbox360 И кстати, MDX не пускается под Vista x64:
Type: System.BadImageFormatException


да, я уже в курсе, на x64 нет Managed DirectX, поэтому в обновленной версии установил Target Platform x86 для ZXMAK.MDX.exe, чтобы запускалось на Win x64 :)

Добавлено через 1 минуту
Выложил проект на sourceforge: http://sourceforge.net/projects/zxmak-dotnet :cool:

boo_boo
05.04.2008, 14:03
а под моно запускается? особенно интересно - из под Linux и Mac OS
под линухом создает окно и тут же выплевывает пустой мессаджбокс с иконкой-крестиком, без текста и кнопок, с заголовком "exception". после закрытия окна мессаджбокса всё умирает.
в лог говорит:

Error 4/5/2008 2:02:26 PM 633430009463721240 Type: SdlDotNet.Audio.AudioException
Message: Exception of type 'SdlDotNet.Audio.AudioException' was thrown.
Stack trace:
at SdlDotNet.Audio.Mixer.OpenAudio (SdlDotNet.Audio.AudioStream stream) [0x00000]
at SdlDotNet.Audio.Mixer.CheckOpenStatus (SdlDotNet.Audio.AudioStream stream) [0x00000]
at SdlDotNet.Audio.AudioStream.set_Paused (Boolean value) [0x00000]
at (wrapper remoting-invoke-with-check) SdlDotNet.Audio.AudioStream:set_Paused (bool)
at ZXMAK.Platform.SDL.Audio..ctor (Int32 samplesPerSecond, Int16 bufferSize, Int32 bufferCount) [0x00000]
at ZXMAK.Platform.SDL.Platform.Running () [0x00000]
at ZXMAK.Platform.GenericPlatform.Run () [0x00000]

cherkasy
05.04.2008, 18:36
у меня тоже не запускается
похожую фигню выдает система хр

ZXMAK
06.04.2008, 20:23
у меня тоже не запускается
похожую фигню выдает система хр

какую похожую? "похожую" - абсолютно ни о чем не говорит, посмотри в log файле что за ошибка и напиши сюда... ;)

Добавлено через 2 минуты

с заголовком "exception". после закрытия окна мессаджбокса всё умирает.
в лог говорит:
[CODE]Error 4/5/2008 2:02:26 PM 633430009463721240 Type: SdlDotNet.Audio.AudioException
Message: Exception of type 'SdlDotNet.Audio.AudioException' was thrown.
Stack trace:
at SdlDotNet.Audio.Mixer.OpenAudio (SdlDotNet.Audio.AudioStream stream) [0x00000]


может у тебя в это время звуковая карта чемто другим занята? ошибка то в SDL возникает при открытии миксера... :v2_conf2:

попробуй новую версию: ZXMAK.NET 1.0.8.3 (http://sourceforge.net/project/showfiles.php?group_id=223486)
там теперь в SDL версии, если не удалось получить доступ к звуку, то эмуль запустится без звука... :)

cherkasy
06.04.2008, 21:14
хорошо будет на неделе

boo_boo
07.04.2008, 01:47
может у тебя в это время звуковая карта чемто другим занята? ошибка то в SDL возникает при открытии миксера... :v2_conf2:
звуковуха свободна. прочие эмуляторы (fuse, zemu) не жалуются. может zxmak чего-то особенного от нее хочет?


попробуй новую версию: ZXMAK.NET 1.0.8.3 (http://sourceforge.net/project/showfiles.php?group_id=223486)
там теперь в SDL версии, если не удалось получить доступ к звуку, то эмуль запустится без звука... :)запустился, работает, образы читает! правда без кнопы переключения в фуллскрин трудно понять, что там на экране :rolleyes:

ZXMAK
08.04.2008, 10:18
звуковуха свободна. прочие эмуляторы (fuse, zemu) не жалуются. может zxmak чего-то особенного от нее хочет?
запустился, работает, образы читает! правда без кнопы переключения в фуллскрин трудно понять, что там на экране :rolleyes:

boo_boo посмотри пожалуйста, почему глючитExceptionReport форма в линуксе? Там похоже проблема в инициализации свойств, которых в mono нет...
И работает ли под линуксом окно магнитофона? (F6)

boo_boo
08.04.2008, 15:34
boo_boo посмотри пожалуйста, почему глючитExceptionReport форма в линуксе? Там похоже проблема в инициализации свойств, которых в mono нет...
И работает ли под линуксом окно магнитофона? (F6)
как смотреть? в лог ничего кроме инфы о самом ексепшне не пишет, в консоль тоже.. есть ли простой способ узнать, какие свойства реализованы, а какие нет? (под .net программить не приходилось)
окно магнитофона не работает -- пустое и прозрачное.
с файловыми диалогами все ок.

ZXMAK
08.04.2008, 22:20
как смотреть? в лог ничего кроме инфы о самом ексепшне не пишет, в консоль тоже.. есть ли простой способ узнать, какие свойства реализованы, а какие нет? (под .net программить не приходилось)
окно магнитофона не работает -- пустое и прозрачное.
с файловыми диалогами все ок.

а вслед за ошибкой Audio другая ошибка в логе не появляется?
Там еще ошибка логгера была - он не флюшил очередь сообщений на диск при закрытии приложения, поэтому часто бывали случаи когда в лог не успевали записаться некоторые сообщения.

Смотри по сообщению "ZXMAK.Platform.SDL.Platform finished...", если оно в логе есть, значит логер успел закрыться до завершения приложения и все сообщения присутствуют. Смотреть нужно на версии 1.0.8.2, в третьей это окно не открывается.

Фикс логгера я залил в репозитарий, но новый релиз еще не делал... Там кстати еще добавилась поддержка формата CSW v2 и исправлен звук магнитофона :)

[bETA]mEN
08.04.2008, 23:47
при сборке последней SVN:

Error 1 The type or namespace name 'Windows' does not exist in the namespace 'ZXMAK' (are you missing an assembly reference?) ZXMAK.Platform.MDX\Platform.cs 11 13 ZXMAK.Platform.MDX.2008

ZEK
09.04.2008, 00:06
если в студии собираеш на проекте XMAK.Platform.XNA2.Win правой кнопкой Unload project или стянуть XNA


mEN;128066]The type or namespace name 'Windows' does not exist in the namespace 'ZXMAK'
а тут тав в файлике по в котором ругается подключается 2 раза name space
system.windows.forms нада хлопнуть одну строку - using System.Windows.Forms;

Добавлено через 7 минут
И это можно закоменить чтоб собралось -
ToolStripManager.Renderer = new ToolStripProfessionalRenderer(new TanColorTable());

ZXMAK
09.04.2008, 23:05
mEN;128066']при сборке последней SVN:

проекты для 2008 студии я не обновлял, т.к. у меня 2005 :)
Ajax16384 уже залил обновленные проекты для 2008 ;)
Если собираешь не под Win, то MDX проект не собирай - он жестко на Win завязан ;)

Добавь меня в аську, я тебе запрос отправил ;)

[bETA]mEN
10.04.2008, 01:08
Добавь меня в аську, я тебе запрос отправил ;)
меня проще на канале #emu-russia встретить.

ZEK
10.04.2008, 01:30
Запустил под линухом, тож трабла со звуком
щелкае с частотой 5-7гц, делаю из басика beep громкость щелчков раза в два вырастает но звук есть.

SDL и SDL.net до последних версий обновил та же песня.
Через раз вываливается при закрытии exception : *** glibc detected **** mono:
Corrupted double-link list а после карта памяти процесса

Добавлено через 9 часов 39 минут
Если ориентироваться не на самый последний mono
SupportMultiDottedExtensions нада в false воткнуть, Mono 1.2.4 не поддерживает

boo_boo
10.04.2008, 15:46
а вслед за ошибкой Audio другая ошибка в логе не появляется?
Там еще ошибка логгера была - он не флюшил очередь сообщений на диск при закрытии приложения, поэтому часто бывали случаи когда в лог не успевали записаться некоторые сообщения.

Смотри по сообщению "ZXMAK.Platform.SDL.Platform finished...", если оно в логе есть, значит логер успел закрыться до завершения приложения и все сообщения присутствуют. Смотреть нужно на версии 1.0.8.2, в третьей это окно не открывается.) неа, только ошибка открытия аудио в логе. насчет аудио -- у меня типа полупрофессиональная звуковуха, микшер (не ввод-вывод, а именно микшер) у нее несколько отличается от такового в "саундбластерах", например, там нет регулятора "master level". некоторые проги, которые пытаются этот мастерлевел плодкрутить, не спросив, есть ли он в природе, валятся. может, в этом дело?

ZXMAK
11.04.2008, 01:42
неа, только ошибка открытия аудио в логе. насчет аудио -- у меня типа полупрофессиональная звуковуха, микшер (не ввод-вывод, а именно микшер) у нее несколько отличается от такового в "саундбластерах", например, там нет регулятора "master level". некоторые проги, которые пытаются этот мастерлевел плодкрутить, не спросив, есть ли он в природе, валятся. может, в этом дело?

я уже себе FreeBSD поставил :D
ошибка там появляется - у mono размеры для TextBox'а не получается просчитать.


По поводу звука, сразу после создания AudioStream, ошибка падает внутрях SDL.NET, в конечном счете из-за того что unmanaged вызов в SDL возвращает значение < 0:


Sdl.SDL_OpenAudio(pSpec, IntPtr.Zero)


судя из комента к этой функции:

The desired size of the audio buffer in samples. This number should be a
power of two, and may be adjusted by the audio driver to a value more suitable
for the hardware. Good values seem to range between 512 and 8192 inclusive,
depending on the application and CPU speed. Smaller values yield faster response
time, but can lead to underflow if the application is doing heavy processing
and cannot fill the audio buffer in time.

по всей видимости ошибка возникает из-за того что запрашивается буфер размером 882 сэмпла... :(
а в Windows работает :v2_conf2:

Я думаю эта проблема со звуком из-за кривого драйвера звуковой карты под *nix'ами, который нивкакую не хочет работать с буфером на 882 сэмпла :) Нужно чтото придумывать чтобы с POT буфером работало :v2_conf2:

Кстати, в порте SDL под Windows есть ошибка - невозможно отследить одновременное нажатие левого и правого шифтов - либо левый, либо правый :D Если один шифт уже нажат, то нажатие второго не изменяет ни одну ячейку буффера с состоянием клавы... :)
Поэтому в SDL версии эмулятора под Windows невозможно включить режим курсора E (нажатием обоих шифтов). А вот под FreeBSD эта комбинация кнопок в эмуляторе работает нормально :D

boo_boo
11.04.2008, 12:14
ошибка там появляется - у mono размеры для TextBox'а не получается просчитать. у меня не появляется, проверено. (последняя версия моно)

Я думаю эта проблема со звуком из-за кривого драйвера звуковой карты под *nix'ами, который нивкакую не хочет работать с буфером на 882 сэмпла это запросто, alsa-драйвер, в отличие от виндового, лезет к железу без дополнительных реверансов, то бишь не создает прозрачно своих буферов "правильного" размера, если запрошен "неправильный" размер, а откровенно шлет нафиг.
а железо практически всегда требует степень двойки -- кому ж охота непонятно зачем схемотехнику усложнять :)

Добавлено через 8 минут

Нужно чтото придумывать можно потырить из анрила логику, там все довольно просто и красиво гонится через закольцованный буфер

ZXMAK
11.04.2008, 23:09
Добавлено через 8 минут
можно потырить из анрила логику, там все довольно просто и красиво гонится через закольцованный буфер

в MDX версии тоже самое, но там есть возможность отследить текущее положение курсора, что дает возможность сходу начать писать следующую порцию, даже если предыдущую всунуть не успели, а вот возможно ли такое под SDL не знаю

boo_boo
13.04.2008, 18:28
в MDX версии тоже самое, но там есть возможность отследить текущее положение курсора, что дает возможность сходу начать писать следующую порцию, даже если предыдущую всунуть не успели, а вот возможно ли такое под SDL не знаю средствами SDL IMNSHO невозможно. возможно пихать все сэмплы в буфер, имея 2 своих курсора -- записанных данных и отданных данных, и по SDL-ному коллбэку, запрашивающему дозу сэмплов, эту дозу отдавать. в zemu такая штука с SDL в целом работала.

но вообще практика показывает, что звуковая подсистема в гейм-ориентированных либах все-в-одном типа SDL и Allegro фигово подходит для эмуляторских нужд -- все слишком зависит от ОС/драйвера, и в половине или больше случаев приходится выбирать между треском и лагом. IMHO от portaudio должно быть больше толку.

ZXMAK
18.04.2008, 01:55
а как отресайзить картинку в SDL?

Ajax16384 сделал с помощью Blit:


_surface.Lock();
try
{
DrawFrame(_surface.Pixels);
}
finally
{
_surface.Unlock();
}
using(Surface stretch = _surface.CreateScaledSurface(_zoomX, _zoomY, _antiAlias))
Video.Screen.Blit(stretch);
Video.Update();


но это тормозит жутко, и картинка почемуто кривая получается (см. в аттачменте)... :v2_conf2:

boo_boo
18.04.2008, 05:43
а как отресайзить картинку в SDL?

Ajax16384 сделал с помощью Blit:


_surface.Lock();
try
{
DrawFrame(_surface.Pixels);
}
finally
{
_surface.Unlock();
}
using(Surface stretch = _surface.CreateScaledSurface(_zoomX, _zoomY, _antiAlias))
Video.Screen.Blit(stretch);
Video.Update();


но это тормозит жутко, и картинка почемуто кривая получается (см. в аттачменте)... :v2_conf2:
на каждый кадр такое делается? тогда должно тормозить -- создание surface'а тяжелая штука, лучше один раз создать, а потом пихать туда всякое.
вообще, фз что эта CreateScaledSurface делает, это SdlDotNet'овский метод, не родной, и внятной документации по нему нет. судя про тому, что zoom'ы в этом методе double, оно масштабирует произвольно, а не в целое число раз (вот и еще тормоза). неужто кому-то в эмуле нужно так масштабировать? О__о
ИМХО лучше свою процедуру масштабирования написать (в SDL нету средств для ресайзов/вращений/эффектов/тп, но это можно сделать самому, залочив surface, и делая с графическими данными что угодно)

Vitamin
18.04.2008, 10:00
У меня нормально ресайзить получалось. Но режим плоскости- 32 бита

ZXMAK
19.04.2008, 00:03
У меня нормально ресайзить получалось. Но режим плоскости- 32 бита

кривые цвета из приведенного скриншота на видеокарте с 16 битным цветом (S3Virge VirtualPC) :)

а как ты делал?

нарыл что под linux для этого дела есть SDL_stretch, ктото юзал?

Vitamin
19.04.2008, 00:39
а как ты делал?



void GfxControl::putBuffer()
{
if (scrdepth != 4)
{
if (scrwidth == W_WIDTH)
SDL_BlitSurface(pTmpSurf, NULL, pDstSurf, NULL);
else
SDL_SoftStretch(pTmpSurf, NULL, pDstSurf, NULL);
}
else
if (scrwidth != W_WIDTH)
SDL_SoftStretch(pSrcSurf, NULL, pDstSurf, NULL);
SDL_Flip(pDstSurf);
}

[bETA]mEN
19.04.2008, 17:44
а зачем в последнем билде снова включена принудительная фильтрация картинки? приходится её выключать через /AA-

ZXMAK
19.04.2008, 22:10
mEN;129814']а зачем в последнем билде снова включена принудительная фильтрация картинки?

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

Нужно сохранение/загрузку конфига приделать

[bETA]mEN
19.04.2008, 22:14
без нее на не кратном размере окна изображение получается неприглядным :) Кроме того, с фильтрацией изображение больше телевизор напоминает :cool:
с фильтрацией выглядит жутко, я бы даже сказал отвратительно :(

ZXMAK
19.04.2008, 22:26
mEN;129842']с фильтрацией выглядит жутко, я бы даже сказал отвратительно :(

хм, покажи скриншот, как у тебя выглядит, может это баг какой?

[bETA]mEN
20.04.2008, 01:04
хм, покажи скриншот, как у тебя выглядит, может это баг какой?
никаких багов, просто фильтрация :v2_sick:

ZXMAK
21.04.2008, 01:48
mEN;129868']никаких багов, просто фильтрация :v2_sick:

хм, вроде нормально выглядит :)

boo_boo
21.04.2008, 03:11
хм, вроде нормально выглядит IMHO тоже довольно-таки на любителя )
хотя на не кратном размере окна, конечно, еще хуже будет без фильтрации.
хотя IMO для жизни более чем достаточно кратного размера

Ajax16384
24.04.2008, 11:41
SDL_SoftStretch(pTmpSurf, NULL, pDstSurf, NULL);


хорошая идея.
жаль что SDL_SoftStretch не обернут в текущем sdl.net и приходится
пока через медленный CreateScaledSurface извращаться.
в выходные попробую дернуть SDL_SoftStretch и ускорить отрисовку.

Добавлено через 14 минут

на каждый кадр такое делается? тогда должно тормозить -- создание surface'а тяжелая штука, лучше один раз создать, а потом пихать туда всякое.
вообще, фз что эта CreateScaledSurface делает, это SdlDotNet'овский метод, не родной, и внятной документации по нему нет. судя про тому, что zoom'ы в этом методе double, оно масштабирует произвольно, а не в целое число раз (вот и еще тормоза). неужто кому-то в эмуле нужно так масштабировать? О__о
ИМХО лучше свою процедуру масштабирования написать (в SDL нету средств для ресайзов/вращений/эффектов/тп, но это можно сделать самому, залочив surface, и делая с графическими данными что угодно)

sdl.net пока далек от идеала. единственный доступный способ масштабирования использует SDL_gfx библиотеку. причем api построено так - что для повторного перемасштабирования небходимо создавать новый экземпляр растянутой surface. будем надеяться что указаный Vitamin SDL_SoftStretch решит проблему.
ну а руками писать масштабирование изображений на языке высокого уровня при наличии оптимизированых библиотечных процедур - слегка mauvais ton.


добавлено позже:
вобщемто не просто так в sdl.net нету обертки :)
/* Not in public API at the moment - do not use! */
SDL_SoftStretch

добавлено позже #2:

не утерпел до выходных и добавил SDL_SoftStretch. действительно работает и конечно быстрее прежнего способа. исправления внесены в sf.net/projects/zxmak-dotnet. спасибо всем за конструктивное предложение :v2_thumb:.

немного о ключах командой строки управления видеовыводом

для всех портов:
/f - во весь экран

для SDL порта:
/? - выводит список доступных видеорежимов для ключа /vm
/vmX - запуск с указаным видеорежимом

для MDX порта:
/aa- - отключает фильтрацию

ZXMAK
26.04.2008, 02:15
будет еще ключ /model:<clone> и его короткий аналог /m:<clone>, где <clone> - модель спектрума :) Точнее уже есть в сырцах на sourceforge (релиз пока не делал), сейчас делаю потихоньку Profi1024 :)

[bETA]mEN
26.04.2008, 13:34
будет еще ключ /model:<clone> и его короткий аналог /m:<clone>, где <clone> - модель спектрума :) Точнее уже есть в сырцах на sourceforge (релиз пока не делал), сейчас делаю потихоньку Profi1024 :)
так и будет всё через коммандную строку переключатся? gui не будет?

ZXMAK
26.04.2008, 18:28
mEN;131196']так и будет всё через коммандную строку переключатся? gui не будет?

будет, руки еще не дошли :v2_rolley В конфиг сейчас все в кучу навалено, может нужно будет отрефакторить, а потом и окошко с настройками будет :)

ZXMAK
28.04.2008, 19:26
зарелизил версию 1.0.8.4 (http://sourceforge.net/project/showfiles.php?group_id=223486) :v2_wink2:


+ CSW v2 tape loader added (Z-RLE compression)
+ fix tape sound
+ fix logger finalization
+ SDL: scaling and fullscreen added
+ engine load/save and sound refactoring
+ fix mouse emulation
+ TD0 disk deserializer added
+ MDX: quick snapshot load added (F12)
+ MDX: drag'n'drop fixed
+ MDX: improved video synchronization for better smooth multicolor effect and scrolls

Sayman
04.05.2008, 09:09
када наманая эмуляция профика будет??? :mad:

ZXMAK
04.05.2008, 17:49
уже залил эмуляцию памяти и расширенного экрана профи, менюшка уже работает, правда cp/m еще не грузит - нужно дешифрацию портов доделать, она у профика очень сложная :)

P.S.: в аттачменте скриншот :v2_rolley сорри за качество, пк.ру лучше не дает...

Sayman
04.05.2008, 18:03
великое дело делаеш! спасиба гаварю тебе!!!

[bETA]mEN
04.05.2008, 20:50
P.S.: в аттачменте скриншот :v2_rolley сорри за качество, пк.ру лучше не дает...
:speccy:

Sayman
06.05.2008, 06:34
Уважаемый автор!)) очень Вас прошу. ваще прям умаляю - НУ СДЕЛАЙТЕ ЭМУЛЯЦИЮ КОНТРОЛЛЕРА ХДД ПРОФИКА!!!!!

boo_boo
06.05.2008, 14:15
что-то у меня ключ /? не выдает ни одного режима..
а как выйти из эмулятора? окошко закрывать? ИМХО неудобно, особенно из фуллскрина ))

[bETA]mEN
06.05.2008, 14:30
что-то у меня ключ /? не выдает ни одного режима..
это только для SDL

boo_boo
06.05.2008, 15:30
mEN;132677]это только для SDL я в курсе. вот для SDL он и не выдает ничего.

[bETA]mEN
06.05.2008, 19:17
для SDL он и не выдает ничего.
у меня работает

boo_boo
06.05.2008, 19:40
mEN;132751]у меня работает
под виндой, судя по скрину?
я под линухом, может в этом собака порылась...
однако сам ключ /vm с номерами работает. номера от твоих отличаются, конечно.

однако, юзать эмуль без злосчастного сглаживания крайне мутно -- тк картинка ресайзится под окно, а контролировать размер эмулируемого пиксела возможности нет. ИМО был бы очень полезен режим, когда соблюдаются пропорции пикселов, а остатнее пространство уходит в рамку (т.е. картинка центрируется) .

ZXMAK
06.05.2008, 22:59
однако, юзать эмуль без злосчастного сглаживания крайне мутно -- тк картинка ресайзится под окно, а контролировать размер эмулируемого пиксела возможности нет.

эмулятор рендерит изображение 320x240, можно поставить 640x480, изображение будет четко 1 к 2

Sayman
12.05.2008, 13:37
ну вот...мне прислали версию 5.30 цпма профи...на последнем зхмак (который не нет) тоже не пашет, как и профи дос...эта же система (5.30 присланная) и в анрылспекки не работает...