Ozmoo - ny speltolk för Z-kod (Infocom)

Spelrelaterade diskussioner

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher

Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 3 januari 2019, 12:44

Hej,

minizork.png
Infocoms gratisspel Minizork i Ozmoo


Johan Berntsson och jag har skrivit en speltolk för Z-kod, det spelformat för textäventyr som utvecklades av Infocom och användes för spel som Zork, Hitchhiker's Guide to the Galaxy, Planetfall m fl. Spelformatet har sedan dess använts för ytterligare många hundra spel skrivna i språket Inform.

Z-kod använder en virtuell maskin (liknande t ex JVM för Java) och det är strukturerat så att spelen ska kunna vara klart större än minnet på datorn som kör dem, med hjälp av virtuell minneshantering i speltolken. Ett spel för en C64 med en diskdrive kan vara upp till cirka 190 KB.

Infocoms egna speltolkar var bra. Z-kodsformatet har dock uppdaterats en del sedan dess, av hobbyister. Ozmoo stödjer allt det senaste, så långt som möjligt på en C64. En annan viktig skillnad är att Ozmoo är släppt under licensen GPL 2.0, vilket innebär att man tryggt kan använda den för ett spel man skriver och ger bort eller säljer.

Det finns några andra Z-kodstolkar för C64, men Ozmoo är för närvarande det enda alternativet som funkar på en C64 + en diskdrive, utan extra hårdvara, och som garanterat inte har någon kod som någon annan sitter på rättigheterna till.

Ozmoo fungerar på en C64 med en 1541 eller liknande diskdrive. SD2IEC funkar utmärkt, likaså 1541 Ultimate, Pi 1541 o dyl. Däremot inte 1581, i alla fall inte än. Självklart funkar Ozmoo även på emulatorer.

Om man vill använda Ozmoo, laddar man ner det till sin PC, Mac eller Linuxdator, ser till att man har Ruby, Exomizer, Acme cross-assembler samt Vice installerade (se pekare på hemsidan nedan), och pekar ut sökvägarna till dem i scriptet make.rb. Man kör sedan "ruby make.rb mygame.z5" och ut kommer en d64 disk image med ett spelbart spel.

Det finns en bunt options man kan ange till make, och förstås dokumentation. Man kan t ex lägga in en egen teckenuppsättning i spelet, välja färgschema, bygga ett spel som ligger på flera disksidor mm.

Ozmoo har även en möjlighet att bygga ett litet spel (max ca 50 KB speldata) utan virtuell minneshantering. Ett sådant spel kan t ex laddas in från band och köras på en dator utan diskdrive. Save/restore av spelposition kräver dock, än så länge, diskdrive.

Man kan använda Ozmoo för Infocom-spel, Inform-spel man laddar ner (dock inte Inform 7, det blir för långsamt), eller spel man gjort själv. Vill man utveckla ett spel själv, är de huvudsakliga alternativen Inform 6 och ZIL. Information om Inform 6 kan man hitta på https://www.inform-fiction.org/ . ZIL är språket som Infocom själva använde för att utveckla sina spel. Det finns en liten men trevlig och växande grupp på FB som håller på med det: https://www.facebook.com/groups/ZILcom/ . Det finns även ett trevligt forum där man kan få hjälp med frågor kring utveckling i båda dessa miljöer: https://www.intfiction.org/forum/index.php

Ozmoo har även stöd för att skriva spel som använder svenska tecken. Detta stöds inte av någon annan Z-kodstolk för C64. Lägger man även in sin egen font, så vet man att de visas rätt också.

Här är hemsidan med mer information, instruktioner och nedladdningar: https://github.com/johanberntsson/ozmoo

Om man bara vill prova ett spel som använder Ozmoo, kan man ladda ner spelet Curses! här: http://microheaven.com/ozmoo/curses.d64
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav bjonte » 3 januari 2019, 14:51

Det här var ju riktigt coolt! Det borde inte vara omöjligt att utöka med C128-stöd eftersom det bara är text. Vad sugen jag blir.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1652
Blev medlem: 17 april 2006, 23:12

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 3 januari 2019, 15:19

bjonte skrev:Det här var ju riktigt coolt! Det borde inte vara omöjligt att utöka med C128-stöd eftersom det bara är text. Vad sugen jag blir.


Du är välkommen att forka och se om du kan få till en C128-variant! Om det på något smidigt sätt sedan går att få ihop koden för en sådan version med C64-versionen så vore det ju ännu bättre.

På 128:an vill man förstås kunna använda en 1571:a om det finns en sådan, det extra RAM:et, och förstås 80-kolumnsdisplay. Jag tror vettig användning av den andra RAM-banken är det svåraste, men jag har aldrig programmerat för C128, så jag ska inte svära på det.

Vi har gjort helt egna rutiner för skärmhantering, främst för att kunna förhindra att statusraden scrollas upp. De är nog inte så svåra att anpassa för 80 kolumner.

Vi jobbar ganska aktivt på en nästa version, så koden står inte direkt stilla. Idag har vi t ex förbättrat algoritmen som väljer ut vilken sida som ska ersättas när man laddar in en ny sida i RAM. Du kan titta i Todo.txt för annat som är på gång.
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav Redreamer » 4 januari 2019, 01:54

Coolt! Får man fråga hur lång tid ni lagt ner på detta än så länge?
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1239
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 4 januari 2019, 12:31

Redreamer skrev:Coolt! Får man fråga hur lång tid ni lagt ner på detta än så länge?


Oj. Tja, en stor del av vår fritid sedan i april. Många hundra timmar, absolut.

All funktionalitet ska ju skrivas. Sedan ska koden göras smartare och snabbare, och gärna mindre. Vi har ett benchmark-läge där spelet Hollywood Hijinx spelas igenom. Det går nu dubbelt så fort som när vi körde det första gången 10:e juli.

Och många buggrättningar. Igår nådde vi läget att vi har 0 kända buggar. Självklart har vi en del okända buggar dock.
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 28 april 2019, 22:27

Nu finns det en sida för att bygga Z-kodsspel med Ozmoo utan att först behöva installera Ozmoo:

http://microheaven.com/ozmooonline/
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav bjonte » 1 maj 2019, 13:11

Hur har det gått? Är det några som har börjat göra äventyr? Jag läste på Lemon64 att en person hade börjat meka lite. Jag önskar att jag hade mer tid att greja med sådant här men jag prioriterar bort det tyvärr.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1652
Blev medlem: 17 april 2006, 23:12

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 2 maj 2019, 10:20

Det är några som börjat bygga spel med Ozmoo, dels spel kompilerade från den nysläppta Infocom-källkoden, dels Inform-spel, och hittat flera buggar. Vi har rättat de buggar som rapporterats in, men samtidigt hittat andra problem som vi behöver jobba på. Så det har varit ett lyft för oss att få ut denna sida.

Ozmoo är ju inte ett språk eller verktyg för att skriva textäventyr i, utan en speltolk som kan köra de spel som utvecklats i främst ZIL eller Inform 5 eller 6.

Om man har Infocomspel för MS-DOS, Amiga eller liknande, kan man ta spelfilen (brukar sluta med .dat), ladda upp till Ozmoo-sidan, och bygga en egen version för C64, med sitt favvofärgschema. Det tar inte många minuter.
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 13 juni 2019, 12:39

Bild

Ozmoo Release 2 finns nu ute.

Detta har hänt: https://github.com/johanberntsson/ozmoo/releases

Bifogar en bild av startskärmen i Hollywood Hijinx spelad i Infocoms egen tolk respektive Ozmoo. Ozmoo klämmer in 34% mer text på de 24x40 tecken som finns tillgängliga. Det kan vara en orsak till att man hellre spelar sina Infocom-spel i Ozmoo än i Infocoms egna tolkar. (Översta skärmraden är reserverad för statusraden även i Ozmoo, men den uppdateras inte förrän man får första prompten)

Här kan man förresten nu ladda ner alla storyfiler som Infocom släppte, för att sedan använda Ozmoo Online ( http://microheaven.com/ozmooonline/ ) för att bygga disk images för spel på C64:

https://eblong.com/infocom/

(Storyfiler som kan användas med Ozmoo slutar typiskt med någon av ändelserna .z3 .z4 .z5 .z8 eller .dat)
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav bjonte » 14 juni 2019, 20:58

Jag var tvungen att räkna raderna för det ser så mycket ut på höjden. Vad konstigt att de inte fyller ut raderna effektivt i första tolken. Det finns ju ingen anledning att radmata så tidigt. Har du någon teori om varför det var gjort så?
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1652
Blev medlem: 17 april 2006, 23:12

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav bjonte » 14 juni 2019, 21:00

Vet du om det funkar att köra från hårddisk?
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1652
Blev medlem: 17 april 2006, 23:12

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 14 juni 2019, 21:44

bjonte skrev:Jag var tvungen att räkna raderna för det ser så mycket ut på höjden. Vad konstigt att de inte fyller ut raderna effektivt i första tolken. Det finns ju ingen anledning att radmata så tidigt. Har du någon teori om varför det var gjort så?


Japp. Faktum är att det bara är en kolumns skillnad - Infocoms tolk använder 39 kolumner, medan Ozmoo använder 40. Den där enda kolumnen gör dock överraskande stor skillnad i hur mycket text som ryms.

Och ja, jag förstår varför Infocom skippade sista kolumnen. När man skriver ut något i 40:e kolumnen hamnar markören på nästa rad. Om man sedan skriver en radmatning blir det en tomrad, fast man egentligen bara skulle till början av en ny rad.

Kernal försöker dessutom hålla ihop den rad man skrev ut på med nästa rad som en logisk rad, med vissa lustiga bieffekter.

För att hantera detta, samt att på ett enkelt sätt kunna frysa valfritt antal rader högst upp på skärmen så att de inte scrollas bort, har Ozmoo helt egenutvecklade skärmrutiner.
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 14 juni 2019, 21:49

bjonte skrev:Vet du om det funkar att köra från hårddisk?


Ozmoo kan bara köra mot något som från datorns perspektiv ser ut som en diskdrive (1541 eller 1581). Den har dock inga krav på lågnivåemulering, så det går utmärkt att köra mot t ex en SD2IEC. Om du kan lagra och accessa .d64-filer eller .d81-filer på hårddisken så funkar Ozmoo nästan garanterat.
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav bjonte » 15 juni 2019, 05:55

fredrikr skrev:Ozmoo kan bara köra mot något som från datorns perspektiv ser ut som en diskdrive (1541 eller 1581).


Så sektorer läses rakt av utan att vara del av en fil? I så fall borde det fungera med en 1581-partition då.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1652
Blev medlem: 17 april 2006, 23:12

Re: Ozmoo - ny speltolk för Z-kod (Infocom)

Inläggav fredrikr » 15 juni 2019, 22:40

bjonte skrev:
fredrikr skrev:Ozmoo kan bara köra mot något som från datorns perspektiv ser ut som en diskdrive (1541 eller 1581).


Så sektorer läses rakt av utan att vara del av en fil? I så fall borde det fungera med en 1581-partition då.


Ja, Ozmoo läser råa sektorer med hjälp av kommandot U1 (som finns i bl a 1541 och 1581).

Osäker på om vi menar samma sak med en 1581-partition, men om man bygger till en disk image för 1581 ( .d81 ), så skapas också en partition i disk imagen för att skydda dessa sektorer.

Om du har hårdvaran är det inte svårare än att du provar. Se instruktioner i ett inlägg ovan om var du hittar storyfiler och adressen till Ozmoo Online där du kan bygga disk images. Jag är nyfiken på hur det lyckas om du testar med hårdvara som vi inte har använt.
fredrikr
Nybörjare
Nybörjare
 
Inlägg: 23
Blev medlem: 22 december 2016, 09:26

Nästa

Återgå till Spel

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016
cron