All posts by Tor Håkon Haugen

Årets turmål

Hvert år legger Friluftsrådet Vest — i sammarbeid med Telltur.no — ut en liste med turmål som gir poeng. Målet mitt er, som hvert år, å ta alle i Tysvær og noen i omegn.

Jeg har i flere år vært begeistret for de 10 turmålene som har blitt utstyrt med koder man kan samle sammen. Faktisk var jeg så begeistret at jeg opprettet en Facebook gruppe i 2010. Men denne gruppen er ikke særlig aktiv lenger, og jeg har ikke akkurat gjort så mye selv heller de siste årene for å holde liv i den.

Før kom turmålene som brosjyre i postkassen hvor man kunne skrive inn kodeordene, sitt eget navn og adresse, og sende eller levere inn til kommunen. Nå er dette digitalisert gjennom et sammarbeid med andre Friluftsråd i landet, og gjennom nettstedet Telltur.no kan man nå registere alle sine turer.

Klarer man å besøke 50 unike turmål i regionen til Friluftsrådet Vest vanker det en liten premie. Hver kommune har i snitt 10 mål, så det sier seg selv at man må litt utenfor sin egen stue for å klare det antallet.

Som nevnt så er målet mitt først og fremst å ta alle turene i Tysvær, pluss noen i omegn. Hittil at jeg besøkt Helgelandsfjellet, Håvåshytta og Aksdalsvatnet i Tysvær, og Krokavassnuten i Haugesund.

Håvåshytta har hittil vært den mest krevende. I stede å dra fra Nodland på Tysværsiden, så gikk jeg først til Krokavassnuten fra Haugesund, videre til Håvåshytta og tilbake. Turen fra Tysvær kan tas med joggesko nærmest året rundt, mens stien gjennom byheiene er mer kupert og til dels myrete.

Turmål i Tysvær

Til slutt noen bilder tatt i løpet av uka som gikk.

Presten, Haugesund

Bølger ved Kvalen Fyr

Skiftende vær og kraftig vind kan kan gi gode fotomuligheter ved kysten. Når solen bryter igjennom skydekket kan man få et helt utrolig lys, og det kombinert med sjøsprøyt vil kunne gi en helt annen dybde i bildene enn hva ellers ville vært tilfelle.

Lanternen ytterst på Kvalen, Haugesund

Jeg dristet meg ut til Kvalen fyr i Haugesund med kamera, et halvfullt batteri og et tomt minnekort. I tillegg til et teleobjektiv på kamera, så hadde jeg med meg både vidvinkel- og makro-objektiv i ryggsekken.

Det var opplett men overskyet mens jeg kjørte ut til Haugesund. Men når jeg parkerte begynte det selvfølgelig å regne. Heldigvis gikk det over i løpet av et par minutter. Så da var det bare å få på hals og lue, og komme seg ut og gå mot fyrlykta.

I løpet av den timen jeg brukte på å fylle minnekortet var det overskyet, kom litt mer regn, sol og avsluttningsvis overskyet igjen. Jeg ble med andre ord våt og tørr igjen før jeg var tilbake i bilen. Jeg hadde solblender på teleobjektivet, men det hjalp lite mot regn i vind, noe jeg ikke merket før jeg sjekket utstyret etter at jeg hadde kommet hjem. Det var kommet mye vann på frontelementet, og det synes også på bildene som ble tatt. Det ble betydelig blassere resultat enn før regnet.

Markør utenfor Kvalen, Haugesund

Etter regnet så ble jeg nødt til å varme fingrene noen minutter, for vann og vind på bar hud er ikke særlig behagelig. Den perioden hvor de beste bølgene og lyset var tilgjengelig, var det også et utelandsk par som absolutt skulle valse helt ned til fyret. Man har selvfølgelig ikke enrett på motivet, men det var jo litt irriterende.

Litt mer skummelt var det å se hvor langt ut noen folk er villige til å gå for å ta en selfie. For å si det slik, se på det øverste bilde; Hadde vedkomne stått der hun sto når den bølgen kom, så ville hun sannsynligvis ha mistet fotfeste. Ville hun bli skylt på sjøen? Kanskje, kanskje ikke. Men gjennomvåt? Garantert.

En stund etter at solen tittet frem byttet jeg til vidvinkel-objektiv. Det var også da jeg ble bevisst på hvor mye ledig kapasitet jeg hadde igjen på minnekortet. Jeg ble mer og mer konservativ på avtrekkeren når jeg så at antall mulige bilder krøp ned under 200. Man kan jo bare tenke seg hvordan det hadde vært med analog film, hvor 24 bilder per rull var normalen.

Lanternen ytterst på Kvalen, Haugesund. Tatt med vidvinkel.

Jeg begynner å få et relativt stort arkiv med bilder fra Kvalen fyr nå. Det jeg mangler er snø og is, både i stille farvann men også i en sikkelig vinterstorm. Det hadde vært kult å hatt i arkivet.

Rent tenkisk så må jeg si at jeg er imponert over batterikvaliteten på kameraet, et Canon 5D mark II. Canon oppgir antall bilder til mellom 750 til 850 på et batteri. Jeg gikk ut med 52 % batterikapasitet og fikk tatt 1231 bilder, altså fullt opp et 32 GB minnekort, og kom hjem med litt over 30 % batterikapasitet. Det skal nevnes at jeg har slått av skjermen på kamera, og på den måten sparer en god del strøm. Det jeg bruker skjermen til er stikkprøver for å sjekke historgrammet, altså at bildene er eksponert korrekt.

Det ble altså en relativt kald affære, men jeg koste meg hele tiden. Og til syvende og sist så er det jo det er jo det det handler om. Å ha det kjekt.

Nærbilde av lanternen ytterst på Kvalen, Haugesund
Kvalen fyr

Årets første tur unnagjort

På den siste dagen i februar, en solrik torsdag, valgte jeg å avspasere noen timer og gå til Valhest. Slik ble årets første først tur et faktum.

Toppen av Valhest

Planen var først å gå til Valhest på lørdagen, men etter å ha sett værutsiktene for helgen, og deretter å ha sett ut vinduet, bestemte jeg meg for å avspasere noen timer for å få unnagjort turen mens det enda var dagslys. Og ikke bare dagslys, men med sol og blå himmel.

Som jeg har skrevet om før, så tar turen cirka 3 timer tur/retur, inkludert en liten stopp på toppen. Dette gjelder hvis du går fra Stakkestad vel og merke. Jeg har ikke tatt tiden fra hverken Liland eller Aksdal, men ifølge Ut.no så tar førstnevnte 1,5 timer og sistnevnte 30 minutter. Akkurat den siste der er jeg skeptisk til. Ut.no skriver forresten også at turen fra Stakkestad tar 2 timer en vei.

Jeg tenker alltid på turen som flere parti eller etapper. Et flatt parti, et bratt parti, et flatt parti, et bratt parti og til slutt et flatt parti. På siste etappe går man på rent fjell, mens på de andre er det mer myr og gress som gjelder. Og med “flatt parti” så mener jeg ikke at det er paddeflatt, men mer normal stigning. Du skjønner tanken når du har gått løypa selv.

Det føltes uansett godt å komme i gang med litt lett turgåing.

Ryggsekk på toppen av Valhest
En stor stein som kan sees på Vei opp til Valhest

Knights of the Sky – Part 1

This post was written 4-5 years ago, back in October 2014, but for some reason never left the draft folder. Well, here it is. Maybe this will give me the necessary incentive to produce a part 2 in the near future.


I’ve recently become interested in doing some small programming projects. Mainly using C and assembly language. For some reason low-level programming and embedded systems appeal to me.

For fun, I decided to poke into the code of Knights of the Sky, the PC-version. A game which has given me hours of fun when I was young. Being a 16-bit DOS based game I thought it would be a relative easy task. The actual source code isn’t publicly available to my knowledge, so for this I had to look from the outside and in using different tools like hex editor and disassembly.

How the game is assembled

The game is split into several executables, none of which I was able to start directly from Dosbox. Neither was I able to disassemble them into anything useful. A quick peek using a hex editor reveals that they are compressed with the LZ91 algorithm. This isn’t a problem, the internet is full of tools which can uncompress them and make executables which can be dissassembled.

Notice the timestamp of the files

Splitting the files make some sense. Some because of the memory limit in early DOS era, but also because not all of the files are used. It all depends on the choices you make during setup, like sound and graphic options. Several of the executables have similar names, like CGRAPHIC.EXE, EGRAPHIC.EXE, MGRAPHIC.EXE and TGRAPHIC.EXE, and only one of them is used during game play. Same goes for sound.

Starting the game

To start the game the player would have to start KNIGHTS.COM, a basic binary executable which is loaded directly into memory location 0100h. This file acts as a loader which kicks off a chain of other executables.

My interpetation of the execution flow.

SU.EXE is the setup where the player can choose input (keyboard, mouse and/or joystick), sound and graphics options. This is passed along to DS.EXE which, and I’m guessing now, is the part responsible for the stack and the memory layout (remembering the choices made, etc). After SU.EXE, DS.EXE is run between every executable until the player exits the game.

Copy protection

ID.EXE is the game “copy protection” scheme, where you are presented with an image and has to choose the right option. This is found in the game manual. Remember those?

If the player selects wrong she or he is only able to play a training session. Again, I would guess that the result of this “copy protection” is also stored somewhere in DS.EXEs stack. I have yet to figure out where MISC.EXE is used, but KNIGHTS.COM does check for it and won’t continue without it. In my copy of the game this executable has a creation date of 1989, while the rest of the files are compiled in 1990.

Catalog files – think of uncompressed .zip files – just a big buch of different data stored within the same file.

Going back to ID.EXE, there is also a file called ID.CAT, which is basically a container for the images used by this executable. It contains one background image and several logos. One of the logos are presented and the user has to select the correct name which belongs to that particular logo. Creating a program to extract those files was (almost) straight forward after using a hex editor to figure out the internal data structure.

The two first bytes tells how many files are “packed”, immediately followed by the following data structure times the number of the two first bytes. In this case, 18 times. The same structure is used for the other CAT-files in the game as well.

struct fileHeader {
    char name[12];       // Filename with a maximum of 8.3, DOS-style
    unsigned short u1;   // ?? I Have no idea ??
    unsigned int size;   // File size in bytes
    unsigned int offset; // Offset from beginning of file
}

There are also some files ending with PLN, all of which has the same size (256 bytes) and almost the same content. The name is almost a dead give away that we’re talking about different colors, and swapping one file with another reveals that these are responsible for the color of your plane, seen from the outside (hitting F2 during flight) that is. However they do not seem to impact the landscape in any way. I’ll just assume that PLN is an abbreviation of the word “plane”.

Savegame file

The last file I will mention is the ROSTER.DAT. This is the only file which changes during game play (did someone say save game?). It’s 35K bytes, and since the game supports 10 saved players (no more, no less), it was fairly easy to guess how much “space” each player occupies. The structure of this file has to be well-defined, but I have only scratched the surface so far. Then again, I’m more interested in decoding the graphics and sound then trying to cheat the game. It’s a pain to play without a joystick anyway.

Now that we know where the different files are used and why, we are ready to dive deeper and do some real disassembly. The focus next will be on extracting and viewing images as well as be able to play the music from the game.

God nyttår!

Nytt år, ny bloggpost. Blogg-post? Blogg… post. Postblogg.

Fyrverkeri

I fjor klarte jeg å publisere hele 3 poster her på bloggen. I år håper jeg å klare å få ut flere, foråhpentligvis uten at det går for mye ut over kvaliteten. Bortsett fra denne posten her da, og kanskje et par til. Også kan vi jo fort diskutere om det har vært noe kvalitet tidligere, i så fall er jeg jo ganske trygg.

Nyttårsforsett

Jeg tror ikke på nyttårsforsett. Jeg tror på forsett i seg selv, bare ikke at man er nødt til å vente til nyttår før man iverksetter sine planer om et nytt og bedre liv. Eller noe helt annet; hvis det er det som er målet. Men uansett. Nå har jo nyttår nettopp vært, så da kan jeg likegodt prøve meg på et par.

  1. Lese mer. Jeg har en stadig voksende boksamling — riktignok ikke imponerende, men nok til at jeg ikke har fått lest alt. Så i år skal jeg prøve å sette til sides litt mer tid til å lese bøker. Det kan være skjønnhetslitteratur eller faglitteratur. Nå i romjulen fikk jeg lest “Game Engine Black Book: Doom” av Fabien Sanglard. Anbefales for folk som interesserer seg for slikt.
  2. Dyrke mine interesser. I løpet av fjoråret så var ikke kamera så mye med ut på tur som tidligere, og det synes jeg er trist. Kroppen min var heller ikke like mye med ut på tur som tidligere, og det er tilsvarende trist. Og i dag regner det, så jeg ser ikke for meg at jeg kommer meg over dørstokkmila i dag heller. Til gjengjeld ble det mye golf i fjor, takket være en varm sommer. Og det ble mange besøk hos kiropraktor for å fikse en ødelagt rygg som følge av mye golf i fjor.
  3. Finne ut hva som gjør meg lykkelig, og forhåpenligvis bli lykkelig. Dette punktet burde kanskje stått på toppen. Men igjen; hvis punkt 2 på denne listen kan jo fort vise seg å være veien å gå for å komme til punkt 3. Og punkt 1 kan være fin å ha de dagene punkt 2 har en litt høy dørterskel.

Bøker

Denne kan jeg fort angre på, men siden jeg har lyst til å lese mer så får jeg kanskje stikke hode frem og skrive hva jeg leser/har lest også.

Game Engine Black Book: Doom

Som tidligere nevnt ble jeg nettopp ferdig med “Game Engine Black Book: Doom” av Fabien Sanglard. Boken tar for seg hvordan spillet Doom ble laget. Boken tar for seg hvordan spillmotoren virket, hvordan PC-en var på den tiden, grafikk, trivia, intervjuer. Den går faktisk så langt som å omtale, i stor detalj, hvordan alle konsoller som Doom ble portet til faktisk virket (eller ikke virket). Boken er rikt illustrert og har et omslag som tar vare på fingeravtrykkene dine til ettertiden.

Hvis du vil vite hva det går i uten å kjøpe boken så har Fabien masse gode eksempler på bloggen sin, og her er det mye gull fra før han bestemte seg for å skrive om både Doom og Wolfenstein 3D i bokform.

Frank Aarebrot – Hele norges professor

Denne boken om Frank Aarebrot dukket opp under juletreet i år. Og siden den ikke har rukket å finne vei inn i en bokhylle så er det stor sannsynlighet for at dette blir den neste boken som plukkes opp og leses.

Jævla Drittsystem!

For å ikke virke for pretensiøs så vil jeg også nevne boken Jævla Drittsystem av Jonas Söderström. En bok om “Hvordan IT-systemer kan ødlegge arbeidsdagen og hvordan vi kan ta tilbake kontrollen”. Det er sannsynligvis akkurat slik du tenker at den er. Full av eksempler på hvordan programmer som skulle gjøre arbeidsdagen vår enklere faktisk har endt opp med å ødlegge den i stedet.

For mer virker det som enhver oppdatering til Windows har som hensikt å gjøre arbeidsflyten litt vanskeligere. Og hver sikkerhetspolicy ender opp med å gjøre systmene med usikre. (Fordi du snart er nødt til å skrive ned passordet ditt på gule lapper, eller fordi du må ha en maskin nummer 2 som ikke er med i sikkerhetshysteriet for å faktisk kunne utføre arbeidsoppgavene dine)