User Tag List

Страница 107 из 224 ПерваяПервая ... 103104105106107108109110111 ... ПоследняяПоследняя
Показано с 1,061 по 1,070 из 2231

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

  1. #1061

    Регистрация
    16.01.2005
    Адрес
    Moscow
    Сообщений
    800
    Спасибо Благодарностей отдано 
    437
    Спасибо Благодарностей получено 
    43
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Проверьте
    джойстик работает нормально
    Цитата Сообщение от ZXMAK Посмотреть сообщение
    хаес модем


    это норма?
    IT FOUND A VOICE... NOW IT NEEDS A BODY

  2. #1062

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от [bETA]mEN Посмотреть сообщение


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

    ---------- Post added at 03:55 ---------- Previous post was at 02:10 ----------

    Обновил эмулятор до версии 2754:
    - добавлен хаес-модем написанный Eltaron;
    - добавлена возможность выбора джойстика хост-машины
    - добавлена возможность выбора джойстика на клавиатурном нумпаде.
    Последний раз редактировалось ZXMAK; 09.06.2013 в 11:56.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  3. #1063

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    добавлен хаес-модем написанный Дмитрием
    Александр я
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  4. #1064

    Регистрация
    16.01.2005
    Адрес
    Moscow
    Сообщений
    800
    Спасибо Благодарностей отдано 
    437
    Спасибо Благодарностей получено 
    43
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    В этом списке отображаются COM порты хост машины, если ком портов на машине нет, то так и будет
    Требуется модем подключенный к com-порту?
    IT FOUND A VOICE... NOW IT NEEDS A BODY

  5. #1065

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Александр я
    Сорри, все перепутал Исправил
    Последний раз редактировалось ZXMAK; 09.06.2013 в 12:01.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  6. #1066

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С джойстиками замечено два бага:

    1. От этого падает если в системе два или больше джойстиков:

    Скрытый текст


    Error 13:53:04.953 Exception System.Reflection.TargetInvocationException: Адресат вызова создал исключение.
    в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
    в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
    в System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
    в System.Activator.CreateInstance(Type type, Boolean nonPublic)
    в System.Activator.CreateInstance(Type type)
    в ZXMAK2.Controls.FormMachineSettings.CreateConfigScreenControl(BusManager bmgr, Object objTarget) в c:\Projects\zxmak2-clean\ZXMAK2\Controls\FormMachineSettings.cs:строка 404
    в ZXMAK2.Controls.FormMachineSettings.initWorkBus() в c:\Projects\zxmak2-clean\ZXMAK2\Controls\FormMachineSettings.cs:строка 460
    InnerException System.InvalidOperationException: Сбой при сравнении двух элементов массива.
    в System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
    в System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1 comparer)
    в System.Collections.Generic.List`1.Sort(Int32 index, Int32 count, IComparer`1 comparer)
    в System.Collections.Generic.List`1.Sort()
    в ZXMAK2.MDX.DirectJoystick.Select() в c:\Projects\zxmak2-clean\ZXMAK2\MDX\DirectJoystick.cs:строка 352
    в ZXMAK2.Controls.Configuration.CtlSettingsJoystick.BindTypeList() в c:\Projects\zxmak2-clean\ZXMAK2\Controls\Configuration\CtlSettingsJoystick.cs:строка 28
    в ZXMAK2.Controls.Configuration.CtlSettingsJoystick..ctor() в c:\Projects\zxmak2-clean\ZXMAK2\Controls\Configuration\CtlSettingsJoystick.cs:строка 22
    InnerException System.ArgumentException: По крайней мере в одном объекте должен быть реализован интерфейс IComparable.
    в System.Collections.Comparer.Compare(Object a, Object b)
    в System.Collections.Generic.ObjectComparer`1.Compare(T x, T y)
    в System.Collections.Generic.ArraySortHelper`1.SwapIfGreaterWithItems(T[] keys, IComparer`1 comparer, Int32 a, Int32 b)
    в System.Collections.Generic.ArraySortHelper`1.QuickSort(T[] keys, Int32 left, Int32 right, IComparer`1 comparer)
    в System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
    ---
    Full StackTrace:
    в ZXMAK2.LogAgent.Error(Exception ex)
    в ZXMAK2.Controls.FormMachineSettings.initWorkBus()
    в ZXMAK2.Controls.FormMachineSettings.Init(VirtualMachine vm, RenderVideo renderVideo)
    в ZXMAK2.Controls.FormMain.menuVmOptions_Click(Object sender, EventArgs e)
    в System.Windows.Forms.MenuItem.OnClick(EventArgs e)
    в System.Windows.Forms.MenuItem.MenuItemData.Execute()
    в System.Windows.Forms.Command.Invoke()
    в System.Windows.Forms.Command.DispatchID(Int32 id)
    в System.Windows.Forms.Control.WmCommand(Message& m)
    в System.Windows.Forms.Control.WndProc(Message& m)
    в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    в System.Windows.Forms.ContainerControl.WndProc(Message& m)
    в System.Windows.Forms.Form.WndProc(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    в System.Windows.Forms.Application.Run(Form mainForm)
    в ZXMAK2.Program.Main(String[] args)

    [свернуть]


    Фикс простой:

    Скрытый текст

    Код:
    Index: HostDeviceInfo.cs
    ===================================================================
    --- HostDeviceInfo.cs	(revision 26670)
    +++ HostDeviceInfo.cs	(working copy)
    @@ -2,7 +2,7 @@
     
     namespace ZXMAK2.Entities
     {
    -    public class HostDeviceInfo
    +    public class HostDeviceInfo : IComparable
         {
             public string Name { get; private set; }
             public string HostId { get; private set; }
    @@ -17,5 +17,10 @@
             {
                 return Name;
             }
    +
    +        public int CompareTo(object obj)
    +        {
    +            return ToString().CompareTo(obj.ToString());
    +        }
         }
     }
    [свернуть]


    2. От этого не падает, но джойстики просто не работают в некоторых случаях:

    Скрытый текст


    Error 14:01:17.332 Exception System.InvalidOperationException: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "FormMain" не из того потока, в котором он был создан.
    в System.Windows.Forms.Control.get_Handle()
    в Microsoft.DirectX.DirectInput.Device.SetCooperativeLevel(Control parent, CooperativeLevelFlags flags)
    в ZXMAK2.MDX.DirectJoystick.CaptureHostDevice(String hostId) в c:\Projects\zxmak2-clean\ZXMAK2\MDX\DirectJoystick.cs:строка 101
    ---
    Full StackTrace:
    в ZXMAK2.LogAgent.Error(Exception ex)
    в ZXMAK2.MDX.DirectJoystick.CaptureHostDevice(String hostId)
    в ZXMAK2.Engine.InputAggregator.Capture()
    в ZXMAK2.Engine.InputAggregator..ctor(IHostKeyboard hostKeyboard, IHostMouse hostMouse, IHostJoystick hostJoystick, IKeyboardDevice[] keyboards, IMouseDevice[] mouses, IJoystickDevice[] joysticks)
    в ZXMAK2.Engine.VirtualMachine.runThreadProc()
    в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    в System.Threading.ThreadHelper.ThreadStart()
    [свернуть]


    Фикс:

    Скрытый текст

    Код:
    Index: DirectJoystick.cs
    ===================================================================
    --- DirectJoystick.cs	(revision 26670)
    +++ DirectJoystick.cs	(working copy)
    @@ -69,6 +69,13 @@
                 }
             }
     
    +        // Should be executed in the FormMain thread
    +        public delegate void FormMainDelegate(Form form, Device joystick);
    +        public static void SetCooperativeLevel(Form form, Device joystick)
    +        {
    +            joystick.SetCooperativeLevel(form, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
    +        }
    +
             public void CaptureHostDevice(string hostId)
             {
                 try
    @@ -98,7 +105,8 @@
                         var joystick = new Device(deviceInstance.InstanceGuid);
                         try
                         {
    -                        joystick.SetCooperativeLevel(m_form, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
    +                        // multithreaded joystick.SetCooperativeLevel analogue
    +                        m_form.Invoke(new FormMainDelegate(SetCooperativeLevel), m_form, joystick);
                             joystick.SetDataFormat(DeviceDataFormat.Joystick);
                             joystick.Acquire();
                         }
    [свернуть]


    ---------- Post added at 14:27 ---------- Previous post was at 14:17 ----------

    Цитата Сообщение от [bETA]mEN Посмотреть сообщение
    Требуется модем подключенный к com-порту?
    Ага. Или модем, или сотовый через шнурок, или сотовый через блютуз. В двух последних случаях только надо чтоб при этом виртуальный COM-порт создавался.

    ---------- Post added at 14:41 ---------- Previous post was at 14:27 ----------

    И наверное есть смысл сделать так:

    Скрытый текст

    Код:
    Index: CtlSettingsJoystick.cs
    ===================================================================
    --- CtlSettingsJoystick.cs	(revision 26670)
    +++ CtlSettingsJoystick.cs	(working copy)
    @@ -37,7 +37,7 @@
                 m_bmgr = bmgr;
                 m_device = device;
     
    -            cbxType.SelectedIndex = -1;
    +            cbxType.SelectedIndex = 0;
                 for (var i = 0; i < cbxType.Items.Count; i++)
                 {
                     var hdi = (HostDeviceInfo)cbxType.Items[i];
    [свернуть]

    Иначе если запустить эмулятор, а перед запуском отключить тот джойстик, который прописан в конфиге, то при входе в Settings и нажатии Apply вылетает окошко про NullReferenceException.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  7. #1066
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #1067

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение

    2. От этого не падает, но джойстики просто не работают в некоторых случаях:
    а если просто заменить на такой вызов помогает?
    Код:
                            joystick.SetCooperativeLevel(m_form.Handle, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  9. #1068

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    а если просто заменить на такой вызов помогает?
    Неа, поток-то всё равно другой остался. Падает с той же ошибкой, разве что Stacktrace уменьшился на одну строчку.

    Скрытый текст


    Error 14:50:26.667 Exception System.InvalidOperationException: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "FormMain" не из того потока, в котором он был создан.
    в System.Windows.Forms.Control.get_Handle()
    в ZXMAK2.MDX.DirectJoystick.CaptureHostDevice(String hostId) в c:\Projects\zxmak2-clean\ZXMAK2\MDX\DirectJoystick.cs:строка 101
    [свернуть]
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  10. #1069

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ах ну да, а если хэндл окна в конструкторе сохранять и потом использовать готовый, без обращения к mainform?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  11. #1070

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    ах ну да, а если хэндл окна в конструкторе сохранять и потом использовать готовый, без обращения к mainform?
    Haldle же всего лишь объект ядра, число. Оно вроде неизменное на всём протяжении работы программы.
    Но счас попробую.

    Ошибся, не число, а IntPtr это. Работает!

    ---------- Post added at 15:49 ---------- Previous post was at 15:34 ----------

    Еще баг - если вытащить джойстик во время работы, то падает в районе DirectJoystick.cs:43 с разными ошибками. Было и "Коллекция была изменена; невозможно выполнить операцию перечисления", и что-то про невозможность перечисления пустой коллекции. Эмулятор при этом прекращает работу.
    Ой, строка 43 - это же у меня после разных изменений В общем, тут падает:
    Код:
                var guidList = m_devices.Keys;
                foreach (var guid in guidList)
    Последний раз редактировалось Eltaron; 09.06.2013 в 13:54.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

Страница 107 из 224 ПерваяПервая ... 103104105106107108109110111 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •