User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Эмуляторы для Linux

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию Эмуляторы для Linux

    Хотел поставить какой-то эмулятор на Raspberry Pi, но ничего путного не нашел.
    Гугл советует fuse, но он работает странновато на какихто опкодах сильно подтормаживает, полноэкранного режима нет, да и в окне ресайз со странностями.
    Как альтернативу гугл посоветовал FBZX, но в нём даже TRDOS нет и какие-то проблемы с реальной скоростью (завышена).

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

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

  3. #2

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Неужели на Linux нет хороших эмуляторов спектрума?
    ZXBaremulator для Raspberry Pi. Но он не под Linux, а под голое железо.
    С уважением, Станислав.

  4. #3

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Но он не под Linux, а под голое железо.
    Не, такое не годится. Как же в браузере параллельно лазить и музыку слушать?
    ZEmu после допиливания очень шустро работает. То что надо для Raspberry Pi.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #4

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

    По умолчанию

    Ау, тут еще бывает ктото?

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

  6. #5

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Под Линукс изначально Xpeccy делался. Но я даже не представляю на малине как он будет работать.

  7. #6

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus Посмотреть сообщение
    Под Линукс изначально Xpeccy делался. Но я даже не представляю на малине как он будет работать.
    Думается, что хреново он будет работать
    Все любят гипножабу

  8. #7

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

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Думается, что хреново он будет работать
    запустился, но пока не понял как выбрать 128К модель с TRDOS.
    В настройках меню Romset фиксировано ZX48 и не выбирается, хотя модель выбрал Pentagon.

    Последний раз редактировалось ZXMAK; 04.09.2024 в 22:04.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

    Этот пользователь поблагодарил ZXMAK за это полезное сообщение:

    CityAceE(05.09.2024)

  9. #8

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    запустился, но пока не понял как выбрать 128К модель с TRDOS.
    В настройках меню Romset фиксировано ZX48 и не выбирается, хотя модель выбрал Pentagon.
    В первом сообщении темы - https://zx-pk.ru/threads/9479-xpeccy.html - есть ссылка на ром-пак, их надо скидать в ~/.config/samstyle/xpeccy/roms. Это файлы ПЗУ, из них (конкретно pentagon.rom и trdos.rom) можешь создать свой ромсет, или просто нажать лампочку в настройках справа от списка пзу.
    Все любят гипножабу

  10. #9

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZXMAK,
    Можно взять пак с ромами+конфигами+профилями : https://volutar.myds.me/xpeccy/config.zip

    Мне интересно будут ли вообще шейдеры работать на малинке, и как там со скоростью с ними...

  11. #10

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

    По умолчанию

    Цитата Сообщение от Dexus Посмотреть сообщение
    ZXMAK,
    Мне интересно будут ли вообще шейдеры работать на малинке, и как там со скоростью с ними...
    как проверить шейдеры в Xpeccy не знаю. А вообще работают, но медленее чем на игровых видеокартах.

    sea.glsl примерно 3-5 fps:
    Код:
    const int NUM_STEPS = 8;
    const float PI	 	= 3.141592;
    const float EPSILON	= 1e-3;
    #define EPSILON_NRM (0.1 / iResolution.x)
    
    // sea
    const int ITER_GEOMETRY = 3;
    const int ITER_FRAGMENT = 5;
    const float SEA_HEIGHT = 0.6;
    const float SEA_CHOPPY = 4.0;
    const float SEA_SPEED = 0.8;
    const float SEA_FREQ = 0.16;
    const vec3 SEA_BASE = vec3(0.1,0.19,0.22);
    const vec3 SEA_WATER_COLOR = vec3(0.8,0.9,0.6);
    #define SEA_TIME (1.0 + iGlobalTime * SEA_SPEED)
    const mat2 octave_m = mat2(1.6,1.2,-1.2,1.6);
    
    // math
    mat3 fromEuler(vec3 ang) {
    	vec2 a1 = vec2(sin(ang.x),cos(ang.x));
        vec2 a2 = vec2(sin(ang.y),cos(ang.y));
        vec2 a3 = vec2(sin(ang.z),cos(ang.z));
        mat3 m;
        m[0] = vec3(a1.y*a3.y+a1.x*a2.x*a3.x,a1.y*a2.x*a3.x+a3.y*a1.x,-a2.y*a3.x);
    	m[1] = vec3(-a2.y*a1.x,a1.y*a2.y,a2.x);
    	m[2] = vec3(a3.y*a1.x*a2.x+a1.y*a3.x,a1.x*a3.x-a1.y*a3.y*a2.x,a2.y*a3.y);
    	return m;
    }
    float hash( vec2 p ) {
    	float h = dot(p,vec2(127.1,311.7));	
        return fract(sin(h)*43758.5453123);
    }
    float noise( in vec2 p ) {
        vec2 i = floor( p );
        vec2 f = fract( p );	
    	vec2 u = f*f*(3.0-2.0*f);
        return -1.0+2.0*mix( mix( hash( i + vec2(0.0,0.0) ), 
                         hash( i + vec2(1.0,0.0) ), u.x),
                    mix( hash( i + vec2(0.0,1.0) ), 
                         hash( i + vec2(1.0,1.0) ), u.x), u.y);
    }
    
    // lighting
    float diffuse(vec3 n,vec3 l,float p) {
        return pow(dot(n,l) * 0.4 + 0.6,p);
    }
    float specular(vec3 n,vec3 l,vec3 e,float s) {    
        float nrm = (s + 8.0) / (PI * 8.0);
        return pow(max(dot(reflect(e,n),l),0.0),s) * nrm;
    }
    
    // sky
    vec3 getSkyColor(vec3 e) {
        e.y = max(e.y,0.0);
        return vec3(pow(1.0-e.y,2.0), 1.0-e.y, 0.6+(1.0-e.y)*0.4);
    }
    
    // sea
    float sea_octave(vec2 uv, float choppy) {
        uv += noise(uv);        
        vec2 wv = 1.0-abs(sin(uv));
        vec2 swv = abs(cos(uv));    
        wv = mix(wv,swv,wv);
        return pow(1.0-pow(wv.x * wv.y,0.65),choppy);
    }
    
    float map(vec3 p) {
        float freq = SEA_FREQ;
        float amp = SEA_HEIGHT;
        float choppy = SEA_CHOPPY;
        vec2 uv = p.xz; uv.x *= 0.75;
        
        float d, h = 0.0;    
        for(int i = 0; i < ITER_GEOMETRY; i++) {        
        	d = sea_octave((uv+SEA_TIME)*freq,choppy);
        	d += sea_octave((uv-SEA_TIME)*freq,choppy);
            h += d * amp;        
        	uv *= octave_m; freq *= 1.9; amp *= 0.22;
            choppy = mix(choppy,1.0,0.2);
        }
        return p.y - h;
    }
    
    float map_detailed(vec3 p) {
        float freq = SEA_FREQ;
        float amp = SEA_HEIGHT;
        float choppy = SEA_CHOPPY;
        vec2 uv = p.xz; uv.x *= 0.75;
        
        float d, h = 0.0;    
        for(int i = 0; i < ITER_FRAGMENT; i++) {        
        	d = sea_octave((uv+SEA_TIME)*freq,choppy);
        	d += sea_octave((uv-SEA_TIME)*freq,choppy);
            h += d * amp;        
        	uv *= octave_m; freq *= 1.9; amp *= 0.22;
            choppy = mix(choppy,1.0,0.2);
        }
        return p.y - h;
    }
    
    vec3 getSeaColor(vec3 p, vec3 n, vec3 l, vec3 eye, vec3 dist) {  
        float fresnel = clamp(1.0 - dot(n,-eye), 0.0, 1.0);
        fresnel = pow(fresnel,3.0) * 0.65;
            
        vec3 reflected = getSkyColor(reflect(eye,n));    
        vec3 refracted = SEA_BASE + diffuse(n,l,80.0) * SEA_WATER_COLOR * 0.12; 
        
        vec3 color = mix(refracted,reflected,fresnel);
        
        float atten = max(1.0 - dot(dist,dist) * 0.001, 0.0);
        color += SEA_WATER_COLOR * (p.y - SEA_HEIGHT) * 0.18 * atten;
        
        color += vec3(specular(n,l,eye,60.0));
        
        return color;
    }
    
    // tracing
    vec3 getNormal(vec3 p, float eps) {
        vec3 n;
        n.y = map_detailed(p);    
        n.x = map_detailed(vec3(p.x+eps,p.y,p.z)) - n.y;
        n.z = map_detailed(vec3(p.x,p.y,p.z+eps)) - n.y;
        n.y = eps;
        return normalize(n);
    }
    
    float heightMapTracing(vec3 ori, vec3 dir, out vec3 p) {  
        float tm = 0.0;
        float tx = 1000.0;    
        float hx = map(ori + dir * tx);
        if(hx > 0.0) return tx;   
        float hm = map(ori + dir * tm);    
        float tmid = 0.0;
        for(int i = 0; i < NUM_STEPS; i++) {
            tmid = mix(tm,tx, hm/(hm-hx));                   
            p = ori + dir * tmid;                   
        	float hmid = map(p);
    		if(hmid < 0.0) {
            	tx = tmid;
                hx = hmid;
            } else {
                tm = tmid;
                hm = hmid;
            }
        }
        return tmid;
    }
    
    // main
    void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
    	vec2 uv = fragCoord.xy / iResolution.xy;
        uv = uv * 2.0 - 1.0;
        uv.x *= iResolution.x / iResolution.y;    
        float time = iGlobalTime * 0.3 + iMouse.x*0.01;
            
        // ray
        vec3 ang = vec3(sin(time*3.0)*0.1,sin(time)*0.2+0.3,time);    
        vec3 ori = vec3(0.0,3.5,time*5.0);
        vec3 dir = normalize(vec3(uv.xy,-2.0)); dir.z += length(uv) * 0.15;
        dir = normalize(dir) * fromEuler(ang);
        
        // tracing
        vec3 p;
        heightMapTracing(ori,dir,p);
        vec3 dist = p - ori;
        vec3 n = getNormal(p, dot(dist,dist) * EPSILON_NRM);
        vec3 light = normalize(vec3(0.0,1.0,0.8)); 
                 
        // color
        vec3 color = mix(
            getSkyColor(dir),
            getSeaColor(p,n,light,dir,dist),
        	pow(smoothstep(0.0,-0.05,dir.y),0.3));
            
        // post
    	fragColor = vec4(pow(color,vec3(0.75)), 1.0);
    }
    Код:
    glXQueryVersion: 1.4
    Version:   3.1 Mesa 23.2.1-1~bpo12+rpt3
    Renderer:  V3D 4.2
    Vendor:    Broadcom
    GL:        3.1
    GLSL:      1.40
    AA:        0
    Color:     32
    Depth:     24
    Stencil:   0
    ShaderVersion: 1.40


    Вообще графика в Raspios Bookworm с Wayland Wayfire замечательная. У меня включен Wayfire плагины cube и wobbly (виляющие окна, окна ведут себя как резиновые, болтаются и покачиваются, иммитируя резиновую физику, когда мышкой подхватываешь и тянешь), эффекты плавные и приятные глазу, при этом на производительности это не сказывается.

    Брал RPI4 4G попробовать для сигнальной обработки, но вот уже год сижу на ней как не десктопе, т.к. нормальный комп или ноут сейчас приобрести нет возможности. Для разработки конечно слабовато, но geany вполне себе шустро работает. А инет читать и видео смотреть отлично. Единственное что с HD и UHD разрешениями могут быть проблемы с лагами если формат не H264.

    У RPI5 процессор и GPU примерно в два раза быстрей, правда с другой стороны убрали аппаратное ускорение H264, но зато добавили аппаратное ускорение для шифрования. Думаю на RPI5 этот-же шейдер будет давать порядка 6-10 fps.
    Последний раз редактировалось ZXMAK; 06.09.2024 в 02:21.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

    Этот пользователь поблагодарил ZXMAK за это полезное сообщение:

    CityAceE(06.09.2024)

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмуляторы ZX Spectrum для Raspberry Pi
    от CityAceE в разделе Эмуляторы
    Ответов: 33
    Последнее: 03.09.2024, 05:57
  2. Эмуляторы для psp (Atari ST и Amiga)
    от Руслан в разделе Эмуляторы
    Ответов: 7
    Последнее: 19.11.2012, 19:50
  3. Дистрибутив Puppy Linux для эмуляторщиков.
    от neon79 в разделе Эмуляторы
    Ответов: 60
    Последнее: 22.06.2012, 00:47
  4. ЭМУЛЯТОРЫ ДЛЯ НАЛАДОННИКОВ
    от XOUT в разделе Эмуляторы
    Ответов: 5
    Последнее: 25.03.2007, 12:11
  5. zx-эмуляторы на Java,в частности для Motorola?
    от razer в разделе Эмуляторы
    Ответов: 15
    Последнее: 18.07.2006, 14:17

Ваши права

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