[RISC OS] PowerMonger
- NickLuvsRetro
- Posts: 288
- Joined: Sat Jul 17, 2021 4:18 pm
- Contact:
[RISC OS] PowerMonger
I've been working on a little prototype of the game PowerMonger (Bullfrog/EA) that came out on ST/Amiga/PC and several other formats. Even if you didn't play the game, you could watch little people just going about, fishing, farming, etc. and it was just a lovely little world. It had changing seasons and every npc would just do their own thing.
I really enjoyed writing a little 3D engine for early ARM recently, and so this felt like a nice little side-project. Mostly because the game didn't use any of the custom chips of the Amiga, mostly relying on general 68k processing. It was quite sluggish on stock A500/STFM so I feel like the ARM was a good candidate for this kind of conversion. I'm targeting A3000, but testing on my A3020 so there's a bit of a clock boost I'm taking into account.
The project is currently a mixture of C and ASM for sections which are quite intensive, like the terrain and sprite rendering.
What I've worked on so far:
1. Reverse-engineering various parts of the original 68k code in Ghidra. Seeing how the random terrain generation worked (which I have documented here) so that I can generate the same levels from the original seeds.
2. Extracting resources from the original game. Mostly from the DOS version (where there is some very bespoke RLE encoding to figure out) .
3. Tweaking the Mode 13 default 256 color palette of the Archimedes to include 16 of the original Amiga/ST palette. I'd originally anticipated I'd have to use Mode 9 with the ST/Amiga 16-color palette, but someone on Twitter pointed out that it was possible to set up to 16 colors directly and the VIDC just generates the rest. This has allowed me to get suprisingly close to the MSDOS VGA 256 version. I generally didn't think it was that tweakable. So I've decided to pull the assets from the improved DOS version instead.
Likewise I'll probably host the source code on Github as well for the curious. I'm not entirely sure whether I can host the assets though? I can't imagine EA care particularly much about this sort of thing, but one does hear rumours from Nintendo, etc. going overboard with DMCA takedowns for fan projects.
I really enjoyed writing a little 3D engine for early ARM recently, and so this felt like a nice little side-project. Mostly because the game didn't use any of the custom chips of the Amiga, mostly relying on general 68k processing. It was quite sluggish on stock A500/STFM so I feel like the ARM was a good candidate for this kind of conversion. I'm targeting A3000, but testing on my A3020 so there's a bit of a clock boost I'm taking into account.
The project is currently a mixture of C and ASM for sections which are quite intensive, like the terrain and sprite rendering.
What I've worked on so far:
1. Reverse-engineering various parts of the original 68k code in Ghidra. Seeing how the random terrain generation worked (which I have documented here) so that I can generate the same levels from the original seeds.
2. Extracting resources from the original game. Mostly from the DOS version (where there is some very bespoke RLE encoding to figure out) .
3. Tweaking the Mode 13 default 256 color palette of the Archimedes to include 16 of the original Amiga/ST palette. I'd originally anticipated I'd have to use Mode 9 with the ST/Amiga 16-color palette, but someone on Twitter pointed out that it was possible to set up to 16 colors directly and the VIDC just generates the rest. This has allowed me to get suprisingly close to the MSDOS VGA 256 version. I generally didn't think it was that tweakable. So I've decided to pull the assets from the improved DOS version instead.
Likewise I'll probably host the source code on Github as well for the curious. I'm not entirely sure whether I can host the assets though? I can't imagine EA care particularly much about this sort of thing, but one does hear rumours from Nintendo, etc. going overboard with DMCA takedowns for fan projects.
Last edited by NickLuvsRetro on Sun Jan 07, 2024 5:01 pm, edited 2 times in total.
Re: [RISC OS] PowerMonger
That looks fantastic!
I remember playing Powermonger on a friend's Amiga - it seemed an incredible game at the time, and just the sort of thing that ought to exist on the Arc (but for some reason didn't). In fact, I had forgotten what it was called - I ought to have a play on an Amiga emulator.
I'll watch with great interest if you manage to develop it further.
I remember playing Powermonger on a friend's Amiga - it seemed an incredible game at the time, and just the sort of thing that ought to exist on the Arc (but for some reason didn't). In fact, I had forgotten what it was called - I ought to have a play on an Amiga emulator.
I'll watch with great interest if you manage to develop it further.
Re: [RISC OS] PowerMonger
Wow that looks great! Well done getting this far, and for using a 256 colour mode and redefining the palette!!! (too few Archie games did this...but then, the VIDC wasn't the friendliest of 8-bit colour implementations to work with!).
It would be great to have another conversion to the Archie, I enjoyed Populous BITD, but never tried Powermonger, so really hope you progress this one.
It would be great to have another conversion to the Archie, I enjoyed Populous BITD, but never tried Powermonger, so really hope you progress this one.
- NickLuvsRetro
- Posts: 288
- Joined: Sat Jul 17, 2021 4:18 pm
- Contact:
Re: [RISC OS] PowerMonger
Thanks! I don't know I would have got this far had ARM not turned out to be so pleasant to work with. Some might say they're all the same, but the instruction set makes life less difficult than it would be otherwise be on 68k or x86 for me... and I can still do 90% the same code on a modern ARM board which is very cool.
Apparently Krisalis had been approached to port PowerMonger. This is from Nov 93 Acorn User. It's quite possible they just used an ST/Amiga shot here, but it looks like the 16-color version was their target and tbf the DOS one was still in development (I think?).
Thanks Steve! I recently started testing QTM and had the original music playing in-game with no slowdowns, it's a remarkable piece of software! I'm thinking for FX it should be possible to just load the sounds (very few, quite short) as instruments in a MOD and fire them off as one-shots using QTM, would this be a suitable use case?steve3000 wrote: ↑Sun Aug 13, 2023 7:48 pm Wow that looks great! Well done getting this far, and for using a 256 colour mode and redefining the palette!!! (too few Archie games did this...but then, the VIDC wasn't the friendliest of 8-bit colour implementations to work with!).
It would be great to have another conversion to the Archie, I enjoyed Populous BITD, but never tried Powermonger, so really hope you progress this one.
Re: [RISC OS] PowerMonger
Yes, assuming the game sound samples are 8-bit linear (Amiga), you could load these into the music mod using ProTracker, as long as there are enough unused sample entries in the mod's sample table (max 31 samples, most tracks use about half that) and save out the larger music mod, and use QTM_PlaySample to play the game sounds as needed.NickLuvsRetro wrote: ↑Mon Aug 14, 2023 2:15 pm Thanks Steve! I recently started testing QTM and had the original music playing in-game with no slowdowns, it's a remarkable piece of software! I'm thinking for FX it should be possible to just load the sounds (very few, quite short) as instruments in a MOD and fire them off as one-shots using QTM, would this be a suitable use case?
Another option, possibly easier, would be to convert the samples to native Archie 8-bit log format (I have a short piece of code to do this, which I can upload here, if you need), then just load them into your game code memory and use QTM_PlayRawSample to play, no need to change the mod.
-
- Posts: 1873
- Joined: Tue Apr 22, 2008 4:44 pm
- Location: Oxford
- Contact:
Re: [RISC OS] PowerMonger
There was definitely a number of mentions of Krisalis converting Powermonger to the Archimedes, I remember that Acorn User screen shot, It was definitely on the Krisalis conversion list - but sadly never happened, along with Soccer Kid (source code was released somewhere) .
Re: [RISC OS] PowerMonger
I had a quick play of Powermonger in an Amiga emulator. It reminded me of how hard it is to get started in the game - reading the manual is definitely going to be necessary.
Is your version the same resolution as the Amiga?
Is your version the same resolution as the Amiga?
Re: [RISC OS] PowerMonger
The question of the assets is an awkward one. I'd say given that you're using DOS assets, and DOS games this old are still being sold (you can pick up the original DOS Populus on gog.com for example), you probably want to stay on the safe side and require the player to provide the assets themselves. Although I note that PowerMonger itself is not currently for sale digitally despite other Bullfrog stuff being available.
- NickLuvsRetro
- Posts: 288
- Joined: Sat Jul 17, 2021 4:18 pm
- Contact:
Re: [RISC OS] PowerMonger
That sounds like the right path! I've found that most of the samples are raw 8-bit 8kHz (working from memory), except for a few that have a delta encoding I need to unpack. If you have the code, I would quite like to see it if you don't mind uploading it. That would be appreciated.steve3000 wrote: ↑Mon Aug 14, 2023 7:57 pm Another option, possibly easier, would be to convert the samples to native Archie 8-bit log format (I have a short piece of code to do this, which I can upload here, if you need), then just load them into your game code memory and use QTM_PlayRawSample to play, no need to change the mod.
Yes I'd often thought to do a longplay on YT. I've completed it a few times. You can find the "Tactical Strategy Guide" here which takes you through each island. https://amiga.abime.net/games/view/powermonger#manuals I used to own this book, no idea how I lost it, it's not cheap to find now. But hooray for kind people with scanners.
Yeah, both the Amiga and DOS versions are 320x200. This presents a slight problem on Archimedes where the resolution is 320x256 so we get a slight squish of about 1/5 in the aspect ratio. This actually opens the door to maybe doing what a few other ports did and actually correct the aspect ratio for the native platform and handle the buttons as proper icons in the extra space at the bottom of the screen (which the SNES, MegaDrive, etc. did). To be fair, doing the buttons the way that Bullfrog did them in the original, whilst interesting, was frustrating UI at times.
Yep, that's why in a few shots you might see the project named "Olympia". I had initially thought to do something "in the flavour of" PowerMonger for the Archimedes and have it set in a Greek setting with Spartan warlords. But make it so that a script could just swap in the right assets if required. Something to think about.bob147 wrote: ↑Tue Aug 15, 2023 3:33 pm The question of the assets is an awkward one. I'd say given that you're using DOS assets, and DOS games this old are still being sold (you can pick up the original DOS Populus on gog.com for example), you probably want to stay on the safe side and require the player to provide the assets themselves. Although I note that PowerMonger itself is not currently for sale digitally despite other Bullfrog stuff being available.
Re: [RISC OS] PowerMonger
Sure, here you go, the code isn't commented - but it is pretty basicNickLuvsRetro wrote: ↑Tue Aug 15, 2023 5:37 pmThat sounds like the right path! I've found that most of the samples are raw 8-bit 8kHz (working from memory), except for a few that have a delta encoding I need to unpack. If you have the code, I would quite like to see it if you don't mind uploading it. That would be appreciated.steve3000 wrote: ↑Mon Aug 14, 2023 7:57 pm Another option, possibly easier, would be to convert the samples to native Archie 8-bit log format (I have a short piece of code to do this, which I can upload here, if you need), then just load them into your game code memory and use QTM_PlayRawSample to play, no need to change the mod.
- Attachments
-
- lin2log_convert.zip
- (1.48 KiB) Downloaded 20 times
- NickLuvsRetro
- Posts: 288
- Joined: Sat Jul 17, 2021 4:18 pm
- Contact:
Re: [RISC OS] PowerMonger
Apologies Steve, meant to say thank you for this! Code looks very easy to read, think I get the jist of what it's doing. Looking forward to trying this out!
Been looking at entities lately, and thought it would be fun to test the build on my A3020. Sorry, the colors are blown out because I'm recording from the TV. I must invest in a decent capture card and hook up the OSSC directly. But I'm quite pleased at how many entities can be rendered at once. And this is still mostly C at the moment.
Last edited by NickLuvsRetro on Sun Jan 07, 2024 5:02 pm, edited 1 time in total.
Re: [RISC OS] PowerMonger
Good work Nick. It's looking great! I don't actually know the game very well, so looking forward to playing it eventually.
Bitshifters Collective | Retro Code & Demos for BBC Micro & Acorn computers | https://bitshifters.github.io/
Re: [RISC OS] PowerMonger
More Bullfrog is always a good thing, well done Nick. Good to see it looking so smooth and colourful as well!