#punyinform — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #punyinform, aggregated by home.social.
-
It's #interactivefiction time! Finally we get around to playing "Captain Cutter's Treasure" properly. It is a neat little #punyinform based text adventure. Easy and short enough for new players to get into. We are playing this using Ozmoo on the C64 with one disk drive, 6K scroll back buffer and Action Replay 6 for faster loading times.
https://warrigal.itch.io/captain-cutters-treasureWe start off the game in the broom closet, with a brimming headache.
EDIT: Messed up the thread:
https://chaos.social/@root42/117019151971383570 -
It's #interactivefiction time! Finally we get around to playing "Captain Cutter's Treasure" properly. It is a neat little #punyinform based text adventure. Easy and short enough for new players to get into. We are playing this using Ozmoo on the C64 with one disk drive, 6K scroll back buffer and Action Replay 6 for faster loading times.
https://warrigal.itch.io/captain-cutters-treasureWe start off the game in the broom closet, with a brimming headache.
EDIT: Messed up the thread:
https://chaos.social/@root42/117019151971383570 -
It's #interactivefiction time! Finally we get around to playing "Captain Cutter's Treasure" properly. It is a neat little #punyinform based text adventure. Easy and short enough for new players to get into. We are playing this using Ozmoo on the C64 with one disk drive, 6K scroll back buffer and Action Replay 6 for faster loading times.
https://warrigal.itch.io/captain-cutters-treasureWe start off the game in the broom closet, with a brimming headache.
EDIT: Messed up the thread:
https://chaos.social/@root42/117019151971383570 -
It's #interactivefiction time! Finally we get around to playing "Captain Cutter's Treasure" properly. It is a neat little #punyinform based text adventure. Easy and short enough for new players to get into. We are playing this using Ozmoo on the C64 with one disk drive, 6K scroll back buffer and Action Replay 6 for faster loading times.
https://warrigal.itch.io/captain-cutters-treasureWe start off the game in the broom closet, with a brimming headache.
EDIT: Messed up the thread:
https://chaos.social/@root42/117019151971383570 -
It's #interactivefiction time! Finally we get around to playing "Captain Cutter's Treasure" properly. It is a neat little #punyinform based text adventure. Easy and short enough for new players to get into. We are playing this using Ozmoo on the C64 with one disk drive, 6K scroll back buffer and Action Replay 6 for faster loading times.
https://warrigal.itch.io/captain-cutters-treasureWe start off the game in the broom closet, with a brimming headache.
EDIT: Messed up the thread:
https://chaos.social/@root42/117019151971383570 -
IkeC, Autor des prämierten Spiels #Staub, hat eine deutsche Version der #PunyInform-Bibliothek angefangen: https://github.com/IkeC/PunyInformDE. PunyInform ist eine alternative Bibliothek für #Inform6 zum Schreiben von #Textadventures. Diese passen dann üblicherweise, anders als bei der Standardbibliothek, auf so ziemlich jedes klassische 8-Bit-System.
Gerne mal reinschauen!
-
IkeC, Autor des prämierten Spiels #Staub, hat eine deutsche Version der #PunyInform-Bibliothek angefangen: https://github.com/IkeC/PunyInformDE. PunyInform ist eine alternative Bibliothek für #Inform6 zum Schreiben von #Textadventures. Diese passen dann üblicherweise, anders als bei der Standardbibliothek, auf so ziemlich jedes klassische 8-Bit-System.
Gerne mal reinschauen!
-
IkeC, Autor des prämierten Spiels #Staub, hat eine deutsche Version der #PunyInform-Bibliothek angefangen: https://github.com/IkeC/PunyInformDE. PunyInform ist eine alternative Bibliothek für #Inform6 zum Schreiben von #Textadventures. Diese passen dann üblicherweise, anders als bei der Standardbibliothek, auf so ziemlich jedes klassische 8-Bit-System.
Gerne mal reinschauen!
-
IkeC, Autor des prämierten Spiels #Staub, hat eine deutsche Version der #PunyInform-Bibliothek angefangen: https://github.com/IkeC/PunyInformDE. PunyInform ist eine alternative Bibliothek für #Inform6 zum Schreiben von #Textadventures. Diese passen dann üblicherweise, anders als bei der Standardbibliothek, auf so ziemlich jedes klassische 8-Bit-System.
Gerne mal reinschauen!
-
IkeC, Autor des prämierten Spiels #Staub, hat eine deutsche Version der #PunyInform-Bibliothek angefangen: https://github.com/IkeC/PunyInformDE. PunyInform ist eine alternative Bibliothek für #Inform6 zum Schreiben von #Textadventures. Diese passen dann üblicherweise, anders als bei der Standardbibliothek, auf so ziemlich jedes klassische 8-Bit-System.
Gerne mal reinschauen!
-
Los juegos de #SpringThing2026 están ya disponibles, y este año hay un juego inspirado en El nombre de la rosa, que podría pasar por una "Abadía del Crimen" en aventura de texto.
Está realizado en #PunyInform, y es, posiblemente, el juego más grande creado para este sistema.
-
Los juegos de #SpringThing2026 están ya disponibles, y este año hay un juego inspirado en El nombre de la rosa, que podría pasar por una "Abadía del Crimen" en aventura de texto.
Está realizado en #PunyInform, y es, posiblemente, el juego más grande creado para este sistema.
-
Los juegos de #SpringThing2026 están ya disponibles, y este año hay un juego inspirado en El nombre de la rosa, que podría pasar por una "Abadía del Crimen" en aventura de texto.
Está realizado en #PunyInform, y es, posiblemente, el juego más grande creado para este sistema.
-
Los juegos de #SpringThing2026 están ya disponibles, y este año hay un juego inspirado en El nombre de la rosa, que podría pasar por una "Abadía del Crimen" en aventura de texto.
Está realizado en #PunyInform, y es, posiblemente, el juego más grande creado para este sistema.
-
Los juegos de #SpringThing2026 están ya disponibles, y este año hay un juego inspirado en El nombre de la rosa, que podría pasar por una "Abadía del Crimen" en aventura de texto.
Está realizado en #PunyInform, y es, posiblemente, el juego más grande creado para este sistema.
-
The next thing I've been tackling has been the verb/grammar code. The goal here is to represent the logic/data structures from this section of the #PunyInform library: https://github.com/johanberntsson/PunyInform/blob/master/lib/grammar.h#L7-L225
It looks like a combinatorial explosion of possible prepositions in a large space of possible sequences, along with placeholders for object search conditionals. It feels like the kind of thing that needs a lot of core just to map it all out. Sure, I have my input words compressed to single 12-bit integers, but there's a lot of repetition in the source there and it seems like a mess to represent.
I made a list of all the tokens in this thing, and came up with 32 values (including a null). Well, that's neat! I could decide that if the most significant bit of a tanner is `0`, it's a lookup into a table of 12-bit values. I have some space left in my compression scheme for ideas like "object in scope" or "object in inventory" (which can gobble multiple words), so I can handle common cases like `INVENTORY`, or `GET LAMP`, or `TURN ON LAMP`. I map the `TURN` verb into a pair of indices for `ON` and *noun*, pointing out to our equivalent of the Puny `SwitchOn` function in the #PDP8 game code.
Okay, but what about all that `'in'/'into'/'inside'/'on'/'onto'` stuff? Well, If the tanner's most significant bit is `1`, then I treat it as a sort of pointer into the second half of my grammar index. So that might look like this:
37. `IN`, `INTO`
38. `INSIDE`, *37*
39. `ON`, `ONTO`
40. *38*, *39*So I might have `GET` mapping a grammar word of [*40*,*noun*] to the `ENTER` procedure, so that `GET INSIDE BICYCLE` and `GET ONTO BICYCLE` will both call the same code. The grammars use 3 words per mapping, and make use of a table of 64 words. This feels more comfortable for the type of system I'm writing here.
Yes, this is just #LISP cons cells, and I love that.
Now I just need to write all this...
-
The next thing I've been tackling has been the verb/grammar code. The goal here is to represent the logic/data structures from this section of the #PunyInform library: https://github.com/johanberntsson/PunyInform/blob/master/lib/grammar.h#L7-L225
It looks like a combinatorial explosion of possible prepositions in a large space of possible sequences, along with placeholders for object search conditionals. It feels like the kind of thing that needs a lot of core just to map it all out. Sure, I have my input words compressed to single 12-bit integers, but there's a lot of repetition in the source there and it seems like a mess to represent.
I made a list of all the tokens in this thing, and came up with 32 values (including a null). Well, that's neat! I could decide that if the most significant bit of a tanner is `0`, it's a lookup into a table of 12-bit values. I have some space left in my compression scheme for ideas like "object in scope" or "object in inventory" (which can gobble multiple words), so I can handle common cases like `INVENTORY`, or `GET LAMP`, or `TURN ON LAMP`. I map the `TURN` verb into a pair of indices for `ON` and *noun*, pointing out to our equivalent of the Puny `SwitchOn` function in the #PDP8 game code.
Okay, but what about all that `'in'/'into'/'inside'/'on'/'onto'` stuff? Well, If the tanner's most significant bit is `1`, then I treat it as a sort of pointer into the second half of my grammar index. So that might look like this:
37. `IN`, `INTO`
38. `INSIDE`, *37*
39. `ON`, `ONTO`
40. *38*, *39*So I might have `GET` mapping a grammar word of [*40*,*noun*] to the `ENTER` procedure, so that `GET INSIDE BICYCLE` and `GET ONTO BICYCLE` will both call the same code. The grammars use 3 words per mapping, and make use of a table of 64 words. This feels more comfortable for the type of system I'm writing here.
Yes, this is just #LISP cons cells, and I love that.
Now I just need to write all this...
-
The next thing I've been tackling has been the verb/grammar code. The goal here is to represent the logic/data structures from this section of the #PunyInform library: https://github.com/johanberntsson/PunyInform/blob/master/lib/grammar.h#L7-L225
It looks like a combinatorial explosion of possible prepositions in a large space of possible sequences, along with placeholders for object search conditionals. It feels like the kind of thing that needs a lot of core just to map it all out. Sure, I have my input words compressed to single 12-bit integers, but there's a lot of repetition in the source there and it seems like a mess to represent.
I made a list of all the tokens in this thing, and came up with 32 values (including a null). Well, that's neat! I could decide that if the most significant bit of a tanner is `0`, it's a lookup into a table of 12-bit values. I have some space left in my compression scheme for ideas like "object in scope" or "object in inventory" (which can gobble multiple words), so I can handle common cases like `INVENTORY`, or `GET LAMP`, or `TURN ON LAMP`. I map the `TURN` verb into a pair of indices for `ON` and *noun*, pointing out to our equivalent of the Puny `SwitchOn` function in the #PDP8 game code.
Okay, but what about all that `'in'/'into'/'inside'/'on'/'onto'` stuff? Well, If the tanner's most significant bit is `1`, then I treat it as a sort of pointer into the second half of my grammar index. So that might look like this:
37. `IN`, `INTO`
38. `INSIDE`, *37*
39. `ON`, `ONTO`
40. *38*, *39*So I might have `GET` mapping a grammar word of [*40*,*noun*] to the `ENTER` procedure, so that `GET INSIDE BICYCLE` and `GET ONTO BICYCLE` will both call the same code. The grammars use 3 words per mapping, and make use of a table of 64 words. This feels more comfortable for the type of system I'm writing here.
Yes, this is just #LISP cons cells, and I love that.
Now I just need to write all this...
-
The next thing I've been tackling has been the verb/grammar code. The goal here is to represent the logic/data structures from this section of the #PunyInform library: https://github.com/johanberntsson/PunyInform/blob/master/lib/grammar.h#L7-L225
It looks like a combinatorial explosion of possible prepositions in a large space of possible sequences, along with placeholders for object search conditionals. It feels like the kind of thing that needs a lot of core just to map it all out. Sure, I have my input words compressed to single 12-bit integers, but there's a lot of repetition in the source there and it seems like a mess to represent.
I made a list of all the tokens in this thing, and came up with 32 values (including a null). Well, that's neat! I could decide that if the most significant bit of a tanner is `0`, it's a lookup into a table of 12-bit values. I have some space left in my compression scheme for ideas like "object in scope" or "object in inventory" (which can gobble multiple words), so I can handle common cases like `INVENTORY`, or `GET LAMP`, or `TURN ON LAMP`. I map the `TURN` verb into a pair of indices for `ON` and *noun*, pointing out to our equivalent of the Puny `SwitchOn` function in the #PDP8 game code.
Okay, but what about all that `'in'/'into'/'inside'/'on'/'onto'` stuff? Well, If the tanner's most significant bit is `1`, then I treat it as a sort of pointer into the second half of my grammar index. So that might look like this:
37. `IN`, `INTO`
38. `INSIDE`, *37*
39. `ON`, `ONTO`
40. *38*, *39*So I might have `GET` mapping a grammar word of [*40*,*noun*] to the `ENTER` procedure, so that `GET INSIDE BICYCLE` and `GET ONTO BICYCLE` will both call the same code. The grammars use 3 words per mapping, and make use of a table of 64 words. This feels more comfortable for the type of system I'm writing here.
Yes, this is just #LISP cons cells, and I love that.
Now I just need to write all this...
-
The next thing I've been tackling has been the verb/grammar code. The goal here is to represent the logic/data structures from this section of the #PunyInform library: https://github.com/johanberntsson/PunyInform/blob/master/lib/grammar.h#L7-L225
It looks like a combinatorial explosion of possible prepositions in a large space of possible sequences, along with placeholders for object search conditionals. It feels like the kind of thing that needs a lot of core just to map it all out. Sure, I have my input words compressed to single 12-bit integers, but there's a lot of repetition in the source there and it seems like a mess to represent.
I made a list of all the tokens in this thing, and came up with 32 values (including a null). Well, that's neat! I could decide that if the most significant bit of a tanner is `0`, it's a lookup into a table of 12-bit values. I have some space left in my compression scheme for ideas like "object in scope" or "object in inventory" (which can gobble multiple words), so I can handle common cases like `INVENTORY`, or `GET LAMP`, or `TURN ON LAMP`. I map the `TURN` verb into a pair of indices for `ON` and *noun*, pointing out to our equivalent of the Puny `SwitchOn` function in the #PDP8 game code.
Okay, but what about all that `'in'/'into'/'inside'/'on'/'onto'` stuff? Well, If the tanner's most significant bit is `1`, then I treat it as a sort of pointer into the second half of my grammar index. So that might look like this:
37. `IN`, `INTO`
38. `INSIDE`, *37*
39. `ON`, `ONTO`
40. *38*, *39*So I might have `GET` mapping a grammar word of [*40*,*noun*] to the `ENTER` procedure, so that `GET INSIDE BICYCLE` and `GET ONTO BICYCLE` will both call the same code. The grammars use 3 words per mapping, and make use of a table of 64 words. This feels more comfortable for the type of system I'm writing here.
Yes, this is just #LISP cons cells, and I love that.
Now I just need to write all this...
-
The latest RetroAdventurers is out, in which we review `10 CAVE` Adventure, Young Arthur, and PunyJam #1 winner Captain Cutter's Treasure.
This was an older recording, so the sound quality may be a small step back from our current standards. We recorded it as a "buffer" back when we thought some light fare without news or mail might keep us going through a dry spell of recording, only to realise that we could double our recording schedule without trouble!
https://fed.brid.gy/r/https://bsky.app/profile/did:plc:bjpufa66d36itb5rzn3p6vrn/post/3lujfywb2zk2p #RetroComputing #InteractiveFiction #PunyInform
-
The latest RetroAdventurers is out, in which we review `10 CAVE` Adventure, Young Arthur, and PunyJam #1 winner Captain Cutter's Treasure.
This was an older recording, so the sound quality may be a small step back from our current standards. We recorded it as a "buffer" back when we thought some light fare without news or mail might keep us going through a dry spell of recording, only to realise that we could double our recording schedule without trouble!
https://fed.brid.gy/r/https://bsky.app/profile/did:plc:bjpufa66d36itb5rzn3p6vrn/post/3lujfywb2zk2p #RetroComputing #InteractiveFiction #PunyInform
-
The latest RetroAdventurers is out, in which we review `10 CAVE` Adventure, Young Arthur, and PunyJam #1 winner Captain Cutter's Treasure.
This was an older recording, so the sound quality may be a small step back from our current standards. We recorded it as a "buffer" back when we thought some light fare without news or mail might keep us going through a dry spell of recording, only to realise that we could double our recording schedule without trouble!
https://fed.brid.gy/r/https://bsky.app/profile/did:plc:bjpufa66d36itb5rzn3p6vrn/post/3lujfywb2zk2p #RetroComputing #InteractiveFiction #PunyInform
-
The latest RetroAdventurers is out, in which we review `10 CAVE` Adventure, Young Arthur, and PunyJam #1 winner Captain Cutter's Treasure.
This was an older recording, so the sound quality may be a small step back from our current standards. We recorded it as a "buffer" back when we thought some light fare without news or mail might keep us going through a dry spell of recording, only to realise that we could double our recording schedule without trouble!
https://fed.brid.gy/r/https://bsky.app/profile/did:plc:bjpufa66d36itb5rzn3p6vrn/post/3lujfywb2zk2p #RetroComputing #InteractiveFiction #PunyInform
-
The latest RetroAdventurers is out, in which we review `10 CAVE` Adventure, Young Arthur, and PunyJam #1 winner Captain Cutter's Treasure.
This was an older recording, so the sound quality may be a small step back from our current standards. We recorded it as a "buffer" back when we thought some light fare without news or mail might keep us going through a dry spell of recording, only to realise that we could double our recording schedule without trouble!
https://fed.brid.gy/r/https://bsky.app/profile/did:plc:bjpufa66d36itb5rzn3p6vrn/post/3lujfywb2zk2p #RetroComputing #InteractiveFiction #PunyInform
-
CW: A1RL0CK Spoilers
We progressed quite a bit today in #a1rl0ck. The story is really good, the sense of discovery is suitable and creates quite a bit of suspense. But… little imperfections in the prose and gameplay often break the immersion. We managed to get to the upper food court level and there we find a dead body. And a sinister figure. Or is it both the same…? Writing like this confused us at a couple of points in the game. What do you think?
#interactivefiction #PunyInform -
CW: A1RL0CK Spoilers
We progressed quite a bit today in #a1rl0ck. The story is really good, the sense of discovery is suitable and creates quite a bit of suspense. But… little imperfections in the prose and gameplay often break the immersion. We managed to get to the upper food court level and there we find a dead body. And a sinister figure. Or is it both the same…? Writing like this confused us at a couple of points in the game. What do you think?
#interactivefiction #PunyInform -
CW: A1RL0CK Spoilers
We progressed quite a bit today in #a1rl0ck. The story is really good, the sense of discovery is suitable and creates quite a bit of suspense. But… little imperfections in the prose and gameplay often break the immersion. We managed to get to the upper food court level and there we find a dead body. And a sinister figure. Or is it both the same…? Writing like this confused us at a couple of points in the game. What do you think?
#interactivefiction #PunyInform -
CW: A1RL0CK Spoilers
We progressed quite a bit today in #a1rl0ck. The story is really good, the sense of discovery is suitable and creates quite a bit of suspense. But… little imperfections in the prose and gameplay often break the immersion. We managed to get to the upper food court level and there we find a dead body. And a sinister figure. Or is it both the same…? Writing like this confused us at a couple of points in the game. What do you think?
#interactivefiction #PunyInform -
CW: A1RL0CK Spoilers
We progressed quite a bit today in #a1rl0ck. The story is really good, the sense of discovery is suitable and creates quite a bit of suspense. But… little imperfections in the prose and gameplay often break the immersion. We managed to get to the upper food court level and there we find a dead body. And a sinister figure. Or is it both the same…? Writing like this confused us at a couple of points in the game. What do you think?
#interactivefiction #PunyInform -
After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.
The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.
To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.
What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!
More details in the devlog and downloads can be found at:
#TRS80 versions https://sijnstra.itch.io/m4zvm
#CPM #CPM80 versions https://sijnstra.itch.io/vezza -
After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.
The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.
To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.
What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!
More details in the devlog and downloads can be found at:
#TRS80 versions https://sijnstra.itch.io/m4zvm
#CPM #CPM80 versions https://sijnstra.itch.io/vezza -
After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.
The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.
To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.
What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!
More details in the devlog and downloads can be found at:
#TRS80 versions https://sijnstra.itch.io/m4zvm
#CPM #CPM80 versions https://sijnstra.itch.io/vezza -
After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.
The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.
To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.
What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!
More details in the devlog and downloads can be found at:
#TRS80 versions https://sijnstra.itch.io/m4zvm
#CPM #CPM80 versions https://sijnstra.itch.io/vezza -
After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.
The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.
To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.
What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!
More details in the devlog and downloads can be found at:
#TRS80 versions https://sijnstra.itch.io/m4zvm
#CPM #CPM80 versions https://sijnstra.itch.io/vezza -
🖥️ ⌨️ Some students and I, with a tremendous amount of advice, assistance, guidance, and wizardry from @spacehobo , have created an old-school text adventure to help teach about the importance of physical security in the context of cybersecurity. You can play it here:
https://lars.d.umn.edu/one_night_in_sf/
We really cannot thank @spacehobo enough for his ideas, help and contributions! 🙏 We could not have done it without him.
We'd love for you to test it out and send feedback to [email protected] or create issues at https://github.com/UMDLARS/one_night_in_sf/issues. #if #InteractiveFiction #security #inform #PunyInform
-
🖥️ ⌨️ Some students and I, with a tremendous amount of advice, assistance, guidance, and wizardry from @spacehobo , have created an old-school text adventure to help teach about the importance of physical security in the context of cybersecurity. You can play it here:
https://lars.d.umn.edu/one_night_in_sf/
We really cannot thank @spacehobo enough for his ideas, help and contributions! 🙏 We could not have done it without him.
We'd love for you to test it out and send feedback to [email protected] or create issues at https://github.com/UMDLARS/one_night_in_sf/issues. #if #InteractiveFiction #security #inform #PunyInform
-
🖥️ ⌨️ Some students and I, with a tremendous amount of advice, assistance, guidance, and wizardry from @spacehobo , have created an old-school text adventure to help teach about the importance of physical security in the context of cybersecurity. You can play it here:
https://lars.d.umn.edu/one_night_in_sf/
We really cannot thank @spacehobo enough for his ideas, help and contributions! 🙏 We could not have done it without him.
We'd love for you to test it out and send feedback to [email protected] or create issues at https://github.com/UMDLARS/one_night_in_sf/issues. #if #InteractiveFiction #security #inform #PunyInform
-
🖥️ ⌨️ Some students and I, with a tremendous amount of advice, assistance, guidance, and wizardry from @spacehobo , have created an old-school text adventure to help teach about the importance of physical security in the context of cybersecurity. You can play it here:
https://lars.d.umn.edu/one_night_in_sf/
We really cannot thank @spacehobo enough for his ideas, help and contributions! 🙏 We could not have done it without him.
We'd love for you to test it out and send feedback to [email protected] or create issues at https://github.com/UMDLARS/one_night_in_sf/issues. #if #InteractiveFiction #security #inform #PunyInform
-
🖥️ ⌨️ Some students and I, with a tremendous amount of advice, assistance, guidance, and wizardry from @spacehobo , have created an old-school text adventure to help teach about the importance of physical security in the context of cybersecurity. You can play it here:
https://lars.d.umn.edu/one_night_in_sf/
We really cannot thank @spacehobo enough for his ideas, help and contributions! 🙏 We could not have done it without him.
We'd love for you to test it out and send feedback to [email protected] or create issues at https://github.com/UMDLARS/one_night_in_sf/issues. #if #InteractiveFiction #security #inform #PunyInform
-
Noticias: Versión 5.5 de PunyInform #Aventuradetexto #Commodore64 #DaRe #Parser #PunyInform #retro https://caad.club/version-5-5-de-punyinform
-
Noticias: Versión 5.5 de PunyInform #Aventuradetexto #Commodore64 #DaRe #Parser #PunyInform #retro https://caad.club/version-5-5-de-punyinform
-
Noticias: Versión 5.5 de PunyInform #Aventuradetexto #Commodore64 #DaRe #Parser #PunyInform #retro https://caad.club/version-5-5-de-punyinform
-
Noticias: Versión 5.5 de PunyInform #Aventuradetexto #Commodore64 #DaRe #Parser #PunyInform #retro https://caad.club/version-5-5-de-punyinform
-
Two important #interactivefiction news in @MichaelKlamerus's latest blog post (https://virtualmoose.org/2024/06/07/indie-game-roundup-june-7-2024/)
- New commercial retro #PunyInform #parser text adventure, "The Zen of Kayaking" https://pixel-turkey.itch.io/the-zen-of-kayaking
- And the awesome Grim Baccaris (from the Twine Grimoires) has released some #Twine templates! https://gcbaccaris.itch.io/templates
-
Two important #interactivefiction news in @MichaelKlamerus's latest blog post (https://virtualmoose.org/2024/06/07/indie-game-roundup-june-7-2024/)
- New commercial retro #PunyInform #parser text adventure, "The Zen of Kayaking" https://pixel-turkey.itch.io/the-zen-of-kayaking
- And the awesome Grim Baccaris (from the Twine Grimoires) has released some #Twine templates! https://gcbaccaris.itch.io/templates
-
Two important #interactivefiction news in @MichaelKlamerus's latest blog post (https://virtualmoose.org/2024/06/07/indie-game-roundup-june-7-2024/)
- New commercial retro #PunyInform #parser text adventure, "The Zen of Kayaking" https://pixel-turkey.itch.io/the-zen-of-kayaking
- And the awesome Grim Baccaris (from the Twine Grimoires) has released some #Twine templates! https://gcbaccaris.itch.io/templates
-
Two important #interactivefiction news in @MichaelKlamerus's latest blog post (https://virtualmoose.org/2024/06/07/indie-game-roundup-june-7-2024/)
- New commercial retro #PunyInform #parser text adventure, "The Zen of Kayaking" https://pixel-turkey.itch.io/the-zen-of-kayaking
- And the awesome Grim Baccaris (from the Twine Grimoires) has released some #Twine templates! https://gcbaccaris.itch.io/templates
-
Noticias: Fredrik Ramsberg actualiza Ozmoo Online #Acorn #Commodore #FredrikRamsberg #Infocom #Ozmoo #PunyInform https://caad.club/fredrik-ramsberg-actualiza-ozmoo-online
-
Noticias: Fredrik Ramsberg actualiza Ozmoo Online #Acorn #Commodore #FredrikRamsberg #Infocom #Ozmoo #PunyInform https://caad.club/fredrik-ramsberg-actualiza-ozmoo-online
-
Noticias: Fredrik Ramsberg actualiza Ozmoo Online #Acorn #Commodore #FredrikRamsberg #Infocom #Ozmoo #PunyInform https://caad.club/fredrik-ramsberg-actualiza-ozmoo-online
-
Noticias: Fredrik Ramsberg actualiza Ozmoo Online #Acorn #Commodore #FredrikRamsberg #Infocom #Ozmoo #PunyInform https://caad.club/fredrik-ramsberg-actualiza-ozmoo-online
-
Noticias: Echoes Of The Future, busca «feedback» #DaReInt #AmstradCPC #Commodore64 #EchoesOfTheFuture #IndieGameDev #itch #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-busca-feedback
-
Noticias: Echoes Of The Future, busca «feedback» #DaReInt #AmstradCPC #Commodore64 #EchoesOfTheFuture #IndieGameDev #itch #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-busca-feedback
-
Noticias: Echoes Of The Future, busca «feedback» #DaReInt #AmstradCPC #Commodore64 #EchoesOfTheFuture #IndieGameDev #itch #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-busca-feedback
-
Noticias: Echoes Of The Future, busca «feedback» #DaReInt #AmstradCPC #Commodore64 #EchoesOfTheFuture #IndieGameDev #itch #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-busca-feedback
-
Noticias: Echoes Of The Future, progresa adecuadamente #DaReInt #AmstradCPC #AmstradCPC #Commodore64 #EchoesOfTheFuture #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-progresa-adecuadamente
-
Noticias: Echoes Of The Future, progresa adecuadamente #DaReInt #AmstradCPC #AmstradCPC #Commodore64 #EchoesOfTheFuture #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-progresa-adecuadamente
-
Noticias: Echoes Of The Future, progresa adecuadamente #DaReInt #AmstradCPC #AmstradCPC #Commodore64 #EchoesOfTheFuture #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-progresa-adecuadamente
-
Noticias: Echoes Of The Future, progresa adecuadamente #DaReInt #AmstradCPC #AmstradCPC #Commodore64 #EchoesOfTheFuture #PunyInform #ZXSpectrum https://caad.club/echoes-of-the-future-progresa-adecuadamente