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