[{"data":1,"prerenderedAt":405},["ShallowReactive",2],{"project-47180083":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":47,"post_text":49,"what":50,"said":80,"maker_in_thread":193,"shape":203,"grid":208,"attempts":368,"same_week":369,"maker_shows":34,"maker_hidden":397,"reader_version":398,"card":399},"47180083","RetroTick","Run classic Windows EXEs in the browser","title","Show HN: RetroTick – Run classic Windows EXEs in the browser","https:\u002F\u002Fretrotick.com\u002F","retrotick.com","lqs_",1772197610,2026,195,62,301,4366,7,"notable","dev_tools","emulator","web_app",[24,25,26,27,28],"windows emulator","browser emulation","x86 emulator","win16","retro software","debated",0.008,{"positive":32,"neutral":33,"mixed":34,"critical":35},11,10,1,13,35,{"idea":38,"performance":41,"design":43,"execution":44,"docs":46},{"positive":39,"critical":40},3,0,{"positive":42,"critical":40},2,{"positive":34,"critical":40},{"positive":34,"critical":45},12,{"positive":40,"critical":40},[48,40,40,40,40,48,40,48,48,39,48,34,34,40,39,34,40,48,39,34,39,34,48,39,34,48,34,39,34,39,34,40,34,34,39,34,39,48,48,48],5,"RetroTick parses PE\u002FNE\u002FMZ binaries, emulates an x86 CPU, and stubs enough Win32\u002FWin16\u002FDOS APIs to run classics like FreeCell, Minesweeper, Solitaire and QBasic, entirely in the browser. Built with Preact + Vite + TypeScript.\n\nDemo: https:\u002F\u002Fretrotick.com\n\nGitHub: https:\u002F\u002Fgithub.com\u002Flqs\u002Fretrotick",{"problem":51,"audience":57,"pricing":57,"motivation":57,"time_to_build":58,"stack":64,"openness":77,"stage":78,"team_size":79},{"value":52,"source":53,"evidence":54},"Running classic Windows and DOS executables without installing them","maker",[55],{"id":56},"post",null,{"value":59,"source":53,"evidence":60},"The current state was achieved in less than one hour using Claude Code",[61],{"id":62,"by":11,"text":63},"47182138","I actually contributed to retrowin32 to get Solitaire running there. Back then the only AI tool available was Copilot, and it took me several days just to get the main window…",[65,69,73],{"value":66,"source":53,"evidence":67},"Preact",[68],{"id":56},{"value":70,"source":53,"evidence":71},"Vite",[72],{"id":56},{"value":74,"source":53,"evidence":75},"TypeScript",[76],{"id":56},"open_source","beta","unknown",{"praise":81,"objections":105,"requests":146,"questions":165,"alternatives":177},[82,98],{"value":83,"source":84,"evidence":85},"Impressive and fast for a browser-based Windows emulator","commenter",[86,90,94],{"id":87,"by":88,"text":89},"47180862","jeroenhd","Seems to run a lot faster than the previous proof-of-concept I've found (https:\u002F\u002Fwww.boxedwine.org\u002Fapp). Then again, that website runs an entire Linux VM to support Wine.",{"id":91,"by":92,"text":93},"47186950","DustinBrett","I love how quick it is and that it can run screen savers. My site has a similar concept with drag and drop but is using BoxedWine behind the scenes so it's a bit slower to boot…",{"id":95,"by":96,"text":97},"47184170","maniazi83","This is seriously impressive. Emulating x86 + stubbing enough Win32 APIs in the browser is not trivial. How are you handling system calls that expect filesystem or registry…",{"value":99,"source":84,"evidence":100},"DOM-based window elements are inspectable",[101],{"id":102,"by":103,"text":104},"47184894","smusamashah","I can right click and inspect HTML. I was thinking it will all be rendered on a single canvas. It's not. All the window elements like buttons, title bars etc are html divs. This…",[106,120,135],{"value":107,"source":84,"evidence":108},"Many programs fail to run, including VB6 and QuickBASIC executables and many games",[109,113,117],{"id":110,"by":111,"text":112},"47184434","realityfactchex","Cool concept. I tried six different old Windows executables from programs I wrote way back when. FWIW: * My old VB 6 .exe apps all fail with \"Reason: Unimplemented API:…",{"id":114,"by":115,"text":116},"47187470","starshadowx2","I tried 22 old game EXEs I have and none of them worked. They would import and show the icon and some would open, but nothing would work and most wouldn't even close. They would…",{"id":118,"by":115,"text":119},"47188220","BANGBANG BLOCKS Bowarrow BOXWORLD Bricks CHIPS CODEBRAK DOTS HANGMAN JACKS JEZZBALL JWLTHIEF KOLUMZ PEGGED PIPE rodent SLAM TETRIS HOVER LEMMINGS These two .exe versions I have…",{"value":121,"source":84,"evidence":122},"Keyboard shift and DOS interrupt support are incomplete",[123,127,131],{"id":124,"by":125,"text":126},"47181554","ale42","Funny project... Tried to run SHELL from QBASIC, but it crashes: ``` D:\\qbasic.exe has encountered a problem and needs to close. Reason: illegal instruction Address: 0x00002fee ```",{"id":128,"by":129,"text":130},"47182211","stuaxo","Not sure shift is working. I tried using QBASIC but couldn't type : only ; because of that. Then I tried running the program SHELL and it crashed.",{"id":132,"by":133,"text":134},"47184835","ddgflorida","Nice. QBASIC FOR i = 1 to 5: PRINT i: NEXT hung up after 4. The shift key didn't work in the Qbasic Editor.",{"value":136,"source":84,"evidence":137},"Built with AI coding tools, criticized by some commenters",[138,142],{"id":139,"by":140,"text":141},"47181106","fao_","Really doesn't surprise me, to be honest: > We strongly recommend contributing with Claude Code or similar AI coding tools. [...] Of course, coding by hand is also welcome.",{"id":143,"by":144,"text":145},"47182887","pjc50","Making this a partial WINE-in-a browser, quite impressive. How much of this was AI?",[147,158],{"value":148,"source":84,"evidence":149},"Support more programs such as Sim Theme Park and Winamp 2.x",[150,154],{"id":151,"by":152,"text":153},"47181032","TechSquidTV","Please let me plan Sim Theme Park. I can't seem to run it on Crossover on my mac.",{"id":155,"by":156,"text":157},"47183090","tty456","Winamp 2.x would be great to add if allowed!",{"value":159,"source":84,"evidence":160},"Launch programs from a URL parameter",[161],{"id":162,"by":163,"text":164},"47181433","haonnoah","Pretty cool. The pipes program doesn't seem to have color. Thoughts on making programs launch from a URL parameter? IE Launching a screensaver or game?",[166,170],{"value":167,"source":84,"evidence":168},"How are filesystem and registry calls handled",[169],{"id":95,"by":96,"text":97},{"value":171,"source":84,"evidence":172},"Can it run Doom",[173],{"id":174,"by":175,"text":176},"47186430","ThrowawayTestr","Can it run doom?",[178,189],{"value":179,"source":84,"evidence":180},"retrowin32",[181,185],{"id":182,"by":183,"text":184},"47182058","butokai","Just a couple of hours ago I was thinking about this project from some time ago doing the same thing: https:\u002F\u002Fgithub.com\u002Fevmar\u002Fretrowin32 I wondered how much of this could be…",{"id":186,"by":187,"text":188},"47180747","LinusU","This is super cool! Checkout retrowin32 for something similar but written in Rust and not specifically targeting the web: https:\u002F\u002Fgithub.com\u002Fevmar\u002Fretrowin32",{"value":190,"source":84,"evidence":191},"BoxedWine",[192],{"id":87,"by":88,"text":89},{"comments":194,"answered":39,"key":195},15,[196,199,202],{"id":197,"text":198},"47181988","Ha — even the README itself was written by AI, including that very sentence. Funny times indeed.",{"id":200,"text":201},"47182080","Hidden feature: right-click any executable and select \"View Resources\" to browse its embedded resources like icons, bitmaps, dialogs, and version info. It even supports viewing…",{"id":62,"text":63},{"commenters":204,"max_depth":205,"maker_replies":194,"first_comment_mins":206,"lifespan_hours":207},40,6,36,146,[209,213,215,219,222,225,228,231,233,235,236,238,241,242,244,249,252,254,258,259,263,266,268,271,272,275,277,279,281,283,285,286,289,290,293,294,295,297,301,303,306,307,310,313,315,317,319,321,323,325,330,333,337,339,343,347,349,351,355,359,361,363],[210,40,48,211,212,40],"47180467","project\u002Fpositive\u002Fnone","chromehearts",[197,40,40,214,11,34],"maker\u002Fneutral\u002Fdocs",[216,40,40,217,218,40],"47182687","other\u002Fneutral\u002Fnone","pimlottc",[220,40,40,217,221,40],"47183658","frostworx",[223,40,40,217,224,40],"47183733","spwa4",[226,40,40,217,227,40],"47185868","darthcircuit",[229,40,40,217,230,40],"47190880","lioeters",[200,34,40,232,11,34],"maker\u002Fneutral\u002Fnone",[182,42,48,234,183,40],"project\u002Fpositive\u002Fidea",[62,42,40,232,11,34],[87,39,48,237,88,40],"project\u002Fpositive\u002Fperformance",[239,39,40,240,11,34],"47181983","project\u002Fneutral\u002Fperformance",[143,39,48,234,144,40],[243,39,40,232,11,34],"47206863",[245,246,39,247,248,40],"47183022",4,"project\u002Fneutral\u002Fidea","hard_times",[250,246,40,217,251,40],"47197302","theragra",[102,48,48,253,103,40],"project\u002Fpositive\u002Fdesign",[255,205,34,256,257,40],"47181042","project\u002Fcritical\u002Fexecution","Tepix",[139,205,34,256,140,40],[260,205,40,261,262,40],"47181345","commenter\u002Fneutral\u002Fnone","ftchd",[264,205,40,265,11,34],"47181966","project\u002Fneutral\u002Fexecution",[267,205,40,265,11,34],"47193707",[269,205,39,270,257,40],"47215146","project\u002Fmixed\u002Fexecution",[110,18,34,256,111,40],[273,18,40,261,274,40],"47185743","hypercube33",[276,18,40,261,111,40],"47225264",[186,278,48,234,187,40],8,[280,278,40,232,11,34],"47181936",[95,282,39,240,96,40],9,[284,282,40,265,11,34],"47206917",[114,33,34,256,115,40],[287,33,39,265,288,40],"47187666","SLWW",[118,33,34,256,115,40],[291,32,39,247,292,40],"47184627","pathartl",[91,45,48,237,92,40],[151,35,39,247,152,40],[296,35,40,265,11,34],"47181945",[298,299,34,256,300,40],"47180490",14,"b3lvedere",[302,299,40,265,11,34],"47181914",[304,299,48,305,300,40],"47184918","project\u002Fpositive\u002Fexecution",[124,194,34,256,125,40],[308,194,40,309,11,34],"47182177","maker\u002Fneutral\u002Fexecution",[311,194,39,312,129,40],"47182226","project\u002Fneutral\u002Fdocs",[314,194,34,256,129,40],"47182219",[162,316,39,265,163,40],16,[318,316,40,265,11,34],"47181960",[128,320,34,256,129,40],17,[132,322,34,256,133,40],18,[324,322,40,309,11,34],"47262341",[326,327,34,328,329,40],"47182735",19,"project\u002Fcritical\u002Fnone","itintheory",[331,327,40,261,332,40],"47188046","cluckindan",[334,335,34,256,336,40],"47180809",20,"Dwedit",[338,335,40,309,11,34],"47181918",[340,341,39,247,342,40],"47213143",21,"goosethe",[344,345,34,256,346,40],"47182413",22,"em3rgent0rdr",[155,348,39,247,156,40],23,[174,350,39,265,175,40],24,[352,353,48,211,354,40],"47182349",25,"alfiedotwtf",[356,357,48,211,358,40],"47183474",26,"KellyCriterion",[360,357,40,217,332,40],"47188058",[362,357,40,217,358,40],"47191678",[364,365,48,366,367,40],"47180401",27,"maker\u002Fpositive\u002Fnone","wertyu123",[],[370,375,380,384,389,393],{"id":371,"name":372,"points":373,"category":374},"47224295","I built a sub-500ms latency voice agent from scratch",570,"ai",{"id":376,"name":377,"points":378,"category":379},"47164270","Terminal Phone",322,"security_privacy",{"id":381,"name":382,"points":383,"category":374},"47195123","Now I Get It",305,{"id":385,"name":386,"points":387,"category":388},"47220809","Govbase",219,"productivity",{"id":390,"name":391,"points":392,"category":374},"47212576","Timber",207,{"id":394,"name":395,"points":14,"category":396},"47197218","Stacked Game of Life","learning_science",false,"v2",{"id":400,"name":5,"line":6,"ai":397,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":401,"top":18,"kw":402,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":403,"url":9,"mix":404,"praise":83,"objection":107,"sub":21},47180083,0.01,[24,25,26,27,28],"5000050553511031053131531513131011313555",[32,33,34,35],1794036694648]