[HN Gopher] You can make PS2 games in JavaScript
       ___________________________________________________________________
        
       You can make PS2 games in JavaScript
        
       Author : tosh
       Score  : 307 points
       Date   : 2025-11-21 16:42 UTC (1 days ago)
        
 (HTM) web link (jslegenddev.substack.com)
 (TXT) w3m dump (jslegenddev.substack.com)
        
       | twosdai wrote:
       | Super cool. Thanks for sharing this. I've been looking for
       | something like this for a while.
        
       | kamranjon wrote:
       | This is pretty incredibly - Fabrice Bellard builds stuff that
       | just has such a wide spread impact - so cool that QuickJS enabled
       | an old system like PS2 to have a bit of a homebrew revival
       | through this AthenaEnv project
        
         | mschuster91 wrote:
         | My photoshop skills are near zero, otherwise I'd have long gone
         | and edited xkcd 2347 [1] to say next to the pillar "Something
         | Fabrice Bellard probably implemented while half asleep just to
         | prove he could do it".
         | 
         | There's _a lot_ of FOSS projects that have something written by
         | him in their dependency chain.
         | 
         | [1] https://xkcd.com/2347/
        
           | sandermvanvliet wrote:
           | Nano Banana to the rescue
           | https://box2.codenizer.nl/cloud/index.php/s/ZYHdsYZ9rdRNM2B
        
             | youainti wrote:
             | thanks!
        
             | bigfishrunning wrote:
             | Why use an LLM to do something that would take exactly the
             | same amount of time and a lot less energy to just do in
             | something like MS paint?
        
               | theultdev wrote:
               | I'd like to see metrics on that. But intuitively I'd say
               | AI is faster.
               | 
               | Basically it's opening the tab and typing your thought vs
               | speed running paint.
               | 
               | @sandermvanvliet what was the process and how long do you
               | estimate it took you?
               | 
               | Personally it would take me awhile to find the template,
               | the exact font and get the positioning just right.
               | 
               | I could make a crude one fast, and I've seen many crude
               | versions of this meme. But matching the font is a bit
               | more work, maybe there's a generator for it, but that's
               | not paint nor do I know where it exists.
        
               | deaddodo wrote:
               | "Speed running paint"? You mean opening the image and
               | dragging a text box over the existing text, changing the
               | font to comic sans, and typing the text?
               | 
               | There are complicated workflows in Paint, this is not one
               | of them.
        
               | wiseowise wrote:
               | > comic sans
               | 
               | It's not comic sans though, you've already failed.
        
               | deaddodo wrote:
               | Ok
        
               | cluckindan wrote:
               | Yeah, _everyone_ knows xkcd uses its own font, Humor
               | Sans.
        
               | frizlab wrote:
               | Oh I did not know that.
        
               | fooofw wrote:
               | Why have you failed though? Is the point to try to
               | deceive people to think that XKCD actually published
               | something else? Why not modify the xkcd one without
               | hinding the fact that you modified it?
        
               | theultdev wrote:
               | that fact you think it looks so good that it deceives is
               | a point for ai.
               | 
               | the point is to make a quality meme fast. the guy he
               | replied to appreciated it.
               | 
               | any fan of xkcd knows the original.
        
               | wiseowise wrote:
               | > Why use an LLM to do something that would take exactly
               | the same amount of time and a lot less energy to just do
               | in something like MS paint?
               | 
               | Can you prove that it'll take same amount of time for
               | someone with
               | 
               | > My photoshop skills are near zero
               | 
               | to replicate the same level of quality as the generated
               | image? From the looks of it, LLM managed to generate
               | pixel perfect (or at least similar) font and probably
               | took a fraction of a minute for the author to generate.
        
               | PostOnce wrote:
               | 1] delete the text
               | 
               | 2] select any handwriting font
               | 
               | 3] replace the text
               | 
               | no one will know the font was changed, no skills
               | required.
               | 
               | AI is going to utterly cripple people intellectually and
               | motivationally.
               | 
               | If you can't even do the above _ten second_ process, you
               | may want to make more of an effort before you find
               | yourself utterly fucked and starving.
        
               | forgotpwd16 wrote:
               | >no one will know the font was changed
               | 
               | You're underestimating the effect typography has.
               | 
               | >you may want to make more of an effort
               | 
               | You seriously saying someone should put effort in editing
               | a comic they didn't even cared on editing until they saw
               | someone's comment? And somehow you equate the not putting
               | effort to editing such comic to being _fucked and
               | starving_?
               | 
               | AI hate sometimes makes people really lose their mind.
               | Doing pointless random shit like this _is_ a legit AI
               | good application. Something that needs no creativity nor
               | intellect to do. Just time. (And, most certainly, more
               | than 10s.)
        
               | PostOnce wrote:
               | Two parent comments suggested that a deep level of skill
               | is required to:
               | 
               | 1] drag a box around the text and press Delete 2] type
               | some new text in there in a similar handwriting font
               | 
               | The implication is that we're all too stupid and
               | everything is too hard to do even tasks so simple that
               | they take double-digit seconds to accomplish for people
               | with rudimentary computer skill.
               | 
               | We can do things. Saving 5 seconds is going to hurt worse
               | than it helps in the long run... like asking GPT what 2+2
               | is because you can't figure it out.
        
               | wiseowise wrote:
               | > Saving 5 seconds is going to hurt worse than it helps
               | in the long run... like asking GPT what 2+2 is because
               | you can't figure it out.
               | 
               | Looks line it has already started. See a therapist,
               | please, you have an obsession.
        
               | PostOnce wrote:
               | It's better to consider the consequences of possible
               | futures than not to; considering the future makes us
               | human.
        
               | maddmann wrote:
               | " AI is going to utterly cripple people intellectually
               | and motivationally. If you can't even do the above ten
               | second process, you may want to make more of an effort
               | before you find yourself utterly fucked and starving."
               | 
               | This does not sound like intellectual curiosity. Closer
               | to polarized discourse that imho is making us less human.
        
               | ddingus wrote:
               | Actually, a fair number of us will see the font change.
               | 
               | People are more aware of typography than you may realize.
               | 
               | ...maybe you do!
               | 
               | In which case, this makes real sense: "[almost] nobody
               | will care."
               | 
               | I wouldn't, but I sure would note the font change.
        
               | augusto-moura wrote:
               | I don't really know, but finding the right font family
               | might take more time than the LLM
        
               | QuantumNomad_ wrote:
               | In the case of xkcd you can mimic it with this one:
               | 
               | xkcd-font
               | 
               | Fonts derived from the handwriting of Randall Munroe, the
               | xkcd webcomic author.
               | 
               | https://github.com/ipython/xkcd-font
        
               | Almondsetat wrote:
               | Do it yourself on live video. Otherwise this is such a
               | baseless and needlessly accusatory comment
        
               | echelon wrote:
               | Because Nano Banana is better than wasting time for
               | someone who isn't a 10 year veteran of MS Paint arts.
               | 
               | I'm tired of this kind of argument from anti-AI folks.
               | 
               | "Why not pick up a pencil instead?"
               | 
               | What if illustration was never "art"? What if it was
               | always just a rote mechanical skill and the art itself
               | was _what the person was trying to communicate_?
               | 
               | Maybe the technical aspects don't matter. Maybe it's the
               | message we're conveying, our taste, our curation, our
               | unique lens?
        
               | sandermvanvliet wrote:
               | 1. I heard about nano banana and wanted to try it 2. I'm
               | on my phone so no photoshop or whatever
        
           | 0x1ch wrote:
           | Looked him up, he quite literally pushed the first commits of
           | QEMU ever. Edit: And was the sole developer until 2007!
        
             | tombert wrote:
             | And ffmpeg. And TinyC. And a bunch of other things. The
             | dude is a legend.
        
             | deaddodo wrote:
             | Fabrice's DNA is infused in the FOSS ecosystem. He's an
             | avid and prolific developer. FFMpeg, Qemu, libbf, softfp,
             | BPG, jslinux, etc, etc, etc.
        
       | mclau153 wrote:
       | people will do anything to avoid using .gdscript and Godot....
        
         | ronsor wrote:
         | I like Godot, but you're not getting it running on a PS2.
        
           | charcircuit wrote:
           | gdscript does not do any fancy JIT or AOT compiling. I don't
           | see why you can't get gdscript running fairly easily.
        
             | wk_end wrote:
             | gdscript itself, sure, why not. Porting the entire Godot
             | engine would be a real feat though, especially because of
             | the PS2's technical limitations.
        
               | forgotpwd16 wrote:
               | Someone did compile Godot (v2) for PS2 and did run it but
               | seems like they gave up trying to run/export any games
               | with it[1][2]. Somehow, the PSP port[3] (also v2) is more
               | successful[4].
               | 
               | [1]: https://github.com/ivandortulov/godot-ps2 [2]:
               | https://itch.io/t/3658957/compiling-godot-for-the-
               | playstatio... [3]:
               | https://github.com/technicaljicama/godot-psp [4]:
               | https://www.gamebrew.org/wiki/3D-Luck_PSP
        
         | turnsout wrote:
         | To be fair, it's not as simple as building in Godot and
         | exporting to PS2.
        
           | bob1029 wrote:
           | https://github.com/distrohelena/retrongin
           | 
           | Unity has at least one experimental option that does exactly
           | this.
        
             | turnsout wrote:
             | It's too bad that Unity is a horrible company and a dying
             | platform
        
       | dinobones wrote:
       | Mega cool, I'm curious if there's a way to burn the ISO to a disc
       | and get this playing on a physical console?
        
         | bakugo wrote:
         | You'd need to hack the console to get it to load a burned disc,
         | but if you can do that, you can also just load it from USB.
         | 
         | Though I guess you could burn it to a disk anyway purely for
         | the sake of authenticity.
        
           | SpecialistK wrote:
           | USB on the PS2 is limited to 1.0 or 1.1 speeds, so a disc may
           | work better anyway.
        
             | deaddodo wrote:
             | Just to clarify, the difference on the PS2 is:
             | 
             | * CD: 3.6MB/s
             | 
             | * DVD: 5-8MB/s
             | 
             | * USB: 0.8-1.1MB/s
             | 
             | So the disk would almost definitely be the better option.
        
               | kcb wrote:
               | Can also use a micro SD adapter through the mem card
               | slot. Generally considered a bit better experience than a
               | USB drive.
        
               | forgotpwd16 wrote:
               | USB is fine for PS1/retro games; should be more than
               | enough for AthenaEnv. The difference only matters for PS2
               | backups. And there're more options than those two.
               | HDD/SSD, Ethernet, MX4SIO/SIO2SD, MMCE (SD2PSX et al).
        
               | SpecialistK wrote:
               | Is it possible to use PS1 games and USB simultaneously? I
               | thought the USB was handled by the B/C chips.
        
               | forgotpwd16 wrote:
               | That's true; network too. Can play digital backups (off
               | USB/Eth) only by using POPStarter (for those unaware,
               | POPS being Sony's PS1 emulator ripped off the single game
               | that was officially used on). Although POPS isn't really
               | that good (was used, experimentally, only once afterall),
               | USB throughput isn't an issue.
        
         | accrual wrote:
         | FreeMcBoot on a memory card + USB flash drive (or internal
         | disk) is a popular option to play on real hardware. Saves wear
         | and tear on the optical drive too.
        
           | Forgeties79 wrote:
           | I have sat on a freemcboot mem card for probably 6 years now.
           | I'll get around to it eventually...
        
             | accrual wrote:
             | It's a good time! I feel the PS2 is an iconic member of any
             | living room TV setup, especially with an SSD, a couple
             | controllers, and component out. Nice to have for hangouts!
        
               | Forgeties79 wrote:
               | Oh damn can you get some real performance boost out of an
               | SSD? Do you install it or does it hang out externally?
        
               | accrual wrote:
               | The original Phat PS2 models support internal IDE disks,
               | though it's easy to convert them to SATA with an
               | inexpensive adapter. Then prepare the SSD and install (I
               | use WinHIIP, "obsolete" but works fine). It noticably
               | improves startup and load times in games!
               | 
               | Some also swap the fan for a Noctua to give it a complete
               | "quiet upgrade", but my stock fan isn't very loud.
        
               | Forgeties79 wrote:
               | Very cool. Jotting this down for later, appreciate it
        
         | tylergetsay wrote:
         | Combined with https://github.com/CTurt/FreeDVDBoot, I think it
         | would be possible
        
         | deadbabe wrote:
         | Why use physical disc instead of some optical drive mod
        
           | hamdingers wrote:
           | ODEs aren't common for the PS2 because they already support
           | flash drives, network shares, and (for fats) full size hard
           | drives.
        
       | ikamm wrote:
       | Already been posted here twice by the dev in the past two
       | months...
       | 
       | https://news.ycombinator.com/item?id=45436166
       | 
       | https://news.ycombinator.com/item?id=45778448
        
         | hombre_fatal wrote:
         | What's the point of linking discussions that have one comment
         | each?
         | 
         | The reason you see @dang link past submissions is so we can
         | read previous interesting discussion, not to shame submissions
         | that got no traction.
        
         | forgotpwd16 wrote:
         | First link isn't by the author and second link is a different
         | article...
        
       | martijnvds wrote:
       | IBM PS2?
        
         | unleaded wrote:
         | Yes. https://github.com/SuperIlu/DOjS
        
       | Flux159 wrote:
       | The interesting part here is about AthenaEnv. It looks like it
       | uses QuickJS for the Javascript interpreter and wraps around the
       | native system libraries that the PS2 provides.
       | 
       | I'm wondering if there's a modern similar project that would
       | allow writing Javascript Canvas games (WebGPU / WebGL) and
       | publishing on Switch/2, PS5, and Xbox.
       | 
       | From my understanding, they explicitly disallow JITs so you can't
       | just wrap your JS game with Electron / Node Webkit and use V8.
       | I'm not sure if anyone has tried publishing a game using a
       | V8-jitless electron fork - the sdks for consoles are under NDA so
       | there's not really much written about it publicly & most games
       | using Unreal or Unity don't deal with these things themselves.
       | 
       | PC, Mac, and even mobile are surprisingly easier here because you
       | can just run the JS via electron or in a webview on mobile.
        
         | _james wrote:
         | The official Nintendo 3DS and Wii U SDKs both provided an
         | Electron-like framework that allowed games to be written with
         | web technologies. I seem to recall that it was discontinued at
         | some point before the Switch? The Switch does have a WebKit
         | browser applet that games can call to display web-based
         | content, but it's pretty limited since JIT is disabled like you
         | say. I've only ever seen it used for e-manuals.
        
         | JSLegendDev wrote:
         | I think the game Cross Code (a game written in JS) was ported
         | to consoles using a pretty complex process.
         | 
         | Here is a detailed blog post about the topic :
         | https://www.radicalfishgames.com/?p=6892
        
           | Flux159 wrote:
           | Yeah, I saw the video about that earlier which is what led me
           | to wonder if there was a native JS way now.
           | 
           | They used Kha in order to port only the console versions, the
           | desktop versions remained JS from my understanding:
           | https://github.com/Kode/Kha which is built on top of Haxe.
           | This works, but it also means not having a single codebase
           | anymore which would be one of the benefits of a JS based
           | system.
           | 
           | There are other options here - something like using an AOT JS
           | compiler like Porffor, but from my understanding it's never
           | been tested (and would probably be missing a lot of support
           | to get it working - like shimming canvas & providing a WebGPU
           | context that the compiled JS could execute against).
        
       | IvanK_net wrote:
       | Maybe they could simply make a modern web browser for PS2, where
       | you would simply open a website with the game :)
        
         | wk_end wrote:
         | Chrome apparently has a minimum memory requirement of 4GB, so
         | you'd need to shrink it down to one-one-hundred-and-twenty-
         | eighth its size to squeeze it into the PS2's 32MB of RAM.
        
           | cluckindan wrote:
           | Easy peasy, just remove the telemetry.
        
       | saghul wrote:
       | A similar thing, also using QuickJS, but for the Nintendo Switch:
       | https://github.com/TooTallNate/nx.js (I'm not the author).
        
         | Flux159 wrote:
         | Nice, this is similar to what I was wondering about - it looks
         | like it's pretty limited in capability right now (looks like it
         | only supports canvas2d at the moment:
         | https://nxjs.n8.io/runtime/rendering/canvas), but in theory it
         | would allow you to make a layer to convert WebGPU or WebGL
         | games for Switch (ignoring the huge performance drop going from
         | v8 / jit JS engines to QuickJS).
        
       | forgotpwd16 wrote:
       | Cool article. AthenaEnv is an alternative follow-up to, also by
       | same dev, Enceladus which uses Lua instead. Besides games they're
       | used, and even more popular for this use case, homebrew apps.
       | Examples being RETROLauncher & POPSLoader for Enceladus, and OSD-
       | XMB for Athena.
        
       | ycombiredd wrote:
       | The author's short diversion about the hassle of using a random
       | website for zip2iso functionality and asking about a cli tool for
       | doing such conversion lead me to create this cross-platform
       | python script with no external dependencies:
       | https://github.com/scottvr/GENISO/blob/main/ZIP2ISO.py
       | 
       | Longer explanation in the comments of TFA, but short version is
       | that it was mostly "vibe-coded" using Gemini3 Pro instead of
       | having to read the ISO9660 spec, which was also impressive to me.
        
         | k3vinw wrote:
         | mkisofs might also do the trick.
        
       | mobeigi wrote:
       | Even the PS2 isn't safe from JavaScript.
        
       ___________________________________________________________________
       (page generated 2025-11-22 23:01 UTC)