RISC OS Hexen remaster now available
Andrew Rawnsley (492) 1443 posts |
R-Comp Interactive is pleased to announce that a newly remastered version The new version has been updated by original RISC OS maestro Charles As part of the remastering, the game supports graphics resolutions up to With around 50 levels to enjoy, Hexen will provide hours of enjoyment. For those unfamiliar, Hexen is a first-person perspective, fantasy action Despite using the Doom engine, Hexen introduced many innovations that up The game is available now on !Store for 17.50ukp. Have fun everyone :) |
Charles Ferguson (8243) 427 posts |
Hexen was released back in something like 1999, as an follow on from the expanded This 2024 release has a few new features compared to the older version, as Andrew
Support for different platforms should be good, although my testing has been limited
I’m not sure if the A5000 version was made available in the original release, but Performance is going to vary, but on modern hardware such as the Pinebook, in 24bit Some screenshots of the game: Desktop front end Start up screen Main menu First level Short video of the game |
Charles Ferguson (8243) 427 posts |
Extra notes The release also includes the ‘ACC’ tool, which was intended for compiling scripts when constructing new maps. I’m not sure if it was released with the original version, but it was ported at that time. I don’t know how well it works as I’ve never actually built new maps. There’s a few more command line switches that can be added too, which are mostly for diagnostics purposes, but might be useful – they’re documented in the !Help file, but there are The demo itself desynchronises quite quickly. I’m not sure why this is, but it doesn’t impact the game itself. I suspect there’s something very slightly off about the collision handling that makes it work differently, but I’m unlikely to discover what. During development, RISC OS Pyromaniac and the build service are primary testing environments, as they provide the greatest degree of diagnostics when things go wrong. The system build is also automated and each push to source control will build and then run the game for a short period to confirm that it is still functional – obviously I have testing for the things that I produce. Because RISC OS Pyromaniac tends to run more slowly, there are a number of performance enhancements that have been added to help the game run better. They’ll help the other systems too. RISC OS Pyromaniac gets about 3.5 FPS for the 640×480 games which I’m honestly very impressed by – none of the OS was written for speed, and the game working at all within RISC OS Pyromaniac is more than I could ever have hoped for. As usual, I’ve kept some screenshots and videos from the development process, so Development bits Making Hexen 32bit was easy. Making it run on modern systems, less so. After a couple of weeks of work (in evenings when I had time), the game ran pretty well. RISC OS Pyromaniac runs the game in 640×480 at about 3.5 frames per second. “Playable”, but only in the loosest sense – working at all is amazing. YouTube: 640×480 in RISC OS Pyromaniac Using RISC OS Pyromaniac to develop and debug the game made working out what went wrong easier some of the time, albeit running slower. Slower isn’t a problem if you’re trying to work out what goes wrong, and it gives you more information. Hexen (like many games) assumed that there would be suitable modes available to work in. The Pinebook Pro surprised me in not having any other modes. It’s 1920×1080 in 24 BPP or nothing (or 1355×768 on the earlier version). Hexen neither supported the resolution nor supported scaling and translating the intro screen. Hexen can now use the 1920×1080 modes directly, or it can scale up to that mode if you choose a lower resolution. The 0.49 FPS (2 seconds per frame) at 1920×1080 is, to me, really surprising – I’d expected much less. The very first versions of the port ran at that speed for 320×256, so it’s really great to see it working so well. YouTube: 1920×1080 in RISC OS Pyromaniac The original Hexen (and earlier) ports used an ‘unscaled status bar’ so that less of the game’s vertical space was wasted. At the higher resolutions we can do now, that’s actually less useful. It’s still kinda neat, but it looks odd. Regular status bar Unscaled status bar Whilst Hexen on RISC OS Pyromaniac has 2 seconds per frame at 1920×1080, the Rock 4C, at the same resolution, is a solid 35 FPS – the capped rate for the game. Wobbly camera and inability to play on the keyboard and film at the same time, this shows it off quite well. The colour settings on the TV are a little off, as generally I use it for films, not games! You can see a pretty solid frame rate and my skills aside, it’s quite smooth. On RPCEmu at 640×480, I can get a solid 35 FPS most of the time. But if I turn on the bilinear filtering of the walls and objects, it struggles a bit more … which is handy to test the new FPS graph which shows the recent framerate and average. Turn the bilinear filtering on by typing ‘ To see the framerate graph, type ‘ YouTube: 640×480 on RISC OS Pyromaniac with frame rate graph Of course, when you’re building something like Hexen you will inevitably break something now and then. So being able to run tests automatically is vital. CI runs these tests when code is submitted. Not quite as exciting, but it’s important to the process. The CI run is very simple – we build the sources (the release and debug build) and produce the RISC OS style archives (using the RISC OS Zip tools), then we add in the test code and a copy of the shareware WAD file and send it to the RISC OS Build service. The code is then run with debug output enabled, with the command line set to start level 1 automatically and an explicit 10-second cut off. The output shows all the operations that are performed, and if it fails it’ll crash or otherwise exit with a non-0 exit code, so we’ll fail the tests. Test failure means I get emailed and I can fix it before something broken is released! Asciinema: Recording of Hexen building then running on the build service |
Chris C. (2322) 197 posts |
How do I get my gamepad to work with it? It’s a generic USB gamepad. |
Andrew Rawnsley (492) 1443 posts |
Does your gamepad work with the USBjoystick module? I haven’t actually tried that, as I play on keyboard, but presumably it offers some kind of keyboard or mouse mapping to buttons etc? Alternatively, I think there is Joystick support in !HID. I will talk to Gerph about native support for the USBjoystick module. If the gamepad doesn’t work with that, then there’s probably not a lot of hope, but I think that module is supposed to be pretty good. |
Andrew Rawnsley (492) 1443 posts |
As a test, I plugged in an xbox 360 wired controller (x-input AFAIK) to my Pinebook Pro. I had to use usbjoystick module, but it then allowed pad-play. Note that the mappings aren’t great – this is a game designed for keyboard play. Due to the old Acorn Joystick API, there’s no analogue stick support – you move with dpad. However, I can play with the pad :) Mappings can be set in the Controls section of the launcher. Edit: Make sure to tell it which joystick to use in the Controls section. I just tried it on a clean copy now, and if I didn’t set “Joystick 1” then it didn’t know to use that stick. It defaults to “no stick” presumably to avoid interference in other control modes. |
Richard Walker (2090) 431 posts |
As Andrew says, try running my USBJoystick module. It’s included with ADFFS or you can get it from https://forums.jaspp.org.uk/forum/viewtopic.php?t=576 I don’t know if Hexen supports joysticks in general. If it follows the conventional Acorn guidelines (SWI interface) then it should ‘just work’. You could try out some other games to check that your joystick is working with USBJoystick. Star Fighter 3000, or most of the games from JASPP with ADFFS. USBJoystick doesn’t provide keyboard/mouse mapping, but ADFFS can. So with a few *commands, you could probably get it working. |
Andrew Rawnsley (492) 1443 posts |
Hi Richard – is there any easy method for mapping the analogue sticks to function like the dpad? It’d be nicer to use sticks than dpad for movement, but the games just use the old Acorn SWIs which pre-date analogue controls. Also, is it OK to include the module in the zip with the game? Is there a ReadMe or Licence file that should be supplied? |
Chris C. (2322) 197 posts |
Thanks Andrew, I can confirm it works for me. I am using a generic SNES-style USB controller on my Titanium with RISC OS 5.28 |
Richard Walker (2090) 431 posts |
The ‘old’ Acorn API also includes a 16-bit analogue mechanism. In USBJoystick, I made the default behaviour that the 8-bit values are the DPAD, and the 16-bit are the primary analogue stick. They can be manually remapped using the USBJoystick *commands – see the automatic/manual mapping bit here https://forums.jaspp.org.uk/forum/viewtopic.php?t=576 I tried to make sensible defaults so that 99% of the time, no-one would need the *commands. What might be quite cute would be some SWIs to handle this in a fairly generic manner, and a Boot/Configure plugin to provide some management. One day… The Acorn API also allows for multiple buttons, so there is no reason in principle why games couldn’t allow different functions to be assigned to different buttons.
I have no problem with that. Jon bundles it with ADFFS. I recall I put some license information in the source code (I think all my downloads on the JASPP forum are the binary and the source, plus a thread acting as the ‘readme’ – a bit unconventional, I know!). When I get my bit of room back, and the wifi working properly, I intend to dig the Pi out and put USBJoystick into ROOL’s GitLab as the ‘main source’. Not sure what will arrive first… me fixing a couple of other bits at home, or git + wifi on RISC OS Pi. ;). If it ever gets to the required standard, maybe it could be part of the RISC OS ROM or HardDisc4? |
Andrew Rawnsley (492) 1443 posts |
The 2024 RISC OS port of Hexen (released in time for the SW Show earlier this year) has received a major update to v1.07. It is a free upgrade via !Store for anyone who has already got the 2024 edition. The headline feature is a brand new lighting model that more faithfully captures the look of the original game. The original lighting didn’t scale well with high resolutions, and tended to give an overly bright, almost comic-book look. A lot of the subtle lighting, gloom and effects work was lost. The new version takes better advantage of the 24bit palette (whilst still looking good in 256 colours) to allow shadows, light shafts and the gloomy atmosphere of Hexen to be faithfully reproduced on modern high-res displays. In line with this, v1.07 has much better support for widescreen displays, with artwork subtly extended to look and work better with the monitors we use today. There have, of course, been a range of bug fixes and improvements both to the game itself and the front end. You can now run by default (and slow to a walk) if you perfer, and animations have been improved. Demos now play as expected, regardless of frame-rate, and the game should feel smoother on slower systems (or when cranking details up). A full changelog is available on the !Store product page. Aaaand finally…. the game now includes a discount coupon/voucher for a forthcoming project… :) PS, now also includes USBjoystick + source + readme – thanks Richard. |
Charles Ferguson (8243) 427 posts |
One quick note that I forgot to include in the history – Rob Heaton suggested the ‘invert the speed’ option, so that you run and turn fast by default, and can press shift to go slow. Many thanks to them for that suggestion! |
Rob Heaton (274) 515 posts |
Glad to be of service! |
Andrew Rawnsley (492) 1443 posts |
v1.08 of Hexen is now available. It introduces up to 8K resolution support (akin to Heretic) and resolves a few issues (mostly related to widescreen play) with music and mods. The DeathKings expansion should work more smoothly now (just double click to play) and a couple of alignment-exception issues (half word operations in the original source code) have been resolved. As usual free download/update via !Store for those who have the 2024 edition. |