[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)