Szeretném debian alatt futtatni a HoLaLi 2.0 emulátort. (A link a http://gaia.atilia.eu/downloads/ oldalon található. )
SDL lib kell hozzá - legyen az bármi is - de nálam a libsdl2 csomag telepítve van.
A letöltött gz fájlt kicsomagolom, és futtatási jogot adok neki, majd elindítanám a ".holali" paranccsal, de azt mondja:
cannot execute: required file not found
Megpróbáltam a strace segítségével megtalálni, mit nem talál.
A "strace ./holali" és a "strace -e open ./holali" kimenete is a következő:
execve("./holali", ["./holali"], 0x7ffd0b85c9f0 /* 58 vars */) = -1 ENOENT (Nincs ilyen fájl vagy könyvtár)
strace: exec: Nincs ilyen fájl vagy könyvtár
+++ exited with 1 +++
Tudnátok segíteni abban, hogy mit nem talál? Hogyan indíthatnám el a fenti emulátort?
Feladtam.
De mivel a cél az Aircomp 16 emulátor futtatása volt linux alól, a MAME végül megoldotta a problémámat.
Megoldás:
Az "ldd holali" parancs megmutatja a hiányzó csomagokat, majd
dpkg --add-architecture i386
apt-get update
apt-get libsdl1.2debian:i386 libncurses5:i386 libaudio2:i386
Sajnos az emulátor ugyan már elindul, de "Invalid pointer" hibaüzenettel kiszáll.
Alternatíva:
A cél az Aircomp 16 emulátor futtatása lett volna linux alól, így egy alternatíva a MAME emulátor. Sajnos ez a grafikát nem emulálja.
A windows alapú emulátorok wine alól futtava összeomlanak az Aircomp 16 demo grafikus programjával.
Így egyelőre nem ismerek alternatívát. Jó lenne hozzáférni a holali forrásához, de valami miatt ez nem publikus ...
- 1116 megtekintés
Hozzászólások
Nekem elindult Fedorán, de részben régi vackok kellenek hozzá:
sdl12-compat.i686
nas-libs.i686
ncurses-compat-libs.i686
slang.i686
Ezeket kellett feltennem, hogy elinduljon. Hibaüzenetből látszott, hogy mit hiányol.
Szerk.: ja, és nekem egy 32 bites nyomtatódriver miatt fenn van a 32 bites glibc is, és biztos, hogy 32 bitre van fordítva, mert a fenti csomagokból is mind a 32 biteset tette fel a Fedora hozzá.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Virtuális gépen telepítettem egy Fedore 38-at, és az általad megjelölt csomagokat.
Ezek után megpróbáltam elindítani a holali -t.
Az eredmény:
Szegmentálási hiba (core készült)
:(
- A hozzászóláshoz be kell jelentkezni
Szvsz reckírozz meg egy emailt a fejlesztőnek, hátha feltenné githubra.
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy van csomag, ami fenn volt a gépemen már, s kell neki. Például a glibc.i686 ilyen.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Nezd meg ld-vel hogy milyen *.so-k kellenek neki: `ld ./holali`. Illetve ez egy nagyon 32 bites ELF, szoval az osszes fuggosege (*.so) is 32 bites kell legyen (ld. amit locsemege is irt fentebb). Ez mondjuk kiscit ellentmond az `strace` kimenetenek, mert ott meg 64 bites szimbolumokra hivatkozik (lasd: 0x7ffd0b85c9f0). Szoval vsz trace-elni is egy 32 bites `strace`-szel kellene.
Szerk: az ilyen nagyon 32 bites programok eseten 64 bites rendszer alol futtatva ket dolog szokott tortenni: vagy eleg neki a 32bites libc, es azt feltelepitve (azaz a libc6-i386 nevu, de amd64 architekturaju csomagot feltelepiteve) menni fog. Vagy kell meg neki mas is, es akkor multiarch-ot engedelyezve fel tudod telepiteni a szukseges csomagokat. Pl ha ennek a ./holali-nak kell a libwhatever3.so 32 bites valtozata, akkor az `apt-get install libwhatever3:i386` varazslassal fel tudod ezt is tenni.
- A hozzászóláshoz be kell jelentkezni
Akkor szokott ilyet füllenteni, ha az interpretert nem találja, esetünkben a /lib/ld-linux.so.2
-t.
- A hozzászóláshoz be kell jelentkezni
A /lib/ld-linux.so.2 fájl - bár symlink - de létezik, elérhető.
- A hozzászóláshoz be kell jelentkezni
$ file holali
holali: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.0, not stripped
ez 32bites progi. tedd fel a szukseges debian csomagokat hogy meglegyenek a libek, es el fog indulni:
$ ldd holali
linux-gate.so.1 => (0xf76e4000)
libSDL-1.2.so.0 => not found
libdl.so.2 => /lib32/libdl.so.2 (0xf76d1000)
libaudio.so.2 => not found
libXt.so.6 => not found
libXext.so.6 => not found
libncurses.so.5 => not found
libslang.so.2 => not found
libX11.so.6 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76b3000)
libstdc++.so.6 => not found
libm.so.6 => /lib32/libm.so.6 (0xf765d000)
libgcc_s.so.1 => not found
libc.so.6 => /lib32/libc.so.6 (0xf74a9000)
/lib/ld-linux.so.2 (0xf76e5000)
olvasnivalo: https://wiki.debian.org/Multiarch
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez érdemi segítség!
A "not found" arra utal a sor végén, hogy azok hiányoznak?
Nálam például a libsdl 1.2 fel van telepítve, mégis "not found" jelenik meg mellette. Az ncurses 5 csomagot feltelepítettem, de továbbra is "not found".
4 csomagot jelez hiányzónak:
libSDL-1.2.so.0 => not found
libaudio.so.2 => not found
libXt.so.6 => not found
libncurses.so.5 => not found
Elvileg mind a 4 telepítve van.
- A hozzászóláshoz be kell jelentkezni
Ezek shared objectek, nem csomagok. A csomagok tartalmát a `dpkg -L pkgname` írja ki.
Épp itt a hup van egy ilyen csomagkezelési quickstart:
https://wiki.hup.hu/index.php/AIX_FAQ.html#Gyors_installp_.2F_lslpp_vs_…
- A hozzászóláshoz be kell jelentkezni
Vagyis telepítve vannak, csak el kéne érnem, hogy 32 bit alatt is használhatók legyenek? Hogyan?
- A hozzászóláshoz be kell jelentkezni
a https://packages.ubuntu.com/ es https://packages.debian.org/ oldalakon van csomag tartalmaban kereso: ha csak a fajlnevet (vagy egy reszet tudod), akkor kikopi melyik csomag tartalmazza azt a fajlt. a dpkg-L csak a mar feltelepitett csomagokra jo.
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Nálam például a libsdl 1.2 fel van telepítve, mégis "not found" jelenik meg mellette.
A 32 bites? Továbbá írtam neked, csak nem figyeltél: sdl12-compat.i686
Tudom, ez fedorás csomagnév, de tegyük fel, jelent valamit a névben az a compat. Azt, hogy régi, kompatibilitást biztosító réteg.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
+1. Mondjuk a debian csomagnekvekben nincs benne a compat, de van helyette :i386 suffix. De a lenyeg ugyanez, jaja :)
- A hozzászóláshoz be kell jelentkezni
Miért adod fel? Működik, mondom, Fedorán simán életre tudtam kelteni. Egyedül a billentyűzettel volt bajom, a backspace nem azt csinálta, amit vártam tőle, illetve nem találtam a '+' és '*' jeleket. Nagyjából a PRINT 5+6 és PRINT 5*6 lett volna az, amivel megpróbálkoztam volna. Ja, és nem tudom, ebben a BASIC-ben mi a képernyőtörlés, mert a CLS és CLEAR egyikét sem ismerte fel.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek a támogatást! Sikerült megoldanom.
A lépések:
dpkg --add-architecture i386
apt update
majd a dpkg -l | grep ... kombóval kikerestem a csomagok pontos nevét, és
apt-get install libncurses5:i386 és társaivel feltelepültek a hiányzó csomagok.
Az ldd szerint minden megvan!
El is indul ... csak épp "invalid pointer" hibaüzenettel kiszáll ... De ezen nem hiszem, hogy lehetne segíteni ... :(
- A hozzászóláshoz be kell jelentkezni
Hát, ha a derék szerző fetenné a source-t a githubra... egy email-t megérne a próba.
Mondjuk a gdb-t így is meg lehet próbálni, kiderülne, hogy melyik komponens (főprogram vagy külső komponens) pusztul meg
- A hozzászóláshoz be kell jelentkezni
Thread 1 "holali" received signal SIGSEGV, Segmentation fault.
0x0804c856 in Beeper::calcSamples(int*, unsigned int) ()
- A hozzászóláshoz be kell jelentkezni
De itt már írtál valamit BASIC-ben, s akkor, vagy arra esélyed sem volt, hogy beírj egy BASIC parancsot?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Nem, nem jutottam el addig. Az emulátor elindul, felvillan az ablak. Kiírja még, hogy Homelab 4, de ez már csak dbg-vel indítva látszik, mert utána rögtön a hiba, és leáll. A BASIC még el sem indul.
- A hozzászóláshoz be kell jelentkezni
Valamilyen kompatibilitási gond lesz, mert a hozzászólásomban írt fedorás csomagokkal stabilan működött. Engem csak az zavart, hogy bizonyos karaktereket '*', '+' nem tudtam bevinni, illetve a backspace sem működött visszatörlésként.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Lehet a ROM hiányzik neki, ezt jogi okokból nem mellékelik az emultárokhoz.
Amúgy ha Basic kell, akkor inkább FreeBasic, Gambas, QB64-et ajánlom, azok FOSS Basic interpreter/compiler alternatívák, esetleg a modern nyelvek közül a Lua hasonlít legjobban szintaxisban, egyszerűségben. Esetleg, amire a topiknyitóban is írnak, a MAME-ben van ilyen Aricomp 16 támogatás, grafikát nem támogat, de Basic-hez elég lehet.
Egyébként meg ez a HoLaLi szépen mintázza, hogy mi a baj a zárt forráskódú szoftverrel, főleg egy olyan gyorsan változó unixlike ökoszisztémában, mint a Linux. Van hozzá egyetlen régi bináris, 32 bites, elavult, kielégíthetetlen függőségekkel, gondolom Wine-ban fut a windowsos verzió, de akkor az már emulátor az emulátorban. Ezért kell a nyílt forráskód, meg hozzá a free licenc, hogy le lehessen fordítani, modern függőségekkel, 64 bitre is, és nem kell szenvedni 32 bites függőségekkel, meg összeomlásokkal. A forráskódban azt is le tudják értelmesen írni, hogy milyen ROM kell hozzá, mi a mérete, checksumja, stb..
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Lehet a ROM hiányzik neki
Nem figyelsz eléggé. Nálam Fedora 38-on elindult, miután feltelepítettem egy rakás*-compat csomagot, és mindenből 32 biteset.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Elhiszem neked, akkor meg nem tudom a kollégánál miért nem fut. Kipróbálnám én is, de nem szemetelem be a 64 bites Arch rendszerem mindenféle kísérletezésként felrakott 32 bites és compat csomaggal, amiről aztán meg később nem fogom tudni mihez kellett, kell-e még, stb.. Kb. 2 évente ezért is húzom újra az Arch rendszerem, amit nem kell, mert örökké frissülő rolling, tökéletesen működik, meg minden, de kb. ennyi idő után annyi felesleges csomag begyűlik, hogy inkább tiszta lappal kezdek. A btrfs-snapshot ilyenkor segítség lenne, de az is extra erőforrást kérne, így egyelőre maradok ext4-en.
Már most is van fent kb. extra 100-150 csomag, amit ilyen-olyan régi játékhoz, raw/nef/mime képmegjelenítéssel kísérletezés, képeffektezés, XeTeX-es háttérszínezéshez, stb. tettem fel, hogy már most kezd sok lenni, pedig még csak 1 éves rendszer.
Mindenesetre nem értem az illető emulátor fejlesztőjét. Ez egy ingyenes hobbiprojektnek tűnik, a forráskódját akkor miért nem publikálta. Ez neki is érdeke lenne, mert az ilyen egyes rendszereken előjövő crash bugokat segítene neki a közösség befoltozni, meg más rendszerekre portolni, nagyobb disztrók tárolójába betenni, stb.. Egyszerűen nem érdemes ilyen kódokon rajta ülni, ki kell tenni GPL vagy MIT/BSD licenccel egy git tárolóba.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Nem a BASIC a cél. Nem is BASIC szerű nyelv.
A Neumann társaság szeptember 1-i határidővel játékprogram író versenyt hirdetett Aircomp 16 számítógépre. Ezen szeretnék indulni, de nincs Aircomp 16 gépem. :(
- A hozzászóláshoz be kell jelentkezni
Akkor szerintem használd a windowsos verziót, az tuti megy Wine-ban. Persze, emulátor az emulátorban, de ennyi overhead meg se kottyan a mai gépeknek. Persze én továbbra sem értem, hogy a magyar fejlesztő minek ül rajta az emulátor kódján. Nem pénzért adja úgy se, nincs értelme, hogy ezzel meg használhatatlanná teszi másoknak modern rendszeren, és mindenkinek extra emulátorozni kell hozzá, vagy windowsoszni, hogy menjen.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
A windows emulátor sem tudja sajnos a grafikus módot generálni, de lehet, hogy az lesz. A MAME emulátor is tud annyit majdnem, mint a windows-os. Bár épp ma kaptam hírt egy béta verziós emulátorról, ami már WAV betöltésre is képes, és a grafikát is emulálja. Remélem, vagy lesz forráskódja, vagy futni fog wine alatt. Ez majd kiderül, ha tényleg hozzájutok.
[OFF]
Persze azt sem értem, hogy egy ilyen projekt miért nem valami publikus github-on készül
[/OFF]
- A hozzászóláshoz be kell jelentkezni
Egy kincsek&kardhalak szerű adventure esetleg?
- A hozzászóláshoz be kell jelentkezni
Hát lehet ...
Igaziból szöveges kalandjátékra nem is gondoltam, pedig elég egyszerű, és szinte biztos, hogy nincs még rá.
Köszi a tippet.
- A hozzászóláshoz be kell jelentkezni
"Kiírja még, hogy Homelab 4"
akkor ott valami csalas van, nekem homelab3 -as van a muzeumomban, az aircomp 16 emlekeim szerint ez elotti konstrukcio.
HUP te Zsiga !
- A hozzászóláshoz be kell jelentkezni
Általában nincs külön Aircomp 16 emulátor. A Homelab emulátorok szokták tudni a 2,3,4-es verziót. Némelyik az 5-ös változatot, mint Breilab.
Azóta egy virtuális gépre feltettem egy Debian 6 rendszert, és azon el is indult gond nélkül a Holali. De nem lehetett átváltani Homelab 2 üzemmódba, így végül az egész szopás teljesen felesleges volt.
Mint ahogy a windows-os homelab emulátor írójának blogjában is rátaláltam arra a megjegyzésre, hogy aluldokumentáltság miatt a grafikus képesség nem került implementálásra.
Vagyis jelenleg nemlétezik olyan Aircomp 16 emulátor, ami teljesértékű lenne, azaz tudná a grafikus képességet is emulálni.
- A hozzászóláshoz be kell jelentkezni
A négyesben talán nem is volt grafikus mód, ha jól emlékszem. Volt egy 6116-os SRAM (2KiB, mondjuk 32x64 karakter) mint videómemória, meg egy karakter-generátor ROM (2716, 2KiB, 256 db 8x8 as karakter).
Szerk: itt lehet látni: http://homelab.8bit.hu/images/homelab4cd.jpg (nem éppen kontrasztos).
- A hozzászóláshoz be kell jelentkezni
Való igaz, már a III-ban sem volt ilyen jó grafika. A fejlesztők inkább üzleti célra fejlesztették, nem játéknak. Épp ezért érdekes, hogy egy régebbi verziója a gépnek többet tudott, mint az újabb.
Ráadásul - a kapcsolásába még nem látok bele, de - a ZX81-et is meghaladó grafikai megoldása lehet. Ugyanis mindkét gépnél a Z80 generálja a képet, de míg ZX81 esetén csak a slow/fast üzemmód van, addig Aircomp 16 esetén meg lehet mondani, hogy hány képernyősort generáljon a CPU. Így megteheted, hogy csak 3 karaktersornyi képernyőt hagysz meg, azaz még tudsz kommunikálni a felhasználóval, de már sokkal gyorsabban fut a programod.
Ráadásul a grafikus üzemmódja is hasonló. Nem ki/bekapcsolás van, hanem megmondod, hogy hány sornyi grafikát akarsz készíteni, ennyi memóriát levág a BASIC szabad terület végéről, és abban tudsz rajzolni.
Mivel kipróbálni még nem tudtam, nem tudom, hogy a grafika és a szöveg keverhető-e, és azt sem igazán látom át, hogy milyen egyszerű áramkörök képesek keverten generálni a képet. A Primo esetén viszonylag egyszerűen előállítható a kép a memóriából, mivel annak csak grafikus üzemmódja van. Egy csak karakteres üzemmódú gép is - gondolom - egyszerűen tud videojelet generálni a karakterrom segítségével. De, hogy ez sorokra keverten hogyan csinálják az Aircomp esetén, az érdekelne.
- A hozzászóláshoz be kell jelentkezni
Találtam valahol egy régi Ubuntut (valami Xanadu vagy ilyesmi), ez lett:
MustLockSurface(8E3F670): 0. . . . . . . . . . . . . . . . . . . .
*** Error in `./holali': free(): corrupted unsorted chunks: 0x08e312f0 ***S ; S ; S ; S ; S ; S ; S ; S
; . : . : . : . : . : . : . : . : . : . : . : . : . : . : . : . : . : . :Segmentation fault : . : . :
Szerk: felerőltettem egy Centos7-re is, ott azért más a dolog:
Thread 1 "holali" received signal SIGSEGV, Segmentation fault.
0x0804ff29 in ScreenSDL::ScreenSDL(int, int, int, unsigned char*) ()
(gdb) bt
#0 0x0804ff29 in ScreenSDL::ScreenSDL(int, int, int, unsigned char*) ()
#1 0x0804a640 in main ()
- A hozzászóláshoz be kell jelentkezni
Mondjuk a Windows-os verzió működik... Azt hiszem.
http://gaia.atilia.eu/download/Homelab1.3.zip
- A hozzászóláshoz be kell jelentkezni
A linuxos változat is működik Fedora 38-on.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Láttam, de nem tudtam reprodukálni (sacc/kb inicializálatlan változók és hibaellenőrzések hiánya lehet a gond, de source nélkül nincs mit tenni).
- A hozzászóláshoz be kell jelentkezni
Azt mondod, mázlim volt, és épp úgy volt nálam a memóriában a RAM szemét, hogy elindult?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ez a tippem, de tudni nem tudom. Az egyik gépen ráküldtem valgrindet, aszerint mintha a hangkártya hiánya lenne a gondja.
- A hozzászóláshoz be kell jelentkezni
Akkor lehet, hogy meg OSS? es akkor valami alsa-oss-compat szeru csomag is kene?
- A hozzászóláshoz be kell jelentkezni
Működik MX linuxon is (Debian 11.2).
- A hozzászóláshoz be kell jelentkezni
A windowsos verzió úgy működik, hogy az alapgép elindul. De ha bekapcsolom a grafikát, és lefuttatom az Aircom 16 grafikai demo programját, akkor összeomlik és újraindul. Tehát grafikára nem használható az emulátor. Mint ahogy ezt a funkciót a MAME emulátora sem emulálja.
Legutolsó reményem, hogyha egy virtuális gépre felteszek egy XP-t, és azon futtatom (in memorim hajbi), akkor talán jól fog futni a windowsos emulátor. Nem sok esélye van, de jobb ötletem most nincs.
Apropó az XP már ingyenes? Honnan tudok letölteni egyet egy ilyen teszthez?
- A hozzászóláshoz be kell jelentkezni
Nem ismerem ezt a programot, de az SDL-t mar hasznaltam (meg programot is irtam vele, ill. valami forditasi hibat is jelentettem es kerult be patchem).
Az SDL-nek az a lenyege, hogy hardware es software architekturafuggetlen modon tudod vele kezelni a billentyut, egeret, hangot es effeleket. Nem kell tudnod milyen OS-en vagy, es hogy most milyen hangrendszer van alattad, megoldja. Meg sajat kevero is van benne, ha jol emlekszem egy hatterzenet es sok effektet tud egyszerre jatszani, akkor is, ha a hasznalt hangrendszer nem tamogatna egyebkent.
Az en tippem is az, hogy ami hangrendszert hasznalsz, az az akkori SDL-ben meg nem volt tamogatva. Pl. pulseaudio 15 eve meg nem volt, locsemege meg pipewire-t hasznal, lehet annak van oss/alsa kompatibilis retege, a pulse-odban meg nincs bekapcsolva, vagy valami maskepp mukodik. Valahol erre probalkoznek. Alternativ megoldas egy olyan VM-ben futtatni, ami elbirja, gondolom a homelab-hoz nem kell annyi eroforras egyebkent sem.
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Alsa interface a pulseaudioban is van, ami többlet a pipewire-ben, az a jack interface.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Off: Mondjuk érdekes lenne tudni, mi az X probléma.
On: http://pcvilag.muskatli.hu/irodalom/bit/1984/19845/19845.html
- A hozzászóláshoz be kell jelentkezni