Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: [1] 2   Aşağı git
Yazdır
Gönderen Konu: Donanım Emüle Etme?  (Okunma Sayısı 8788 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
freeman
Ziyaretçi
« : Haziran 17, 2020, 13:22:30 ÖS »

Başlıkta da belirttiğim gibi donanımları, güncel bilgisayarlarda, emüle etmek istiyorum. Bu konuda sizden yardım istiyorum.

Yardım istediğim konular daha çok şöyle
1. Bu konularla ilgili anahtar kelimeler(arama yapabilmek için)
2. Bu konuda önerebileceğiniz kitaplar ve makaleler, web siteleri, videolar
3. Ve bana yol gösterebilecek daha başka şeyler..

Gerçek donanımların yerini tabi ki  hiçbir şey tutamaz ama gerçek donanımları da bulamıyoruz maalesef. Çoğumuz, bulsak bile kullanmaya kıyamıyoruz belki de öylece bakıyoruz.

Bu gibi sebeplerden dolayı emülatörler önemli bir konu bana göre.
------------------------------------------------------------

Bazı önemli noktalar var:
1. CPU emüle etmek
Yazılımsal olarak işlemci simüle etmek. qemu var bu alanda onu biliyorum. DosBox ve VirtualBox ise işlemci simüle etmiyor. Fiziki cihazdaki işlemciyi geriye dönük uyumluluk sayesinde kullanabiliyor.

2. Diğer donanımları emüle etmek
Mesela C64 için kaset sürücüsü. Ve tabi başka donanımlar.
-------------------------------------------------------------

Emülasyon/simülasyon normalde de ilgi duyduğum alanlar. Bu alanda daha çok şey öğrenmek istiyorum.
Tabi ben de interneti deli gibi araştırıyorum.
Sizlerin de fikirleri, yorumları, önerileri çok iyi olur. Bildiğiniz örnek projeleri falan yazın lütfen.

Fiziki makine bulup uğraşamadığımdan bende kendime böyle bir uğraşı yapmak istiyorum. En azından bir şeyler öğreniriz.

(Tek tek yazmaktansa şimdiden herkese çok teşekkür ederim.)

Saygılarımla.
Logged
Theoden (CYON4D)
Deneyimli
*****
Mesaj Sayısı: 1.758



Üyelik Bilgileri WWW
« Yanıtla #1 : Haziran 17, 2020, 13:45:09 ÖS »

PC hardware emülatörü PCem'i tavsiye ederim.

Site: https://pcem-emulator.co.uk/
Kaynak Kodu: https://bitbucket.org/pcem_emulator/pcem/src/default/


PCem ile NFS 3 Voodoo 2 testi: https://www.youtube.com/watch?v=9NWpZsJcxDk

Sizin de belirttiğiniz gibi hardware seviyesinde bir emülasyon sağlıyor. Yani virtual değil de gerçek hardware olarak ele alınıyor parçalar.

Açık kaynak kodlu olduğu için referans olarak da kullanılabilir.

Kendim uzun zamandır kullanıyorum ve gerçekten çok başarılı bir hardware emülasyonu var. Her oyun ve ugulama da en iyi performansı verdiğini söyleyemem ama genel olarak çok keyifli bir emülatör.

İçinde emüle etmesi çok zor olan Voodoo 2 gibi GPU'lar da var ve gerçekten çok başarılı. Hızlı bir sistem gerektiriyor ancak performansı çoğu zaman gayet yeterli.

Son güncelleme ile eklenen parçalar:
New machines added - Commodore SL386SX-25, ECS 386/32, Goldstar GDC-212M, Hyundai Super-286TR, IBM PS/1 Model 2133 (EMEA 451), Itautec Infoway Multimidia, Samsung SPC-4620P, Leading Edge Model M

New graphics cards added - ATI EGA Wonder 800+, AVGA2, Cirrus Logic GD5428, IBM 1MB SVGA Adapter/A

New sound card added - Aztech Sound Galaxy Pro 16 AB (Washington)

New SCSI card added - IBM SCSI Adapter with Cache

Support FPU emulation on pre-486 machines



Emüle edilen parçaların listesi:


8088

AMI XT clone
Atari PC3
Compaq Portable Plus
DTK Clone XT
(c)Anonymous Generic Turbo XT BIOS
IBM PC
IBM PCjr
IBM XT
Juko XT clone
NCR PC4i
Phoenix XT clone
Schneider Euro PC
Tandy 1000
Tandy 1000HX
Thomson TO16 PC
Toshiba T1000
VTech Laser Turbo XT
Zenith Data SupersPort
Xi8088

8086

Amstrad PC1512
Amstrad PC1640
Amstrad PC2086
Amstrad PC3086
Amstrad PPC512/640
Olivetti M24
Sinclair PC200/Amstrad PC20
Tandy 1000SL/2
Toshiba T1200
VTech Laser XT3

286

AMI 286 clone
Award 286 clone
Bull Micral 45
Commodore PC30-III
Compaq Portable II
Dell System 200
Epson PC AX
Epson PC AX2e
GW-286CT GEAR
IBM AT
IBM PS/1 Model 2011
IBM PS/2 Model 30-286
IBM PS/2 Model 50
IBM XT Model 286
Samsung SPC-4200P
Samsung SPC-4216P
Toshiba T3100e
Tulip AT Compact

386SX

Acermate 386SX/25N
AMI 386SX clone
Amstrad MegaPC
DTK 386SX clone
Epson PC AX3
IBM PS/1 Model 2121
IBM PS/2 Model 55SX
KMX-C-02
Packard Bell Legend 300SX

386DX

AMI 386DX clone
Compaq Deskpro 386
IBM PS/2 Model 70 (type 3)
IBM PS/2 Model 80
MR 386DX clone

486

AMI 486 clone
AMI WinBIOS 486 clone
Award SiS 496/497
Elonex PC-425X
IBM PS/2 Model 70 (type 4)
Packard Bell PB410A

Socket 4/5/7 (Pentium)

ASUS P/I-P55TVP4
ASUS P/I-P55T2P4
Award 430VX PCI
Epox P55-VA
Intel Advanced/EV (Endeavor)
Intel Advanced/ZP (Zappa)
Intel Premiere/PCI (Batman's Revenge)
Packard Bell PB520R (Robin LC)
Packard Bell PB570 (Hillary)

Super Socket 7 (K6-2/III)

FIC VA-503+ (1998)

Graphics cards emulated :
3DFX Voodoo Graphics

3DFX Voodoo 2
ATI Graphics Pro Turbo (Mach64 GX)
ATI Video Xpression (Mach64 VT2)
ATI VGA Edge-16 (ATI-18800)
ATI VGA Charger (ATI-28800)
CGA
Cirrus Logic CL-GD5429
Cirrus Logic CL-GD5430
Cirrus Logic CL-GD5434
Compaq CGA
Diamond Stealth 32 (Tseng ET4000/w32p)
Diamond Stealth 3D 2000 (S3 ViRGE/325)
Hercules
Hercules InColor
IBM EGA
IBM VGA
MDA
MDSI Genius
Number Nine 9FX (S3 Trio64)
OAK OTI-037
OAK OTI-067
Olivetti GO481 (Paradise PVGA1A)
Paradise Bahamas 64 (S3 Vision864)
Phoenix S3 Trio32
Phoenix S3 Trio64
Plantronics ColorPlus
S3 ViRGE/DX
Sigma Color 400
Trident TVGA8900D
Trident TGUI9400CXi
Trident TGUI9440
Trigem Korean VGA (Tseng ET4000AX)
Tseng ET4000AX
Wsye 700

Sound cards emulated :

AdLib
AdLib Gold
Ensoniq AudioPCI
GameBlaster
Gravis UltraSound
Sound Blaster v1.0
Sound Blaster v1.5
Sound Blaster MCV
Sound Blaster v2.0
Sound Blaster Pro v1
Sound Blaster Pro v2
Sound Blaster Pro MCV
Sound Blaster 16
Sound Blaster AWE32
Sound Blaster PCI128
Windows Sound System
« Son Düzenleme: Haziran 17, 2020, 14:48:38 ÖS Gönderen: Theoden (Arethrid) » Logged

wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.727


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #2 : Haziran 17, 2020, 14:36:39 ÖS »

6502 özelinde:

Basit denemeler için tarayıcıda çalışan Easy 6502 by skilddrick çok iyidir. (Denemek isterseniz $0200 to $05ff arasındaki bellek adresleri display simülatöre mapli.)

Visual 6502 işlemcinin çalışmasını görsel olarak izleyebileceğiniz bir simülatör.

6502 Macro Assembler, Simulator, and Debugger 6502 kodunu derleyip debug yapabileceğiniz çok güzel bir araç.

Logged

Blasterreal
Deneyimli
*****
Mesaj Sayısı: 847



Üyelik Bilgileri WWW
« Yanıtla #3 : Haziran 17, 2020, 14:41:34 ÖS »

PC hardware emülatörü PCem'i şiddetle tavsiye ederim.

Site: https://pcem-emulator.co.uk


Amithlon için denediniz mi hiç ?
Logged

Amiga 1200
ACA 1221 28 MHz 64 MB RAM Maprom
Amiga OS 3.9
------------
Mac Mini 1.42 GHZ 1GB RAM ATİ 9200 32MB 160GB HDD
Morphos 3.9
Theoden (CYON4D)
Deneyimli
*****
Mesaj Sayısı: 1.758



Üyelik Bilgileri WWW
« Yanıtla #4 : Haziran 17, 2020, 14:49:51 ÖS »

Amithlon için denediniz mi hiç ?

Şimdilik sadece intel pentium CPU'larını ve Voodoo 2 GPU'larını deneme fırsatım oldu. Windows 98 ile çok güzel sonuçlar aldım.
Logged

Blasterreal
Deneyimli
*****
Mesaj Sayısı: 847



Üyelik Bilgileri WWW
« Yanıtla #5 : Haziran 17, 2020, 15:02:45 ÖS »

Amithlon için denediniz mi hiç ?

Şimdilik sadece intel pentium CPU'larını ve Voodoo 2 GPU'larını deneme fırsatım oldu. Windows 98 ile çok güzel sonuçlar aldım.

Amithlon kesin çalışır diye düşünüyorum, biraz üşengeçlik yapıp araştırmadan sorayım rom dosyaları mevcutmu elinizde upload etme şansıznız varmıdır ?
Logged

Amiga 1200
ACA 1221 28 MHz 64 MB RAM Maprom
Amiga OS 3.9
------------
Mac Mini 1.42 GHZ 1GB RAM ATİ 9200 32MB 160GB HDD
Morphos 3.9
Theoden (CYON4D)
Deneyimli
*****
Mesaj Sayısı: 1.758



Üyelik Bilgileri WWW
« Yanıtla #6 : Haziran 17, 2020, 15:06:07 ÖS »

Amithlon kesin çalışır diye düşünüyorum, biraz üşengeçlik yapıp araştırmadan sorayım rom dosyaları mevcutmu elinizde upload etme şansıznız varmıdır ?

Bütün ROM'ları şu linkten indirmiştim diye hatırlıyorum: https://github.com/BaRRaKudaRain/PCem-ROMs
Eve gidince tekrardan bakayım.
Logged

evreno
Deneyimli
*****
Mesaj Sayısı: 1.233



Üyelik Bilgileri
« Yanıtla #7 : Haziran 17, 2020, 15:13:49 ÖS »

Kaynak arıyorsan bu iş için en iyi kaynaklardan biri mame aslında
içerisinde yüzlerce hardware in emulasyonu var
incelemek için iyi bir başlangıç noktası
Logged
blackturk
Uzman
*****
Mesaj Sayısı: 1.251



Üyelik Bilgileri
« Yanıtla #8 : Haziran 17, 2020, 15:35:43 ÖS »

  vice  emulator açık kaynak kodlu, inceleyebilirsiniz.Bir çok kez     vice kodunu inceledim.tavsiyem olur.keza çoğu , emulatörün açık kaynak kodlu yayınlanıyor.araştırsanız bulabilirsiniz. yok ben ,emulatör nedir nasıl çalışır , bana tüyo verin derseniz. bizim forumda birisi uğraşıyordu. tam hatırlamıyorum ama bir çalışması vardı. belki hatırlayan vardır.
 
     Psx , uae , vice , sega  emulatorleri , msx , zx spectrum ,rahatlıkla source code olarak bulabilirisniz.





Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
witchdoktor
Uzman
*****
Mesaj Sayısı: 6.238



Üyelik Bilgileri
« Yanıtla #9 : Haziran 17, 2020, 15:54:11 ÖS »

MAME ve MESS de açık kaynak kodlu emülatörler...

https://www.wikipedia.org/wiki/Multi_Emulator_Super_System
Logged
freeman
Ziyaretçi
« Yanıtla #10 : Haziran 17, 2020, 16:37:34 ÖS »

Herkese tek tek teşekkür ediyorum. Verdiğiniz tüm bağlantıları inceleyeceğim. Bu konuya yazarım ara ara.
Logged
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.294



Üyelik Bilgileri
« Yanıtla #11 : Haziran 17, 2020, 18:17:19 ÖS »

Ben c gibi bir programlama diliyle yazılmış bir emülatör üzerinde çalışmak istiyorsunuz diye anlıyorum. Emülatörü compile edip ardından üzerinde birşeyler çalıştırmak şeklınde. Belki üzerinde bir iki değişiklik ve tekrar compile, tekrar çalıştır şeklinde.

Emülatörü istediğiniz programlama dilinde yazıyor ya da çalışıyor olabilirsiniz ancak ilgilendiğiniz işlemci için assembly *VE* makine dili kodlama yapabiliyor olmanız gerekiyor. Sonuçta emüle etmek dediğimiz şey o işlemcinin makine dilini okutup yorumlayacak bir program yazmak. Bu ayrıntının farkına varmanız önemli. Bu yüzden de x86 bile başlangiç seviyesi için fazla karmaşık bir işlemci ne yazık ki. IBM uyumlular için fazladan bir bios dosyası da olması lazım, emülatör ilk açılışta onu çalıştıracak. Baştan söylemiş olayım, orta yerinde bırakacaksanız karmaşık işlemcilerden uzak durun, emeğiniz boşa gitmesin, şevkiniz kırılmasın. 6502 gibi basit bir 8bit işlemcinin mümkün olduğunca basit bir emülatörünü github'da aratabilirsiniz mesela.

x86 hakkında uyarımı yaptıktan sonra...
8086tiny: Çok küçük, üzerinde çalışılabilir, bios asm source de içinde. Yanlız uyarmış olayım yazarı bios'unun içine emülatör kodlarının bir kısmını taşımış. Sebebi emülatörü daha da küçük yapmak. Kodları yanlış hatırlamıyorsam macro doluydu. Anlaşılabilirlik için iyi olabilir, compile edip denemek için biraz sıkıntılı. Ben tüm macro'ların karşılıklarını elle yerlerine yazmıştım, bu asla hata yapılmaması gereken bir aşama, ve doğrusu hata yapmış da olabilirim, ama benim versiyon hala alleycat'i çalıştırıyor. Velhasıl kendi açımdan bu emülatör için üzerinde çalışmak için en uygun 8086 emülatörü diyebilirim. Haliyle x86 asm *ve* x86 makine dili bilmeniz gerekiyor. Çok da kafaya takmayın, switch() içini çalışırken "hmm öyle miymiş" şeklinde en dipten anlamaya başlıyorsunuz. Yine de x86 asm ve makine dili araştırmaya hazır olun: https://github.com/adriancable/8086tiny

Başlangıç için qemu dosbox vb *fazlasıyla* zor olabilir. Bunu da dedikten sonra
Yukarıda tavsiye edilmişti, ekleme yapmış olayım: Pcem fork'u, birisi bir noktada pcem'i alıp başka şekilde geliştirmeye başlamış: https://github.com/86Box/86Box

Mame/mess için umutluyum. Eskiden beri çok iyi bir iş çıkardıklarını düşünmüşümdür hep. Ancak hiç öğrenme amaçlı olarak kodlarını kurcalamadım, başa çıkılabilir mi hiç bilmiyorum. Üzerinde çalışmak isterseniz eski en stabil bir versiyon seçin ve o versiyon üzerinde çalışın derim. Amaç emülatör öğrenmek sonuçta, son versiyona katkı değil. 0.37b15'di galiba stabil bir versiyon vardı. O versiyon için archive.org'da rom'lar var. O versiyon üzerinden gidebilirsiniz. Compile'de sorun olursa sırf onun üzerinde çalışmak için 2000 yılı civarı bir linux kurulumu yapın, onun üzerinde compile edersiniz. Slackware 8.1 (gcc-2.95.3 compiler) tavsiye edebilirim. gcc-3 serisinde sorunlar yaşamıştım, aklınızda olsun.

Ve son olarak Darek ve onun sırları, "no execute", okumaya sayfanın en altından başlayın, biraz ileri düzeydir uyarmış olayım. En üstteki son 3 yazı emülatör hakkında değil, kendisinin kişisel görüşlerine asla katılmıyorum, tasvip etmiyorum. Ama emülatör konusunda yazdıkları önemli, bilinmesi gereken şeyler bence.
http://emulators.com/nx_toc.htm

Kolay gelsin
« Son Düzenleme: Haziran 17, 2020, 18:19:45 ÖS Gönderen: Levent (Lvnt) » Logged

Use the brute force, Luke
freeman
Ziyaretçi
« Yanıtla #12 : Haziran 17, 2020, 18:50:39 ÖS »

@Levent;
Hocam C dili ve assembly biliyorum. Tabi bilmek demeyelim de işimi görebiliyorum. Ama bu yine de her istediğimi yazacağım anlamına gelmez. Uçsuz bucaksız bir dünya...

Makro dediğinize göre sanırım MASM assembler kullandınız. Elle yazmanıza gerek yoktu makroları. Kodu derlemeden sadece önişlemden geçirip çıktısını veren bir komutu olması lazımdı diye hatırlıyorum. Yani makroları falan o gerekli yerlere yerleştirip sonucu veriyor.

Zaten aktif olarak Linux kullanıcısıyım. Bilgisayarımda Windows yüklü bile değil.
Slackware 'e gerek yok, Ubuntu üzerinde de her türlü sorunu çözebilirim(sanırım).

x86 konusunda da haklısınız çok karmaşık günümüz işlemcileri. 6502, 8086 gibi işlemciler için tarayıcı tabanlı emülatörler var. Onları kurcalıyorum. Dökümanlarını okumaya çalışıyorum da tabi çok zaman alıyor.

Şu an en çok ihityacım olan şey; 8086 emülatörü ve bu emülatörde C kodlarını assembly karşılıklkarına çevirmek(gcc -S komutu gibi).

Yorumunuz için teşekkür ederim. Bu konuyu favorilere ekledim. Güzel bilgiler, tavsiyeler geldi.
Logged
Blasterreal
Deneyimli
*****
Mesaj Sayısı: 847



Üyelik Bilgileri WWW
« Yanıtla #13 : Haziran 17, 2020, 20:23:31 ÖS »

Arkadaşlar konu ile alakasız ancak amithlon çalıştımayı başardım, pcem ile.

Ancak çok yavaş çalışıyor bildiğimiz pentium mmx233 mhz hızında
Umarım pentium 4 cpu ilerleyen dönemde eklenir oldukça hızlanacaktır.

Qemu ile ve proxmox ile'de amithlon'u çalıştırmıştım

@Theoden (Arethrid) uygulama bilgisi için teşekkürler, bios dosyalarını önceki verdiğin linketen indirdim.


* 1.PNG (36.1 KB, 802x658 - Görüntüleme: 336 kez.)

* 2.PNG (110.2 KB, 801x657 - Görüntüleme: 336 kez.)

* 3.PNG (84.23 KB, 801x660 - Görüntüleme: 289 kez.)

* 4.PNG (149.55 KB, 803x658 - Görüntüleme: 319 kez.)

* 5.PNG (818.45 KB, 805x663 - Görüntüleme: 377 kez.)
Logged

Amiga 1200
ACA 1221 28 MHz 64 MB RAM Maprom
Amiga OS 3.9
------------
Mac Mini 1.42 GHZ 1GB RAM ATİ 9200 32MB 160GB HDD
Morphos 3.9
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.294



Üyelik Bilgileri
« Yanıtla #14 : Haziran 17, 2020, 20:48:40 ÖS »

@Levent;
Hocam C dili ve assembly biliyorum. Tabi bilmek demeyelim de işimi görebiliyorum. Ama bu yine de her istediğimi yazacağım anlamına gelmez. Uçsuz bucaksız bir dünya...

Makro dediğinize göre sanırım MASM assembler kullandınız. Elle yazmanıza gerek yoktu makroları. Kodu derlemeden sadece önişlemden geçirip çıktısını veren bir komutu olması lazımdı diye hatırlıyorum. Yani makroları falan o gerekli yerlere yerleştirip sonucu veriyor.

Zaten aktif olarak Linux kullanıcısıyım. Bilgisayarımda Windows yüklü bile değil.
Slackware 'e gerek yok, Ubuntu üzerinde de her türlü sorunu çözebilirim(sanırım).

x86 konusunda da haklısınız çok karmaşık günümüz işlemcileri. 6502, 8086 gibi işlemciler için tarayıcı tabanlı emülatörler var. Onları kurcalıyorum. Dökümanlarını okumaya çalışıyorum da tabi çok zaman alıyor.

Şu an en çok ihityacım olan şey; 8086 emülatörü ve bu emülatörde C kodlarını assembly karşılıklkarına çevirmek(gcc -S komutu gibi).

Yorumunuz için teşekkür ederim. Bu konuyu favorilere ekledim. Güzel bilgiler, tavsiyeler geldi.
8086tiny'in orjinal yazarı ben değilim. Yazar emulatörü c ile yazmış ama bir sürü makro kullanmış. #define M xyz şeklinde
Ben emülatörün üzerinde çalışırken bu makro yani #define'lerin işimi zorlaştırdığını düşündüğüm için bunlarsız çalışır hale getirdim, kişisel bir tercih, bu şekilde ben daha rahat çalıştım. Böyle birşey yaparsanız zor oldu onu anlatmaya çalıştım. Siz bildiğiniz gibi yaparsınız.
Logged

Use the brute force, Luke
Sayfa: [1] 2   Yukarı git
Yazdır
Gitmek istediğiniz yer: