c.im is one of the many independent Mastodon servers you can use to participate in the fediverse.
C.IM is a general, mainly English-speaking Mastodon instance.

Server stats:

2.9K
active users

#ultima

4 posts4 participants0 posts today

I have been restructuring Richard Garriott's DND1 code that was written in BASIC. The old kind of BASIC where you had line numbers and did a lot of GOTO a line number.

It is fascinating trying to move it around with more modern eyes and years of programming dogma.

The code only has the concept of global variables. Every variable you make is then in the global space.

You can reuse a bit of code anywhere by just doing a GOTO line number. But it makes it very difficult to reason about because you might think of a stack of lines as a function and want to group them together, but some code somewhere else might just jump right into the middle of it!

Some bit of code might rely on some variable from somwhere else but it is difficult to know if some other bit of code is clobbering it.

Anyhow, this is the restructured version I put together.

codeberg.org/random-wizard/dnd

I moved things into GOSUB sections. Each GOSUB gets 1000 lines (usually it goes by 10s so only 100 lines) and the last line always ends in 999 and is a RETURN. A REM SUBROUTINE means nothing will GOTO in the middle of it.

This way it sort of acts like a traditional function. Still does not have arguments though.

I wonder if there are any companies out there looking for BASIC programmers.

#crpg#ultima#basic

Latest titles joining the #GOG Preservation Program:

💜 F.E.A.R. Platinum

💜 #SilentHill 4: The Room

💜 #Fallout 2

💜 #DeusEx GOTY Ed.

💜 #AloneInTheDark 1, 2 and 3

💜 #VampireTheMasquerade - Redemption

💜 #Ultima Series (from 1-8)

💜 #JaggedAliance 2

💜 #WingCommander 1 + 2

💜 #TombRaider games (Anniversary, Legend, Underworld)

...and more besides these!

The whole announcement video made by GOG is here, and you should 𝘥𝘦𝘧𝘪𝘯𝘪𝘵𝘦𝘭𝘺 watch it, its so well made:

youtube.com/watch?v=FUZPtLEu2yY

I think I have found a programming language that hurts my brain more than Perl.

codeberg.org/random-wizard/dnd

I took Richard Garriott's BASIC code from 1977 and did as little to it as I could to get it to work with Applesoft BASIC. You can copy the above code and paste into the Applesoft BASIC in Javascript emulator.

inexorabletash.github.io/jsbas

Do not ask for instructions!
And you have to name your character
SHAVS

Speaking of BASIC. Someone should write a code linter for BASIC. It could check for errant GOTOs and the like.

#dnd#rpg#osr

i'm a month late to this news - but, unbelievably, dominus found the Ultima VIII Pagan: Lost Vale expansion usecode on a diskette!

it's not playable without the missing art/statics sadly, but that sure answers a lot of questions many of us have had about the source for the past 30 years.

ultimacodex.com/2025/02/a-look

👏

The Ultima Codex · A Look at the Usecode for “Ultima 8: The Lost Vale”An analysis of the plot of “Ultima 8: The Lost Vale”, based on newly-found usecode for the cancelled expansion.

Alright, done a by-hand compile of Nuvie from the GitHub version, because it's easier to use the modern style open world map view in this one.

However, the instructions on GitHub don't seem to be right, so here you go. This is on Debian-based Raspberry Pi OS running on aarch64 hardware, but the same should work on any standard Linux install. You'll might need to install cmake and whatever your distro's build-essentials package is.

You'll need SDL2 and its libraries installed for this.

git clone github.com/nuvie/nuvie.git
cd nuvie
mkdir build
cd build
cmake ../
make

You can optionally make install after this, but I just ran it from the build path.

your .nuvierc config file is made at the root of your home directory

To make it live in large window on a 1920x1080 display (alt+enter for fullscreen), and force it into New mode, which replaces the parchment viewports with an Ultima 7 style map and interface windows, I changed the following settings:

<scale_factor>4</scale_factor> <game_style>new</game_style>

Other game style options are original and original+ (which removes some but not all parchment borders to expand the map).

Setting use new dolls to yes improves paperdoll handling in new mode
<use_new_dolls>yes</use_new_dolls>

I also downloaded extracted and copied the GOG version of Ultima VI to the path where I built nuvie, updating the config file with the following hard paths:

<datadir>/home/kg/Software/nuvie/data</datadir>
\ /home/kg/Software/nuvie/ultima6

Downloaded the offline installer from
gog.com/en/game/ultima_456

As discussed earlier, once you've grabbed U6, stick it in a directory called ultima6:
sudo apt install innoextract
innoextract setup_ultima_vi_-the_false_prophet_1.0_cs(28045).exe

After character creation, I'm looking at .nuvierc's built in preferred gender and character portrait settings, although this might only work for new games that skip the intro (and thus, potentially, character creation).
<gender>1</gender>

If you'd rather try hex editing the nuvie save format, savegames by default live in the hidden .nuvie directory of your home directory. Hard path looks like this for me:

/home/kg/.nuvie/savegames

Don't forget to click Introduction on the main menu and watch that before you do character creation. And make sure to put all of your party members into Command mode for true turn-based combat.

@eniko this is your damn fault by the way - your urge to make an Ultima-like has definited stirred a need in me.

After nearly 35 years, it’s time to go back to the Valley of Eodon. 🦖

My father brought back an Origin System demo disk from the 1990 Las Vegas CES and I was mesmerized by the non-interactive demos announcing Savage Empire and Wing Commander. I spent a good amount of my money to buy them when the became available in France.

Unfortunately I was a bit young for the Worlds of Ultima. And the lack of a French translation did not help 😅

Today, I hope I’m ready for the challenge 🙂

a few years ago i bought a box of old PC games locally.

one of the games was Ultima V.

today i finally had a chance to go through its contents, and inside i found a thick coil notebook, full of notes, written by its owner "Brent" about 30 years earlier.

he judiciously took notes on every location, npc, spell, reagent and quest in the game.

here's to you brent 🍻

i absolutely love these very personal ephemera i sometimes find in old games.