[HN Gopher] Another World ported to FPGA ___________________________________________________________________ Another World ported to FPGA Author : retro_guy Score : 219 points Date : 2023-07-15 16:23 UTC (6 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | burglins wrote: | I wonder how common were full game VMs in the 90s. For a game | older than myself, wouldn't a VM layer incur a great performance | penalty on PCs from that time? | dragontamer wrote: | It was far more important to have the same software work on | Amiga, x86 (DOS), Mac and the whole slew of different machines | than came and went. | | Today we have fewer machines than the great explosive growth of | the 80s. | | Consider that most 'software' today is JavaScript interpreted | by the Web Browser. It's not like those portability concerns | didn't exist in the 80s, if anything, it was harder because you | had to make your own interpreter back then. | | --------- | | Many (maybe most?) video games seem to have been written in a | VM, at least before Doom / high performance 3d graphics. | | I think console games were in C/Assembly for performance. | | But 'computer' games at that time was before the standard IBM | PC or at least, before the PC won and Microsoft achieved | dominance. When you didn't know if Amiga, PC98, IBM PC, Mac, or | others would win it only made sense to write a VM. | | SCUMM (Monkey Island and many others) comes to mind. | einpoklum wrote: | > Consider that most 'software' today is JavaScript | interpreted by the Web Browser. | | I thought most software was MS Excel sheets with interacting | formulae :-) | pdw wrote: | And as it happens, early versions of Excel used a bytecode | running on a VM instead of native code. Though the | motivation was not portability, but rather memory | requirements: | | > In most cases, p-code can reduce the size of an | executable file by about 40 percent. For example, the | Windows Project Manager version 1.0 (resource files not | included) shrinks from 932K (C/C++ 7.0 with size | optimizations turned on) to 556K when p-code is employed. | | > Until now, p-code has been a proprietary technology | developed by the applications group at Microsoft and used | on a variety of internal projects. The retail releases of | Microsoft Excel, Word, PowerPoint(r), and other | applications employ this technology to provide extensive | breadth of functionality without consuming inordinate | amounts of memory. | | http://sandsprite.com/vb- | reversing/files/Microsoft%20P-Code%... | PaulHoule wrote: | The Infocom text adventures (e.g. Zork) were based on a VM | | https://en.wikipedia.org/wiki/Z-machine | anthk wrote: | Which is stll working with libre implementations (frotz) | and OOP based compilers targeting the Z-machine (inform6 | +inform6lib). | stevefan1999 wrote: | VM already existed since PL/0 which is the prototype of Pascal. | It is also known as P-code and to.be honest it is fine. | Especially when you can leverage JIT which trades memory space | for gains in speed. | pjmlp wrote: | If you mean bytecode as executable format, that originates | already in the late 1950's, early 1980's, with microcoded | CPUs as the interpreter, from which Burroughs Large Systems | is one of the most famous ones. | ashleyn wrote: | During the heyday of assembly language, VMs were common in | _business software_ as well. It made porting to different types | of systems easier in a time when standards-compliant C-language | compilers targeting a variety of systems did not yet exist or | were very expensive. | burglins wrote: | Oh, I know about the emulation layers of early computers! But | I'd assume those programs rarely required frame-perfect input | unlike video-games. Wouldn't that be too wasteful and | needlessly limit the playerbase? | | Edit: after reading through wikipedia, I think maybe a VM | wouldn't be that wasteful, since the game is very simple | mechanically. | dragontamer wrote: | Consoles (and arcades) back then had far better graphical | performance than computers. So good computer games didn't | have frame perfect inputs at all ... Or at least, not good | games (bad games like TMNT for PC / DOS did exist but we're | horribly buggy and broken) | | Computer games had explosive inputs available, like | Civilization or needed the use of a mouse. | | Not so much action / frame perfect stuff. Not until a bit | later anyway. Eventually computers were fast enough for | arcade ports but computer games just didn't really target | that action niche. | | ------ | | The 'computers' with good graphics were like Amiga, not x86 | based DOS with mode 13h graphics. So it was all the fallen | / failed computers that had the decent action games IIRC. | gwern wrote: | Yes, but you weren't doing things like _Elite_ in these sorts | of special-purpose VMs. Aside from the portability issue | (extremely important when platforms had the lifespan of | mayflies back then as Moore's law blazed along full speed), VMs | also got you _compression_. A full compiled binary might be | exorbitantly expensive in disk /tape space, not to mention RAM. | But a very small VM could make a custom-tailored language to | interpret on the fly, and save a ton of space where you needed | to sweat every kilobyte. (Think about the different in size | between `print "Hello world!"` and the default compiled | binary.) It didn't matter how fast your text adventure ran if | it couldn't fit in X kb of space. | syntheweave wrote: | The trick to these earlier VMs, from the Infocom Z-Machine and | Wizardry's interpreted Pascal code, through SCUMM, Sierra AGI | and SCI, Another World, the Horrorsoft games, etc., is that | they recognized that the games they were making were primarily | going to be "content-delivery mechanisms": lots of text and | graphical assets, driven by relatively simple computations: the | authoring constraint is only related to the hardware in terms | of I/O and data compression. So the code that was being run by | the interpreter was mostly run-once "initialize the scene" and | then some animation timers. | | The opposing idea is represented more by arcade gaming, and | later, stuff like Doom and Quake: The game is relatively | intimate with the hardware in what it simulates, while the kind | of definition that makes up a scene is more on the order of | "put a monster here and a health pickup there", which aligns it | towards being map data, instead of scripted logic. | thepawn1 wrote: | "older than myself" | | #rightinthefeels | bzzzt wrote: | Depends on what you consider 'full game VM'. Adventure games | from Infocom ran all game code on a VM, and so did the | graphical adventures from Sierra and LucasArts. The latter two | used some native graphics primitives of course. | joshvm wrote: | Scumm is a good example. There was a port for the original DS | that ran well enough. | | https://wiki.scummvm.org/index.php/Nintendo_DS | jmiskovic wrote: | Another World is on a whole other level. SCUMM is from '89 | and the NDS came out in 2004. Another World game came out | in 1991, and because it used the VM it could be back-ported | to Apple IIGS (1986), the computer that's 5 years older | than the game itself! | | The graphics exclusively used real-time rendered polygons | with support for transparency, which nobody knew was even | possible at the time. Along with researching the new | rendering tech, the same person created everything else | except the music - the memorable & immersive world, an | original story, concept and cover art, strong cinematics | that were SoTA at time, graphics and animation, innovative | level design, puzzles, the game logic - over just 2 years. | It also defined a new 'cinematic platformer' genre, with | later titles like Flashback, Blackthorne, Oddworld, and | recent LUNARK. It's simply incredible feat. | egypturnash wrote: | _real-time rendered polygons with support for | transparency, which nobody knew was even possible at the | time_ | | Aegis Animator was doing pretty much the same sort of | rendering on the Amiga, in _1985_. | | I never did much with it, what with being a kid at the | time, but it was fun to play with and looked pretty cool. | I don't think its rendering was as tightly optimized as | Another World's was, though. | andrewf wrote: | Memory was often the constraint on low-end computers "back in | the day", so code density was a reason to have a VM. This is | why Wozniak shipped a VM in the Apple II's ROM. | | https://archive.org/details/byte-magazine-1977-11/page/n147/... | derbOac wrote: | Off topic, but I was excited to find out Another World is on | Steam... but isn't available to play on macOS 10.15 Catalina or | above. | | The incompatibility with 32-bit makes me extremely frustrated; it | seems as if in 2023, with quantum computing, DL models, and | people porting games like this to FPGA, there should be a way to | get 32-bit software to run on modern hardware. It's bizarre to | me. | | Steam specifically recommends _not upgrading_ your mac OS to play | these older games. | | Is all this software going to become unusable because of this | sort of thing? | bdhcuidbebe wrote: | Only macOS dropped 32bit compat. Join linux my friend | VHRanger wrote: | Android is dropping 32bit support. | | I can't play planescape: torment on my phone because of this. | anthk wrote: | Yes, you can. Find a gemrb build for Android, maybe from | F-Droid. | dopidopHN wrote: | True, I run a vanilla fedora, never touched the driver and | buy most games on steam without thinking about compatibility. | ( I play low demanding games, but still ) | egypturnash wrote: | Yes, yes it will. How many _other_ Amiga games can you run on | _anything_ besides an Amiga, real or emulated? What happens | when you try to run the 2013 version of _anything_ you still | depend on? | | There is a _ton_ of stuff that broke when Apple moved to 32-bit | and didn 't bother making any kind of compatibility layer. | Games are probably hit the worst because (a) almost nobody | gives a shit about updating a game they finished working on a | decade ago, and (b) almost nobody gives a shit about making a | game work on the Mac anyway. I've been a Mac user since 2000 | and I've been doing the vast majority of my gaming on consoles | for all that time. The 2013 remake of Another World's available | on my PS4, as well as the PS3, Vita, Wii U, Switch, Xbone, | Android, iOS (well, assuming Apple didn't break that too), and | more. | | Steam says the remake works fine on the Steam Deck I just got, | too, thanks to the work they put into their fork of WINE. Old | software ends up in virtual machines, one way or another. | lightedman wrote: | Play the SNES version emulated - it had the best musical score | striking wrote: | You can run Steam in Crossover Games to get some Windows games | on your Mac. And Apple has a new compatibility layer | themselves, though it takes finagling for the end user to use. | bzzzt wrote: | There's no business case in making sure those old titles | persist and publishers mostly forget about them after initial | sales are made. You can play the MS-DOS port in QEMU, so I | presume there will eventually be some emulation layer capable | of running the HD release. | retro_guy wrote: | See as well: | | - Infernal Runner for Amstrad CPC reverse-engineering and | JavaScript port by cyxx [title from creator of Another World, | both games utilizing virtual machine architecture]: | https://github.com/cyxx/infernal_js | | - The Virtual Machine Architecture of Infernal Runner | presentation by Norbert Kehrer (in German with English slides): | https://media.ccc.de/v/vcfb20_-_146_-_en_-_202010111400_-_th... | | - The Story of Another World on the Amiga | MVG: | https://www.youtube.com/watch?v=0iz9PJbs5rE | | - Nintendo 64 port of Another World: | https://github.com/jnmartin84/aw64 | | - Another World PlayStation 1 port: | https://github.com/fgsfdsfgs/rawpsx | thepawn1 wrote: | Loved this game. Still holds up... | pengaru wrote: | The original developer of Another World did a GDC postmortem, | it's one of the better GDC talks: | | https://www.youtube.com/watch?v=JFaOYYSxSEA | | IIRC He shows some of his development tools including how he | could modify and step through animation directly line by line in | VM bytecode. | pbj1968 wrote: | Because of this thread, I finally admitted to myself I was never | going to figure this game out and watched a play through on | YouTube. 22 minutes! I think I got past the lion once. | [deleted] | erickhill wrote: | "Only Amiga makes it possible" is being replaced by FPGA 30 years | later. | nickelpro wrote: | For anyone confused by the HDL, it's the author's custom | language: https://github.com/sylefeb/Silice/tree/master | | It provides a compiler to Verilog that then can be fed to | traditional design flows. | 29athrowaway wrote: | The intro was fantastic. Even with a PC speaker / no sound card. | | Having to swim away as your first action, and then escape from | some kind of lion is one of the most brutal game experiences | ever. | | Even if you played that game for 1 minute you will remember that | game forever. | guiambros wrote: | > _Even if you played that game for 1 minute you will remember | that game forever._ | | I don't remember playing for much more than a few minutes | (maybe a couple of hours), and barely making any progress, but | that intro and the initial escape got etched in my memory for | all those years. The dramatic camera effects of this game were | indeed out of this world for the time. | the_af wrote: | The game itself is barely a couple of hours. It's very, very | short. | | I wonder, if the intro made such an impression on you, why | didn't you finish it? | 29athrowaway wrote: | I also didn't finish it. | | The game is hard and requires more patience than usual to | figure it out. | crtasm wrote: | and not just the intro but the entire game fit on a single | floppy disk, blew my mind. | ChainOfFools wrote: | I'll never forget the "dialogue" in the game either, right | after you get rescued from that lion thing by your new friend. | | konanaka beetzai! motsuubo! /wave | the_af wrote: | If I remember correctly, your alien friend never rescues you | from the beast. The ones who shoot the beast (and then you) | are the "bad" aliens ;) | jakemauer wrote: | Mykaruba! | dougmwne wrote: | I have the same memory of playing for one minute and getting | stuck. I went back to it 25 years later and beat it. Once you | get over the reaction-time hump, it's a glorious and memorable | game. | Xenoamorphous wrote: | > Even if you played that game for 1 minute you will remember | that game forever. | | I've never player that game, but it's been engraved in my mind | for 30 years just from a 2 min? segment in a promotional VHS | tape that came with a videogames magazine. | | Also the artwork in the cover is amazing. | msephton wrote: | I can't tell if this is just the intro rather than the full game? | tombert wrote: | I remember playing Out of this World on my Sega Genesis as a kid, | and I could not believe that graphics would ever get better than | this; I had never seen fully animated cutscenes like that on my | Sega and thought it was incredible. | | Obviously graphics _did_ get better, but I feel like Another | World still holds its own artistically. The graphics are still | very stylish and distinct, and upon replaying the game again | about a year ago, I am still really impressed by it. | | The game isn't perfect; a lot of the puzzles and stuff sort of | just come down to trial and error and it's extremely short, but I | also don't think I would change a thing about it. | | It's sort of in a different category, but for fans of Another | World, I recommend also checking out Flashback: The Quest for | Identity. It's got a similar cinematic vibe, and while I didn't | like it at first it's really grown on me in the last decade or | so. | slim wrote: | Flashback has a sequel : Fade to black | efnx wrote: | I found flashback first, on sega. I loved it instantly. Later | on I played Out of this World and it took a bit before I got | into it. The two are great works of art though. | theragra wrote: | I liked flashback so much, I tried to complete it on expert. | Stuck somewhere closer to the end, though, cannot defeat slime | man ___________________________________________________________________ (page generated 2023-07-15 23:00 UTC)