Microsoft Ends the Bethesda Launcher

Why yes, I do live in a cave!

Although I only got this for Fallout 76, back after the discounts started after launch:

So it doesn’t mean a heck of a lot to me. And they did a Fallout 76 migration a while back, and the rest was just freebies given out for whatever reason. Oh well. Steam, love them or hate them kills another single vendor pointless storefront.

Nothing

I’m not sure why but I seem to be getting pulled into the ZX spectrum. Maybe it’s because I’ve yet to have seen one, and find it interesting about this massive parallel space I knew nothing of.

I’d found this review of the game, by sinc LAIR, which goes over a bit of history behind this port of the game. Very cool stuff, but for non русский speakers like me, be sure to turn on the auto translated subtitles!

The game is for sale for a mere €3 zxonline.net. One thing I had issues with, is because it’s Russian, normal Pay Pal blocks the transaction of account to account, so you have to use incognito mode, and tell Pay Pal to process it as credit card and it’ll work fine. Keeping in mind since Pay Pal does the CC charge, your # never goes to Russia. And it’s a damned shame, it’s not like ever Russian hacker is all about online crimes, some just want to make cool games.

Game play is challenging as hell! It’s very much a ‘one touch and you are dead’ game. I cheated and uses save states from the EmuZWin emulator.

ABSOLUTELY GET A JOYSTICK!

I don’t know why I was playing with the keyboard, holy crap don’t do that, don’t waste your time!

Would I recommend nothing for the ZX Spectrum 128k? Absolutely. It’s totally worth the €3, you can feel the love in this game!

sinc LAIR is going to have a live stream of it in a few hours, so I can see how to get past the spinning monster thing on level 2. Maybe I’ll post some video of me constantly dying.

PETSCII Robots released for the ZX Spectrum

PETSCII Robots title

So yeah on the surface, it’s an 8 bit game on another platform. Not that exciting but this isn’t a 6502, the Spectrum is a Z80! So yes it’s been manually ported by mr287cc with music from Shiru.

faux petscii mode

So this is pretty cool watching the game break out of the 6502 that spawned it. So overall yeah, it’s the same game, but new platform. And the first image is the traditional game, which works fine, but where would be the fun in that? Instead you get a whopping 4 versions of the game, along with a program that plays all the sountracks, a full 184kb worth of fun. I suspect it’s a full tapes worth.

Gripes on strange and foreign platforms…

The biggest and weirdest thing to me is loading the tape files into an emulator. I have to admit I never even heard of a Spectrum until college, and it was largely that it’d been emulated better before anything Commodore, and that it too had an extensive (although 100% tape based) library, which really restricted things like RGP’s and Adventure games, having to run from the incredibly limited 8bit ram.

Anyways to load from tape the command is:

LOAD "".

But the spectrum doesn’t have a Microsoft Basic, rather you type in J for the load command. Yes. J.

Spectrum Keyboard matrix

I had to google around a fair bit to find this, butt here is a keyboard matrix.

The P key

Yes seriously. And because it’s the most pressed key, many of them are impossible to tell from images that they have the double quote. Also it’s a “symbol shift” key so in emulators it maybe a control or alt key, so it’s J CTRL+P CTRL+P, then play on your virtual tape deck and listen to the screeching data (just like a modem). The game loads in a minute or so, and off you go!

The Microbots image

Adding to the keyboard fun, this is the game keyboard layout:

So it’s not too bad.

Colour Micro Robots banner

Is it worth it?

Absolutely! You do get several versions for your $10, and the ZX-Microbots version is the best by far, with music, and of course a high resolution screen letting you see far more of the action!

I’ve tried it in a bunch of emulators, and it works fine, so compatibility seems to be very good, but I don’t have any hardware to run it native. You do get WAV & TAP files in the sizeable download, along with PDF’s of the manuals. I haven’t seen anything about mastering tapes, so I don’t think there will be a physical release.

You can pick it up on David’s site for $10 USD. It’s totally worth it in my opinion.

My disclosure is that I’ve bought it for the Pet/c64 twice (once by accident), ZX and Amiga, 100% on my own money.

68000/Amiga

As a bonus non 6502, there is also an Amiga version, which sounds great, plays fine, but compared to the Spectrum version, it just feels cramped.

32016 stand alone planetfall!

InfoTaskForce’87 running on a simple NS32016 emulator

What is it?

It sure may not look like much but it was an adventure getting here.

First, what is it? Well it’s the very simple NS32016 from here, with a few minor changes. I expanded the RAM from 256kb to a whopping 8MB. Then I added simple character I/O allowing me to print messages to the screen. Next looking at the toolchain page, I used my old Linux to Windows GCC 4 cross compiler to build the appropriate Canadian cross compiler to the NS3216.

Building the tools

A while back, I had built a cross compiler from Linux to Windows using GCC 4.1 as the basis as it was the last version that didn’t have massive external dependencies. NS32016 support was dropped some time in the late 3.x or early 4.x GCC so it means we need to go old anyways. I arbitrary picked GCC 2.8.1 for this build, while using the recommended Binutils 2.27

I cheated and just downloaded my existing linux-minw32.7z cross compiler as I didn’t feel like rebuilding everything again, although it is all in the Building a MIPS Compiler for Windows on a Linux VM! article. I also used an old Linux to Linux i586 32bit compiler (back from the OSKit build!) although you can use your hosts as well.

configuring Binutils is pretty simple like this:

./configure --prefix=/cross --target=ns32k-pc532-netbsd --host=i686-mingw32 --build=i586-linux

You can try omitting the –build portion, Debian GNU Linux 10 seemed okay with Gcc 8 as the default system compiler.

configuring GCC 2.8.1 was pretty similar:

./configure --target=ns32k-pc532-netbsd --prefix=/cross --disable-libssp --build=i586-linux --host=i686-mingw32

GCC 2.8.1 doesn’t quite know what we are doing so there is some flags we need to run off in auto-config.h namely

  • #define HAVE_BCMP 1
  • #define HAVE_BCOPY 1
  • #define HAVE_BZERO 1
  • #define HAVE_INDEX 1
  • #define HAVE_KILL 1
  • #define HAVE_RINDEX 1
  • #define HAVE_SYS_RESOURCE_H 1
  • #define HAVE_SYS_TIMES_H 1

You can just comment them out, or remove those lines all together.

When it came to building GCC, I did run into issues with GCC 7/8 trying to build GCC 2.8.1. I found it much easier to either have that Linux 4.1 compiler, or if you have access to Wine or WSL you can just run the Win32 binaries for the gen phases.

./configure --prefix=/cross --target=ns32k-pc532-netbsd --host=i686-mingw32
make CC=i686-mingw32-gcc xgcc cccp cc1 cc1obj

If you can run your own Win32 exe’s on Linux it’ll run just fine using the Linux to Windows GCC 4 cross. Otherwise you will need to either patch GCC or make your own GCC 4 hosted Linux to Linux cross compiler like this:

make CC=i686-mingw32-gcc HOST_CC=i586-linux-gcc xgcc cccp cc1 cc1obj

Hopefully that worked enough, and now you have your cross compiler. Now it’s time to build libgcc1.a

cp cccp cpp.exe
cp cc1 cc1.exe
cp xgcc xgcc.exe
cp ../binutils-2.27/gas/.libs/as-new.exe as.exe
cp ../binutils-2.27/binutils/.libs/ar.exe ar
cp ../binutils-2.27/binutils/.libs/ranlib.exe ranlib
make libgcc1.a TARGET_TOOLPREFIX="./" OLDCC=./xgcc.exe

Again you really want to be able to run the resulting programs on Linux but I guess you could script it out. Naturally if you wanted to just use Linux, it’d be easier to make that cross compiler directly, although I’m not sure how much of GCC 2.8.1 I want to fight, or just get GCC 4 running on Linux and use that to port.

crt0, somewhere for C to start

As mentioned a crt0.s is missing but there was enough inspiration to come up with this:

#NO_APP
gcc_compiled.:
.text
        .align 1
.globl _start
_start:
        enter [],0
#APP
#       setting the stack 256k under 8MB
        lprd sp,0x7c0000
        jsr _main
#NO_APP
L1:
        exit []
#       setting the stack 256k under 8MB
        lprd sp,0x7c0000
        bpt
        .align 1

#does nothing
.globl ___main
___main:
        ret 0

.globl _exit
_exit:
        bpt
        ret 0

I used a bit of the C example, and added some hooks that GCC was expecting namely a __main call that is made from main before it does anything (a place to init memory perhaps?), a place to catch an explicit exit call, along with setting the stack of course.

Patching InfoTaskForce without malloc / disk access

It’s not going to win any awards, but it was really great to get it to run a simple program written in GCC. Looking for something more fun, I took the old InfoTaskForce interpreter from ’87, and dug up my modification to run on cisco routers, and cooked up this version, that adds enough of printf from Linux, a bogus malloc that just allocates from a fixed memory array (otherwise you have to actually know about your platform), and a fun trick with later binutils where you can import a binary file directly as an object!

Neat!

Since I don’t have any file I/O being able to have the game data in RAM is crucial. I tried to tweak it so you could build the same working thing on Windows (maybe others?).

So for anyone who wants to look at the standalone adventure Win32 hosted tools are here, although the emulator should be somewhat portable.

AMD64 Pinball extravaganza!

With all the talk of 64bit versions of Pinball I thought I’d share simple script to extract Pinball from an XP x64 CD-ROM so you can take it with you. It’s portable so thats nice too, although it doesn’t use any wad/pak/zip files so all the assets are loose files:

expand f:\amd64\font.da_ font.dat
expand f:\amd64\pinball.da_ pinball.dat
expand f:\amd64\pinball.ex_ pinball.exe
expand f:\amd64\pinball.in_ pinball.inf
expand f:\amd64\pinball.mi_ pinball.mid
expand f:\amd64\pinball2.mi_ pinball2.mid
expand f:\amd64\sound1.wa_ sound1.wav
expand f:\amd64\sound104.wa_ sound104.wav
expand f:\amd64\sound105.wa_ sound105.wav
expand f:\amd64\sound108.wa_ sound108.wav
expand f:\amd64\sound111.wa_ sound111.wav
expand f:\amd64\sound112.wa_ sound112.wav
expand f:\amd64\sound12.wa_ sound12.wav
expand f:\amd64\sound13.wa_ sound13.wav
expand f:\amd64\sound131.wa_ sound131.wav
expand f:\amd64\sound136.wa_ sound136.wav
expand f:\amd64\sound14.wa_ sound14.wav
expand f:\amd64\sound16.wa_ sound16.wav
expand f:\amd64\sound17.wa_ sound17.wav
expand f:\amd64\sound18.wa_ sound18.wav
expand f:\amd64\sound181.wa_ sound181.wav
expand f:\amd64\sound19.wa_ sound19.wav
expand f:\amd64\sound20.wa_ sound20.wav
expand f:\amd64\sound21.wa_ sound21.wav
expand f:\amd64\sound22.wa_ sound22.wav
expand f:\amd64\sound24.wa_ sound24.wav
expand f:\amd64\sound240.wa_ sound240.wav
expand f:\amd64\sound243.wa_ sound243.wav
expand f:\amd64\sound25.wa_ sound25.wav
expand f:\amd64\sound26.wa_ sound26.wav
expand f:\amd64\sound27.wa_ sound27.wav
expand f:\amd64\sound28.wa_ sound28.wav
expand f:\amd64\sound29.wa_ sound29.wav
expand f:\amd64\sound3.wa_ sound3.wav
expand f:\amd64\sound30.wa_ sound30.wav
expand f:\amd64\sound34.wa_ sound34.wav
expand f:\amd64\sound35.wa_ sound35.wav
expand f:\amd64\sound36.wa_ sound36.wav
expand f:\amd64\sound38.wa_ sound38.wav
expand f:\amd64\sound39.wa_ sound39.wav
expand f:\amd64\sound4.wa_ sound4.wav
expand f:\amd64\sound42.wa_ sound42.wav
expand f:\amd64\sound43.wa_ sound43.wav
expand f:\amd64\sound45.wa_ sound45.wav
expand f:\amd64\sound49.wa_ sound49.wav
expand f:\amd64\sound49d.wa_ sound49d.wav
expand f:\amd64\sound5.wa_ sound5.wav
expand f:\amd64\sound50.wa_ sound50.wav
expand f:\amd64\sound528.wa_ sound528.wav
expand f:\amd64\sound53.wa_ sound53.wav
expand f:\amd64\sound54.wa_ sound54.wav
expand f:\amd64\sound55.wa_ sound55.wav
expand f:\amd64\sound560.wa_ sound560.wav
expand f:\amd64\sound563.wa_ sound563.wav
expand f:\amd64\sound57.wa_ sound57.wav
expand f:\amd64\sound58.wa_ sound58.wav
expand f:\amd64\sound6.wa_ sound6.wav
expand f:\amd64\sound65.wa_ sound65.wav
expand f:\amd64\sound68.wa_ sound68.wav
expand f:\amd64\sound7.wa_ sound7.wav
expand f:\amd64\sound713.wa_ sound713.wav
expand f:\amd64\sound735.wa_ sound735.wav
expand f:\amd64\sound8.wa_ sound8.wav
expand f:\amd64\sound827.wa_ sound827.wav
expand f:\amd64\sound9.wa_ sound9.wav
expand f:\amd64\sound999.wa_ sound999.wav
expand f:\amd64\table.bm_ table.bmp
copy f:\amd64\WAVEMIX.inf WAVEMIX.INF

Naturally you’ll want to substitute F:\ with whatever drive letter your CD-ROM/ISO file is mounted on.

And thanks to a long needed feature in Windows 10 you can verify that yes indeed it is a 64bit version.

Isn’t that awesome?! Obviously ARM64 users are left out in the dark, as far as I know there was no ARM64 versions of Windows XP. As a matter of fact, was there any public versions of Windows XP for ARM? Naturally the Surface RT shipped with 8.0

Anyways at long last we can have our 64bit pinball despite the weird bugs, and how the plunger is mostly hidden no doubt due to yet more weird floating point/integer size inconsistencies

EA pulls Syndicate from GOG

No it’s true!

Before all the Summer stuff ended I had intended on picking up Syndicate on GOG. I don’t know why I hadn’t just bought it earlier last month but here we are. I was thinking back then there was no rush, after all the game is crazy old. But then I looked this morning, and poof it’s gone.

The killer is that on archive.org you can see it was even on sale 8th of August. So who knew this was the last chance?

I guess this means EA is doing a new Syndicate? Or they are going to start making their own retro store? Or perhaps it’s some kind of legacy divesture? I’m on the outside, but looking in something interesting happend to a much older EA published game, M.U.L.E.

Back when M.U.L.E. was published it came in this fancy almost ‘single’ vinyl sized folio. Very stylized and that 50’s into the 80’s vibe that was popular at the time.

And yes in the bottom right is the EA logo!

Now going to GOG M.U.L.E. has been released!

So what is going on with older EA titles? I didn’t see anything in the GOG forums.

I can’t possibly be the one to break this weird EA story.

Legally Buying Duke Nukem 3D in 2021

Well back in 2017 it turns out that Jordan Freeman was working a deal with 3D realms on some new series that didn’t pan out…

Jordan Freeman Group and ZOOM Platform Announce 3D Realms Partnership for Shadow Stalkers Episodic Computer and Video Game Series

However it appears that in addition to trying to get a game out, they also secured rights to resell the catalogue in some perpetual fashion. Neat

So for all the zoomer’s who’ve somehow never played the greatest boomer shooter of all time, you can score Duke Nukem 3D on the aptly named zoom-platform.com

The holy trinity!

It’s currently $4.99 USD, and it comes with all the DLC/Episodes!

Now let’s look at the infamous Megaton Edition on Steam (Yes I bought it years ago, no I didn’t hoard keys, because it didn’t feel like the game would up and disappear). So as you can see it has the addons Duke It Out in D.C., Nuclear Winter, and Caribbean: Life’s A Beach.

Megaton Edition Launcher
Steam Megaton / Atomic

And launching from Steam, you can see it’s the ATOMIC edition. So there you go, not only can you sill buy it on Zoom Platform, it has MORE content, and yes it’s not $100+++ on the open market of keys, instead it’s for normal retail sale.

Let’s look at the GRP files:

From Steam:

D:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\duke3d.grp
D:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\addons\dc\dukedc.grp
D:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\addons\nw\nwinter.grp
D:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\addons\vacation\vacation.grp
D:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\classic\DUKE3D.GRP

And MD5’s:

22b6938fe767e5cc57d1fe13080cd522 duke3d.grp
8ab2e7328db4153e4158c850de82d7c0 addons\dc\dukedc.grp
1250f83dcc3588293f0ce5c6fc701b43 addons\nw\nwinter.grp
1c105ced73b776c172593764e9d0d93e addons\vacation\vacation.grp
22b6938fe767e5cc57d1fe13080cd522 classic\DUKE3D.GRP

And Zoom Platform

C:\ZOOM PLATFORMD Realms\Duke Nukem 3D - Atomic Edition\DUKE3D.GRP
C:\ZOOM PLATFORMD Realms\Duke Nukem 3D - Atomic Edition\AddOns\DUKE!ZON.GRP
C:\ZOOM PLATFORMD Realms\Duke Nukem 3D - Atomic Edition\AddOns\DUKEDC.GRP
C:\ZOOM PLATFORMD Realms\Duke Nukem 3D - Atomic Edition\AddOns\NWINTER.GRP
C:\ZOOM PLATFORMD Realms\Duke Nukem 3D - Atomic Edition\AddOns\PENTHOUS.GRP
C:\ZOOM PLATFORMD Realms\Duke Nukem 3D - Atomic Edition\AddOns\VACATION.GRP

And MD5’s

22b6938fe767e5cc57d1fe13080cd522 DUKE3D.GRP
4cd0e3d3f170107b97aeafe4ade09ecf AddOns\DUKE!ZON.GRP
ddb7149855b0a0d0f073c3f5bedf7161 AddOns\DUKEDC.GRP
1250f83dcc3588293f0ce5c6fc701b43 AddOns\NWINTER.GRP
6a5a1505e38070ac0ab75eb60835988d AddOns\PENTHOUS.GRP
860367326139361078d0fc8cb623b548 AddOns\VACATION.GRP

Interestingly the main game is the same, but the additional levels are different. I’ll have to dig more to see what is going on. At least Nuclear Winter is the same.

Granted I’ve owned them all in some fashion over the years so I can’t even keep track of how many times I’ve bought Duke Nukem 3D, but here we go.

Apparently Randy can’t do anything about it, as he’s pulled the Duke from everything else.

Epyx games on Steam!

Wow so many!

So I’d been sleeping under a rock and missed the whole Epyx last last year had put a bunch of games onto steam! I’d just been talking to someone about Impossible Mission as I had no idea what was going on in the first one, but as a kid I’d actually beat Impossible Mission II! Oddly enough the Summer Games & Jump Man Jr are absent, perhaps some long standing deal elsewhere. But at prices between $12 & $28 ($1.55 & $3.61 USD) I was hyped and bought a bunch.

I was curious which system would they be for? Commodore 64? Atari 400/800? Commodore Amiga or ST?

Impossible Mission II for the PC

Turns out there was an IBM PC version. I never knew, but back in ’88 I was still using my Commodore 64, and everyone else I knew had either an Amiga or Atari ST. School had those QNX machines but that was just a big missed opportunity from everyone an everything.

The steam/PC version. .. is certainly not right out of the box. As you can see from the box it supports CGA/EGA/Tandy/VGA-MCGA. And it’s configured for EGA by default. Strange, as the MCGA/VGA is the best of all platforms with it’s 256 colours. However here is where it falls flat very quickly is that back in ’88 they didn’t code for that big thing last year, the 1987 AdLib. Ooff! Even worse no IBM PCjr audio (same as the Tandy) either.

So yes it’s glorious PC SPEAKER. Yuck.

Turns out they are all PC versions. Well except for Impossible Mission which is ‘remastered’… And honestly it’s not that good. It’s super laggy. The javascript version is MUCH more superior.

What went wrong?

The Cinemaware Anthology: 1986-1991 managed somehow to get an Amiga emulator that boots up from ROM disks and is so transparent it’s easy to forget there is any emulation.

So let’s use 7zip and rip it apart!

10/11/2014 10:29 pm 402,960 .bind
10/11/2014 10:29 pm 19,962,368 .data
10/11/2014 10:29 pm 27,136 .rdata
10/11/2014 10:29 pm 87,040 .reloc
24/05/2021 09:36 pm .rsrc
10/11/2014 10:29 pm 174 .rsrc_1
10/11/2014 10:29 pm 402,944 .text
28/05/2019 08:12 pm 20,901,904 Anthology.exe

So inside of the executable there is 20MB of data. let’s rip further:

28/10/2014 09:29 am floppy
24/10/2014 11:21 am img
22/10/2014 12:37 am maps
28/10/2014 09:30 am os
28/10/2014 09:30 am rlst
28/10/2014 09:29 am romdisk

floppies, rom lists, rom disks and an OS?

28/10/2014 09:30 am .
28/10/2014 09:30 am ..
03/07/2013 12:02 am 262,144 Kick12.rom
27/10/2014 09:45 am 1,794 rdd.rom
2 File(s) 263,938 bytes

Really? Did they get some kind of sweetheart deal?

I copied of UAE, and fired it up, and yep it’s v1.2

Pretty cool. And sad too as Pixel Games UK obviously couldn’t secure such a cool deal, and all we have is the sadly inferior PC versions. And that is the crux of it, on the one hand I want to support them, but the PC versions frankly are unplayable. Jump Man barely can pick up 2 keys at the same time so it’s almost impossible to run and jump. Maybe it’s a DOSBox thing, maybe its an ancient DOSBox, I don’t know. On the other hand the only one that really doesn’t suffer keyboard issues, is from it’s design and that’s Rogue.

so I’m really mixed on this. And 33 years ago someone should have told them at Epyx to get one of those ‘peanut’ machines and get the PCjr sound effects going or at the least get one of those new fangled AdLibs that Sierra Online kept harping about.

Speaking of Sierra check out Not All Fairy Tales Have Happy Endings, by Ken Williams. It’s not so much about the games, but more so about the business wheeling and dealings, and yes the AdLib and peanut are important.