Disassemble DOS/4GW

A few months ago I started tinkering with an old DOS-based game trying to figure out its internal data structure. Progress was good in the beginning, and I was quickly able to alter the saved game to give myself some advantages.

Long story short, after a while I needed to figure out how the game handled a particular part of the savegame, since I couldn’t figure it out using a hex editor. But since the game was using a DOS extender, also known as DOS/4GW, loading it directly into Ida Pro Free wouldn’t help. It only gave meaningless garbage in return.

The solution

I found the open source DOS extender DOS/32. This has a utility known as SUNSYS Bind Utility which can be used to “Unbind and discard existing Extender/Stub from LE/LX/LC executable” as it says in the documentation.

Place the utility, along with the executable in question, in the same directory and fire up Dosbox (or the real thing) and enter the following command.

SB /U filename.exe

This will produce a unbinded file which can be loaded directly into Ida Pro Free. In my case I ended up with a file ending in .LE, which stands for “Linear Executable”.

Hopefully this can help others who want to peak into old DOS games.

Statistikk

Hvor mange bilder har du tatt totalt, hvor mange har du slettet?  Hvor mange bilder tar du før du sitter igjen med det ene gode?

Under Haugesund Triatlon tok jeg litt over tusen bilder. Siden dette er et arrangement med mye action og bevegelse så sier det seg nesten selv at ikke alle var verdt å ta vare på. Men så slo en tanke meg; hvor lenge kan jeg regne med at kamerat holder ut?

Jeg har et orginalt Canon 5D. Det nærmer seg 10 år gammelt, og det er ingen hemmelighet at et speilreflekskamera før eller siden vil svikte. Canon oppgir at 5D sin lukker (shutter) til å holde ut sånn cirka 100.000 bilder. Mitt første speilrefleks, Canon 350D, kun 50.000.

Begge disse kamerane mangler en teller som holder styr på hvor mange bilder som er tatt totalt, på nyere kamera så er dette informasjon som er lett å få fatt i. Men så fikk jeg en tanke. Alle bildene jeg har tatt vare på ligger ganske godt organisert. Kamera tar bilde med løpenummer fra 0000 (eller 0001?) til 9999. Så hvis jeg leser inn alle filene jeg har i kronologisk rekkefølge, og fyller hullene og tar høyde for filer som passerer 0-punktet. Ja, da har jeg vel ett tall som ikke burde være så langt unna sannheten? Det blir ikke helt perfekt, men mye bedre enn ingenting.

Siden alle bildene lå i en grei katalogstruktur med “{år}/{år}-{måned}-{dag}/ {filnavn}”, så var det en enkel sak å hente ut filnavnene i kronologisk rekkefølge:

E:\> dir /b/s/l/o:gnd Lightroom > filer.txt

Den kommandoen gjør følgende:

/b – lister kun filene, ingen metainformasjon som størrelse, dato, e.l.
/s – viser filer i katalogen kommandoen kjøres mot og alle underkataloger.
/l – skriver ut listen kun med små bokstaver (“IMG” blir til “img”).
/o:gnd – lister i sortert ordre etter (g) katalog (n) navn på fil og (d) dato, eldste først.

Den siste kunne jeg ha spart meg siden filene allerede lå sortert i katalogstrukturen. Jeg har kjørt kommandoen i ettertid uten sortering på dato og det har ikke endret resultatet.

Etter denne kommandoen endte jeg opp med en liste på 77.057 linjer. Ikke alle filene var bildefiler, men disse kunne enkelt sorteres bort ved å filtrere ut kun linjer som sluttet på .cr2. Canons proprietære filformat for rå-filer. Da endte jeg opp med en liste på “kun” 26.257 filer.

Eksempel på liste som ble generert av kommando "dir /b/s/l/o:gnd"

Ett annet problem var at listen inneholdt både filer fra 5D og fra 350D kameraene. Her tenkte jeg først å sortere på størrelse, siden 5D har en mye større sensor og dermed også produserer større filer. Et greit skille her ville vært på 10MB, alt under var 350D alt over 5D. Men så oppdaget jeg at 350Den laget filer som het “img_{nummer}.cr2”, mens 5D hadde byttet ut den første karakteren med en underscore. Lykketreff! Å spørre filesystemetet etter størrelsen for hver enkelt fil ville tatt mye lengre tid enn å kun filtrere på filnavnet.

Med denne informasjonen lagte jeg et lite python-script som tok for seg listen, registrerte alle filene den fant og fylte inn hullene. Når en fil var 9976 og den neste 0019, så tok den ganske enkelt 9999 – 9976 og la dette sammen med 19. Denne fremgangsmåten virker fint så lenge det ikke mangler 10.000 sammenhengede filer, noe som er lite trolig.

Første gang brukte jeg den første fila den fant som utgangspunkt, men siden kamera nesten er nødt til å ha tatt bilde nummer èn så fyller den nå ut hullet mellom første fil den finner og 1.

Resultatet ble da som følger:

Canon 5D
 Found: 12262 (18.69%)
 Lost : 53336 (81.30%)
 Total: 65598
 Canon 350D
 Found: 13995 (20.23%)
 Lost : 55169 (79.76%)
 Total: 69164

Det som er interessant her, bortsett fra at 350en ser ut til å ha gått over de 50.000, er hvor jevnt det er mellom antall bilder som er beholdt og antall bilder som er slettet på de respektive kamerane.

Jeg skal ikke påstå at hvert 5. bilde er et gullkorn, men det ser ut til å være den magiske grensen mellom hva som jeg anser som brukbart og hva som er totalt ubrukelig.

Rett sted til rett tid

Fotografering handler om å være på rett sted til rett tid.

I et par dager nå har jeg gått opp til Helgelandsfjellet og prøvd å fange Aksdal badet i kveldslyset fra solen. Og i går skjedde det. Sentrum lå badet i gull-farget lys, mens mørke skyer truet bak fjelltoppene. Det var simpelthen perfekt. Fargene, kontrastene, alt passet. Problemet var bare at akkurat den dagen så var jeg ikke på Helgelandsfjellet. Jeg sto hjemme og så ut gjennom kjøkkenvinduet.

Fotografering handler om å være på rett sted til rett tid.

I dag prøvde jeg meg igjen. De mørke skyene var borte. De hadde flyttet seg vestover, der solen går ned. Med det resultat at solen forsvant litt tidligere enn forventet. Altså litt før jeg var på toppen, før kamera var klart. Regla kan du alt.

Fotografering handler om å være på rett sted til rett tid.

Jeg får trøste meg med bi-effekten av turene opp og ned resulterer i en helsegevinst.

Siste rest av sommer

Uka som gikk ser ut til å ha vært det siste forsøket på å få litt sommervær til vestlandet, med temperaturer godt opp mot, og av og til over, 20 grader. Vi kan bare håpe på å få noen fine høstdager i tiden fremover. Så langt så lover ikke Yr annet enn regn så lang varslet viser.

Det er nå når høsten nærmer seg at det litt “magiske” lyset dukker opp. Gjerne i kombinasjon med lett morgentåke og dis over vann som fremdeles er litt varmere enn luften rundt. Så onsdags morgen sto jeg litt tidligere opp enn normalt. Pakket turklær og kamerautstyr, og satte kursen mot ett fint vann hvor jeg satset på at soloppgangen ville gjøre landskapet om til noe eventyrlig.

Fra klokken 7 til litt over 8 sto jeg i disen og ventet på at solen skulle bryte igjennom mens jeg prøvde å gjette meg til hva som kunne være mulige motiv, og hvor lyset først ville treffe. Når de første solstrålene slapp gjennom var det ett syn ut av en annen verden. Men komposisjonen jeg hadde satt opp badet dessverre i skygge, så da var det bare å gå etter lyset og prøve å se hva som kunne virke.

Når alt kom til alt så ble ikke resultatet helt som forventet. Men det er slik man lærer av. Denne gangen hadde jeg feilberegnet hvor solen ville bryte igjennom, hva som ville bli opplyst og hva som ville stå igjen i skyggen. Det betyr ikke at bildene ble dårlige, men rett og slett at jeg hadde sett for meg noe annet når jeg sto opp den morgenen.

På fredagen, etter en lang og slitsom uke, og med dystre værutsikter fra lørdagskvelden og fremover, bestemte jeg meg for å ta en sikkelig kveldstur for å nyte stillheten og solnedgangen. Fra Valhest.

Litt etter klokken 6 om kvelden parkerte jeg på Stakkestad og satte kursen mot Valhest. En tur jeg har gått mange ganger før. Kanskje ikke den mest teknisk krevende, men som helt klart får opp temperaturen ganske fort med sin “rett-på-sak” stigning ganske tidlig.

Denne kvelden var det en del skyer, og en stund så det ikke ut som det ville bli noen sikkelig solnedgang. Men jeg vet bedre. Den ville komme frem fra skyen den gjemte seg bak når den bare kom lavt nok i horisonten. Det er noe helst spesielt med det varme lyset som kommer når kveldsolen lyser opp fjell og fjord.

Hodnafjellet bader i lys fra kveldssola.

I rundt en halvtime gikk jeg rundt på toppen og prøvde å finne de beste utsnittene og det beste lyset. Både med normalobjektiv (50mm) og ett teleobjektiv (200mm). Og når solen til slutt forsvant var jeg godt fornøyd. Både med bildene, men mest av alt den fantastiske følelsen av å ha latt tankene få fri og bare nyte naturens stillhet.

I retning Vikebygd og Gråhorjo.

På vei ned så begynte, som vanlig, mitt høyre kne å skape seg. Heldigvis gav det seg litt når den verste nedstigningen var unnagjort, og jeg slapp å ta smertestillende for å sove om natten. På vei ned kom også påminnelsen om at det nå fort blir mørkt etter at solen har gått ned i horisonten. Hadde det vært overskyet ville nok turen ned blitt en større utfordring enn den ble, men herfra bør jeg nok tenke på å pakke hodelykt også når jeg skal ut på tur om kvelden.

Som jeg nevnte innledningsvis; vi kan bare håpe på å få noen fine høstdager i tiden fremover. Det er få ting som kan måle seg med morgen- eller kveldssol i kombinasjon med friske høstfarger på trærne. Og skulle disse fine høstdagene komme, så har jeg litt oppspart fleksitid på jobb som lett kan ofres.

På tur: Moldebrekka

Endelig en tur i regi av noen andre enn meg selv. Nok en gang har en kollega tatt på seg oppgaven å føre oss til fjells. Invitasjonen var ikke til å ta feil av.

Det kan jo være flere enn meg som i sommer er blitt litt ekstra brei over den delen man sitter på, og som trenger å bevege seg litt.

Det siste kan jeg være enig i. Men jeg vil ikke ha det på meg at jeg sitter på magen. Det er iallfall den som har vokst i takt med at lommeboka har krympet. Godt ferien er over.

Vi begynte turen ved Eikesdalvegen og gikk opp til Veldehytta. Det går traktorvei helt opp til hytta, men ikke lenger. Herfra må man ha fottøyet i orden.

Mange gode turalternativer åpenbarer seg når man er ved Veldehytta.
Mange gode turalternativer åpenbarer seg når man er ved Veldehytta.

Turen opp til Moldebrekka tok oss rundt 1 time og 30 minutter, inkludert en liten stopp på Veldehytta for å signere gjesteboka. Det var mye bløtt terreng den første delen fra hytta, men det ble selvsagt mye bedre i høyden.

Rett etter at vi hadde nådd toppen kom dessverre tåka rullende innover oss, og landskapet ble erstattet av en grå masse.

Utsikt fra Moldebrekka mot Ølensvåg.
Utsikt fra Moldebrekka mot Ølensvåg.
Vi satte kursen videre i nytt "landskap"
Vi satte kursen videre i nytt “landskap”

På vei nedover lettet været igjen, og når vi var vel fremme på parkeringsplassen så tittet sola frem.

Det ble dessverre lite gode bilder fra denne turen. Overskyet vær gjorde lyset flatt, noe som er flott for detaljbilder, men dårlig når man skal prøve å fange litt landskap. Regntunge skyer hadde gjort seg mye bedre. Men man kan ikke kontrollere været.

Litt informasjon og kart

Moldebrekka, eller Moldbrekka, ligg på 619 meter over havet i Vindafjord kommune. Vår rundtur (se kart) var på 10,5 kilometer. En del av dette gikk utenom oppmerket sti. Totalt brukte vi 3 timer på denne turen, inkludert pauser. Men jeg vi si vi holdt godt tempo når vi først var i gang.

Vår rundtur. Veldehytta ligger der de tre linjene møtes.