Posts filed under 'softat'
Noin viikko sitten kuulimme Manun kanssa mielenkiintoisen vinkin suomalaisten tietokonepelien varhaishistoriasta: Telmac TMC-1800:lle oli kuulemma olemassa kotimainen shakkipeli. Pienen googletuksen avulla löytyikin alkuperäinen ohjelmoija, Raimo Suonio, joka kertoi pelin syntyhistoriasta paljon lisätietoa. Chesmac on peräisin niinkin kaukaa kuin vuodelta 1979, joten suomalaisen pelinkehityksen alku siirtyi juuri viisi vuotta taaksepäin. Keräilen tähän listaan löydöksen saamia mediamainintoja:
Kiinnostusta aiheeseen tuntuu siis riittävän. Tällä hetkellä on talteen saatu pelin ohjekirja ja Topdatan hinnasto, mutta kasetista tai itse peliruudusta ei ole vielä edes kuvaa. Pitkän linjan tavoitteena on arkistoida peli lähdekoodeineen toimivassa muodossa ja saada sitä myös ajettua oikealla koneella, jos vain suinkin mahdollista.
July 28th, 2014
My first attempt at fansubs: English subtitles for Pekka ja Pätkä ketjukolarissa (1957) – Pekka and Pätkä in a Pileup. Here’s the file, use as you wish: http://www.kameli.net/~marq/pekka_and_patka_in_a_pileup.srt.
Ja päälle hieman reflektiota suomeksi. Tämä ensimmäinen yritelmä paljasti jo yhtä sun toista tekstitysten tekemisestä. Reilun tunnin leffan työstämiseen meni suunnilleen kaksi työpäivää, mutta vauhti epäilemättä paranee harjoittelun myötä. Normitekstiä käänsi ripeästi, mutta elokuvan armeijafarssiosuus vaati sulkeiskäskyjen selvittelyä englanniksi, ja kaikenlainen verbaaliakrobatia edellytti sanontojen googletusta. Lopputulos on asteen yksinkertaistettu, tyylillisesti hyppivä ja synkan osalta hätäinen, mikä kertoo laatutekstityksen tekemisen haastavuudesta. Osa sanaleikeistä jäi kokonaan kääntymättä:
- “Uppiniskanen, vai?”, johon alokas vastaa: “Ei, kun Mikko Niskanen, herra vääpeli!”
- Alikersantti haukkuu alokkaita nimellä Sven Dufva – käännöksessäni Private Snafu.
- Aavikolla kirmaavien hempukoiden kadotessa Pekka toteaa (koko perheen elokuvalle aavistuksen härskisti): “Herra Serihvi, se ol kangistus.”
- Puupää olisi luontevasti Bonehead ja Pätkä vaikkapa Shorty, mutta se olisi edellyttänyt nimien kokonaisvaltaista vaihtamista, mihin en halunnut lähteä.
- Sekalaiset kotimaiset ilmaisut, kuten “Sanasta miestä, sarvesta härkää”, “Nyt se myrkyn lykkäs” ja “Ei vahinko tule kello kaulassa”.
Kaikenlaiset reunaehdot, kuten rivinpituus, piti selvitellä omin avuin. Nähtävästi 35 merkkiä on suunnilleen se määrä, jonka voi luottaa riville mahtuvan – riippuen tietysti sanojen sisältämien kirjainten leveydestä. Rivitystä ei voi jättää toisto-ohjelman varaan, sillä ainakin VLC onnistui katkomaan rivit paikoitellen varsin köserösti. Pitkien virkkeiden jakaminen yhteen tai useampaan pätkään (sic) ei tullut selkärangasta, joten osa teksteistä vilahtaa ruudulla turhankin hätäisesti. Toisaalta osa vitseistä perustuu yllättäviin heittoihin ja olisi vesittynyt koko virke kerralla näyttämällä.
Käytin tekstitykseen avointa Gnome Subtitles -ohjelmaa, joka tuntui pikaisella kokeilulla parhaalta avoimista Linuxilla toimivista vaihtoehdoista. Suunnilleen puolet ajasta suttaantui pelkkään synkronointiin, joka tuntui olevan hyvin hankalaa kaikilla softilla. Pienilläkin parannuksilla ohjelmien käyttöliittymät saisi kyllä tukemaan jouhevaa työnkulkua, mutta nyt on taidettu mennä ominaisuudet edellä.

Elokuvan yleisen kökköisyyden vastapainoksi täytyy sanoa, että Vieno Kekkosen esittämä kohtalokas saluunan laulajatar pärjää kyllä ajan jenkkitähtösille mainiosti 🙂
May 9th, 2014
Virittelin jo aiemmin kasaan Joyduino-projektin, jolla sai emuloitua Atari-joystickiä PC:n näppäimistöltä. Projektissa oli kuitenkin kaksi ongelmaa: kolvaamista vaativa tarpeettoman mutkikas piirikortti ja hieman epämääräinen sarjaportin käsittely omalla ohjelmalla. Kuulin vasta myöhemmin, että Arduinon pinnit saa suljettua laittamalla ne input-moodiin, mikä teki kytkinpiirit tarpeettomiksi. Eli kun virtuaalisen joikkarin kytkintä ei paineta, pinni on sisääntulona ja kun painetaan, niin pinni vaihdetaan ulostuloksi ja laitetaan nollaan. Tältä pohjalta riitti tehdä triviaali johto D9-naarasliittimestä piikkirimaan, joka menee Arduinon headerin pinneihin 8..GND (ylös, nappi, alas, vasen, nappi 2, oikea, maa). Tulitusnappi 2 tässä MSX:n mukainen – muissa laitteissa saattaa olla eri piikissä. Oman C-ohjelman sijasta tein isäntäohjelman tällä kertaa Processingilla, niin se toimii saman tien useilla alustoilla. Arduinoon pitää ensin ladata Firmata, jotta Processing toimii sen kanssa. Firmata ei ole järin nopea, sillä aikaa haaskaantuu yksittäisten pinnien erikseen kääntelyyn ja protokollaan, mutta tässä tapauksessa nopeus oli ihan hyväksyttävä. Omaa, luultavasti pahempaa lägiään tulee Processingin päivitystaajuudesta, mutta sekään ei ollut vielä liikaa. Esimerkki täällä:
http://www.kameli.net/~marq/kode/joikkari.pde
Firmatan lisäksi tarvii asentaa Arduino-tuki Processingille, joten mikään avaimet käteen -ratkaisu tästäkään ei tullut. MSX:n kakkosnapin vahingossa sohimisesta voi seurata ongelmia joillakin koneilla – pinniä saatetaan käyttää muihin tarkoituksiin, joten joikkaportin pinniin 7 ei yleensä kannata kytkeä mitään. Toinen detsku on, että pelikone kannattaa käynnistää tai johto kytkeä vasta ohjelman herättyä, sillä muuten porttiin tulee ei-toivottuja painalluksia. Näppikseltä pelaaminen on jo kohtuullisen hyödyllistä, jos ehjää Atari-joystickiä ei satu olemaan, mutta vielä hyödyllisempi tämä viritelmä olisi vaikkapa joypadin kanssa. Katsotaan, iskeekö inspiraatio sellaisenkin tukemiseen jossain vaiheessa.
edit: Nappi 2 ja vasen menevät tosiaan ristiin piuhassa, koska huomasin vasta jälkikäteen, että MSX:ssä kakkosnappi onkin eri pinnissä. Helppo muuttaa koodista (ja muutenkin järjestys on aika satunnainen).
edit2: Äh, menköön. Tässä se joypad-tuki. Nappien ja kontrollerin nimeä joutunee vaihtamaan, mutta muuten toiminee suorilta: http://www.kameli.net/~marq/kode/joikkari2.pde
December 9th, 2013
Olen yllättynyt todella positiivisesti siitä, että reilussa viikossa tekemäni PETSCII-editori on löytänyt kohdeyleisönsä – ilmeisesti saatavilla olevat työkalut tosiaan olivat riittämättömiä, kuten parilta graafikolta kuulin. Lahjakkaat tyypit ovat tehneet hienoja kuvia ahkerasti, mikä pitää myös koodarin motivaatiota toistaiseksi yllä. Joitakin poimintoja kootusti tässä; kuvia on varmaan vielä enemmänkin, mutta en ole löytänyt kaikkia ja jotkin on pakattu/ripattu sellaiseen muotoon, ettei niitä tiedostosta enää tunnista.
Mitään erityisen tärkeitä ominaisuuksia ei edikasta enää puutu, mutta olemassaolevia voisi parannella sieltä täältä sekä bugeja korjailla. Ehkä merkittävin puutos on animaatioiden saralla: olisi kätevää saada tehtyä monia eri frameja, joiden välillä voisi vaihdella. Sekin on kehitteillä, mutta vaatii hiukan lisää keskittymistä. Plus/4-tuki olisi hauska kuriositeetti ja luultavasti helppo toteuttaa, kunhan vielä keksii, mihin sen massiivisen värivalitsimen sijoittelee ja miten tekstimoodi on teknisesti toteutettu.
Edit: Plus/4 on nyt tuettu ihan täysipainoisesti.
October 9th, 2013
Perjantai-illan hätäinen pikku Processing-projekti rupesi paisumaan ja alkaa olla jo hiljalleen ihan käyttökelpoinen. Tarkoituksena oli tehdä Zoo 2013:n PETSCII-kilpailua varten minimalistinen editori, jolla saisi lätkittyä ruudulle merkkejä väreineen ja sitten näytettyä niitä oikealla kuusnelosella. Mitään kunnollista ei tuntunut löytyvän valmiina Linuxille tai Mäkille, joten tehdään sitten itse. “Feature creep” iski pahasti päälle ja tein yhtä sun toista lisäystä. Tällä hetkellä ohjelma osaa jo seuraavaa:
- Piirto, kumitus ja väritys
- Reunuksen ja taustavärin vaihto
- Merkin poiminta
- Kuvien lataus ja tallennus
- Kuvien eksporttaus C-, assembler- ja BASIC-muotoon
- Simppeli pikselipiirtomoodi 1/4-merkeillä
- Alueen valinta ja kopiointi/tyhjennys
- PETSCII:n uudelleenjärjestely helpompaan muotoon
- Esikatselu venähtäneillä merkeillä ilman gridiä
Katsotaan, kuinka pitkälle into vielä riittää. Kaikenlaista muutakin mahdollista voisi lisäillä loputtomasti, mutta ainakin undo olisi varsin tarpeellinen toiminto. Animaatiota on pyydetty myös, mutta katsotaan nyt. Siinä vaiheessa, kun into loppuu, niin kintaat putoavat välittömästi 🙂

edit: Niin, jäi linkit laittamatta:
edit2: Tukee nyt myös VIC-20:tä.
edit3: Dokumentaatiota nyt täällä: http://www.kameli.net/marq/?page_id=2717
September 29th, 2013
Here are some preliminary results from a compiler/interpreter test, where we pitted different MSX compilers and cross-compilers against each other. The test was a simple integer addition loop. Here’s the Pascal version for a reference:
Program Bensmark;
Var
i,j,s:Integer;
Begin
s:=0;
For i:=1 To 10000 Do
For j:=1 To 100 Do
s:=s+1;
Writeln(s);
End.
The snippet tests mostly loops, so the results can’t be generalized for all sorts of purposes. Anyway, here comes the list with execution times in seconds, arranged from fastest to slowest:
- Mildly unrolled assembly: 4
- Trivial assembly implementation: 8
- SDCC C cross-compiler 2.9.0: 13
- MSX-C 1.20: 44 – painfully slow compilation
- X-BASIC: 47
- Turbo Pascal: 62 – quick compilation
- z88dk C cross-compiler: 86
- Hisoft C 1.35: 154
- Hisoft Pascal: 880 – extrapolated from a shorter loop
- MSX-BASIC: 2500 – extrapolated from a shorter loop
Some big surpises there, actually. I expected a lot better performance from z88dk and Hisoft C, but they lost even to the ancient Turbo Pascal. TP got a big plus for its swift compilation time, too. X-BASIC went on to show that BASIC doesn’t need to be slow at all. In spite of its problems and somewhat modest code generation, SDCC easily took the crown of compiled high-level languages here.
September 15th, 2013
Panasonicin MSX2+:t sisältävät erikoisen “turbomoodin”, joka ilmeisesti ylikellottaa sisällä olevan MSX-enginen 3,58 MHz -> 5,38 MHz (tai jonkun lähteen mukaan 6 MHz:iin). Tämä ominaisuus löytyy siis FS-A1-sarjalaisista FX, WX sekä WSX. Ikävänä sivuvaikutuksena mukana kellottuu samalla PSG, joten äänet soivat ylävireessä. Turvon päälle survominen ei ole vaikeaa:
out 64,8:out 65,0
Eikä pois:
out 64,8:out 65,1
Pelkkien numeroiden valossa nopeutuksen pitäisi olla 1,5-kertainen eli suoritusajoista pudota 33% pois, mutta todellisuudessa näytönkäsittely, massamuisti ym. tasaavat nopeuseroa. Pieni BASIC-silmukka nopeutui 25% ja aped-editorissa merkkirivin täyttyminen kesti 10 sekuntia verrattuna alkuperäiseen 15:een. Realistisin testeistäni lienee ison paketin (R-Type) purku pmextillä kortinlukijalle:
- normikone, 6:10
- turbo päällä, 4:31
- turbo R, 1:08
Eron siis todellakin huomaa, mutta mihinkään tR:n tasoiseen hurjasteluun ei venytä. Ongelmistaan huolimatta moodi on tervetullut pikku lisä, joka saattaa säästää hieman hermoja raskaiden operaatioiden äärellä. Tässä vielä pikainen häkkini pturbo.com, jolla saa asetettua turbon päälle tai pois (on/off) dossissa.
September 4th, 2013
Ok, found the problem: for some reason Risc OS checks whether there really is an SD card inserted, unlike other platforms. The two little springs at the back of the SD slot apparently don’t make a good contact on some Raspis, which makes Risc OS fail at boot. Solution: solder them permanently together! See here for more discussion. Worked for me.
August 25th, 2013
There seemed to be no sensible use for the Panasonic FS-A1 I bought recently, since it boots to 60 Hz and can’t run most of MSX2 demos because of the lack of memory. You can’t even boot MSX1 demos directly from, say Nowind. With a boot disk, however, things get a bit better:
No magic there – the floppies set up a MSX1-lookalike palette, 50 Hz screen mode and 40 columns for SCREEN 0. On a tR the CPU speed is dropped to 3.58 MHz. After that change the virtual (or real) floppy and run the actual production. Tested on FS-A1, FS-A1ST and Philips 8245.
edit: Lars the 18th was kind enough to improve the boot floppies by creating a single .com file that does pretty much the same as above. See here: MSX1DosBoot.dsk
edit2: There was a broken link to the latter disk, but now it’s fixed. The msx1.com by Lars is good stuff for running MSX1 stuff from a card reader and so on.
August 13th, 2013
Pikaraportti Ubuntun ja Acer Chromebook C710:n yhteiselosta: toimii! Dualbuuttaaminen olisi normaali konsti, mutta se on viime kädessä aika rasittavaa ja hidasta. Onneksi nykyään on tällainenkin kätevä kikkale kuin Crouton, jonka asensin tämän ohjeen perusteella (tosin LXDE:n eikä XFCE:tä). Ideana on, että kun Chrome OS kerran on jo sisuksiltaan aito Linux, niin Ubuntua ajetaan sen päällä vankilassa samalla kernelillä. Ossi pyörii yhdessä X-instanssissa ja Ubuntu-työpöytä toisessa. Näiden kahden välillä voi sitten vaihtaa tutuilla ctrl-alt-funktionapeilla ja kaksi puolta pysyvät siististi erillään. Pientä virittelyä tarvitaan toki, mutta konsepti on hyvä. Joitakin sekalaisia havaintoja:
- Laite pitää ensin laittaa kehittäjätilaan, mistä muistuttaa jatkossa joka käynnistyksessä näkyvä (sinänsä harmiton) valitusruutu.
- Chrome OS:stä Ubuntuun vaihtaessa tarvii virkistää ruutu, ctrl-alt-F3
- Videokiihdytys toimii ja jopa OpenGL, vaikkakaan esimerkiksi FSAA ei Intelin ruppanalta onnistu. VLC toisti ulkoiselta levyltä divx:ää ja h264:ää yskimättä.
- Soitto soi ja volumekin säätyy
- Ulkoinen näyttö tunnistuu ainakin VGA:n kautta molempien työpöytien puolella. Hiirellä ja näppiksellä varusteltuna Asseri voisi jopa toimia kohtuullisesti pöytäkoneen korvikkeena.
- Suominäppis ei toimi suoraan LXDE:ssä, mutta normitempuilla lähtee (setxkbmap -layout se esim. paikkaan /etc/xdg/lxsession/LXDE/autostart). Ylärivi toimii funktionappeina eikä kirkkaus- ym. säätöinä, vaikka saisi senkin jollain virittämisellä toki kuntoon. Toisaalta Linux-ohjelmat käyttävät funktionappeja monenlaiseen muuhun tarkoitukseen.
- Jopa sleep tuntuisi pienellä kokeilulla futaavan luotettavasti
- Verkko- ym. asetukset tehdään Chrome OS:n puolella, mikä on tavallaan ihan hyväkin, sillä wlanin toimivuus on Googlen ja Asserin niskoilla
- Kenties suurin murheenkryyni on Linuxin puolella vakiona huonosti konfiguroitu hiiripädi, joka klikkaa ja skrollaa hieman satunnaisen oloisesti. Palannen aiheeseen myöhemmin synclient-savotan jälkeen – eiköhän tuon saa tyydyttävään kondikseen, kun vaan jaksaa säätää.
- Omalaatuisen tiedostojärjestelmän vuoksi levyjä selatessa näkyy ties mitä ei-niin-kiintoisaa järjestelmän sisäistä puppua
- Eri maailmojen välillä voi siirtää tiedostoja molemmille näkyvän Downloads-hakemiston kautta
Kaiken kaikkiaan suunnilleen sitä, mitä odotinkin: virittelyä vaaditaan, mutta siitä saa palkkioksi käyttöönsä Linuxin laajan softavalikoiman. Chrome OS sopii sujuvaan selailuun ja Docsin käyttöön, mutta esimerkiksi tien päällä koodailuun huonosti. Ubuntun kautta aukeavat käyttöön emulaattorit, kääntäjät, serverit, LibreOffice, Gimp, LyX, VLC, X-Chat ja niin edelleen. Vastoin odotuksiani jopa Wings3D tuntui toimivan hyvin. Vielä kun näiden kahden rinnakkaiselo tuntuu olevan verrattain ongelmatonta ja 320-gigainen kiintolevy muuten lähes tyhjän panttina, niin oikein hyvältähän tämä vaikuttaa.
July 24th, 2013
Next Posts
Previous Posts