[{"data":1,"prerenderedAt":350},["ShallowReactive",2],{"project-21874772":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":20,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":43,"post_text":45,"what":46,"said":112,"maker_in_thread":162,"shape":170,"grid":174,"attempts":313,"same_week":314,"maker_shows":33,"maker_hidden":343,"reader_version":344,"card":345},"21874772","Gameslab","A FPGA powered handheld game console","title","Show HN: Gameslab, a FPGA powered handheld game console","https:\u002F\u002Fcraigjb.com\u002F2019\u002F11\u002F26\u002Fgameslab-overview\u002F","craigjb.com","craigjb",1577220186,2019,406,50,52,2195,3,"legend","hardware","handheld game console",[23,24,21,25,26],"fpga handheld","fpga console","stm32 rust","retro emulation fpga","loved",0.55,{"positive":30,"neutral":31,"mixed":32,"critical":33},15,8,0,1,24,{"idea":36,"execution":38,"docs":40,"design":41,"pricing":42},{"positive":37,"critical":33},4,{"positive":39,"critical":32},2,{"positive":33,"critical":32},{"positive":39,"critical":32},{"positive":33,"critical":32},[44,32,32,32,32,32,44,32,44,32,44,18,32,18,32,18,32,32,18,32,18,32,44,18,44,32,44,44,32,44,32,44,18,32,44,33,32,32,44,44],5,null,{"problem":47,"audience":45,"pricing":45,"motivation":54,"time_to_build":45,"stack":58,"openness":110,"stage":110,"team_size":111},{"value":48,"source":49,"evidence":50},"Experimenting with custom hardware per game and 3D acceleration","maker",[51],{"id":52,"by":11,"text":53},"21877093","Thanks! I actually didn't originally intend it to be for retro game emulation, more for experimenting with custom hardware for each game and with 3D acceleration hardware. But,…",{"value":55,"source":49,"evidence":56},"Experimenting with custom hardware for each game and 3D acceleration; later porting MiSTer retro emulators",[57],{"id":52,"by":11,"text":53},[59,69,75,83,87,91,100,106],{"value":60,"source":49,"evidence":61},"FPGA (Xilinx Zynq SoC)",[62,65],{"id":63,"by":11,"text":64},"21877105","I've seen a split. Some people are looking for CPU acceleration. Others say Zynq effectively covers the case where FPGA designs include a soft-core anyway for high-level control,…",{"id":66,"by":67,"text":68},"21876926","fake-name","It's weird to see someone refer to a zynq as a FPGA. Every time I've been involved with one, it's been basically a CPU with various accelerators for specific functions done in…",{"value":70,"source":49,"evidence":71},"Rust",[72],{"id":73,"by":11,"text":74},"21877179","Thanks! There was definitely a lot of learning involved--I wrote up some here: https:\u002F\u002Fcraigjb.com\u002F2019\u002F12\u002F04\u002Fgameslab-fails\u002F To be honest, I really don't know a good KiCad…",{"value":76,"source":49,"evidence":77},"STM32L0 microcontroller",[78,79],{"id":73,"by":11,"text":74},{"id":80,"by":81,"text":82},"21880136","SlowRobotAhead","> STM32L0 onboard runs embedded Rust firmware First time I’ve seen a real project using this. How far is embedded rust away from “prime time” you think? Also, the STM32 is a…",{"value":84,"source":49,"evidence":85},"Debian Linux",[86],{"id":73,"by":11,"text":74},{"value":88,"source":49,"evidence":89},"U-Boot bootloader",[90],{"id":73,"by":11,"text":74},{"value":92,"source":49,"evidence":93},"RTFM RTOS",[94,97],{"id":95,"by":11,"text":96},"21877211","Yeah, Rust is great! I've used it on several production projects for work, but not for extensive embedded work before this. Embedded Rust is getting better and better! Shout out…",{"id":98,"by":11,"text":99},"21882039","Yeah! Embedded Rust on STM32* right now is pretty good! A lot of consolidation has happened in the device crates and HAL crates recently, so I'm adjusting a bit. But, it's…",{"value":101,"source":49,"evidence":102},"SpinalHDL",[103],{"id":104,"by":11,"text":105},"21877071","Thanks! I always recommend getting hands-on for learning more about FPGAs. FPGA boards are cheaper than ever, and you have all different ones now. I'd say get a Lattice ECP5…",{"value":107,"source":49,"evidence":108},"KiCad",[109],{"id":73,"by":11,"text":74},"unknown","solo",{"praise":113,"objections":126,"requests":134,"questions":135,"alternatives":154},[114],{"value":115,"source":116,"evidence":117},"Love the Rust use and the case design","commenter",[118,122],{"id":119,"by":120,"text":121},"21877204","ragerino","Thanks a lot! I love that you are using Rust.",{"id":123,"by":124,"text":125},"21880067","blakesmith","This is awesome. The case fabrication looks great. What materials and fabrication process did you use? I'm particularly interested to hear more details of how you made such a pro…",[127],{"value":128,"source":116,"evidence":129},"FPGAs are unlikely to help game engines much",[130],{"id":131,"by":132,"text":133},"21876891","vvanders","Not really a whole lot. FPGAs work best where you have precise timing requirements or really wide signals. Most game engines are about throughput and I don't think you'd see a…",[],[136,147],{"value":137,"source":116,"evidence":138},"Can the FPGA be partially reconfigured while running?",[139,143],{"id":140,"by":141,"text":142},"21877998","zupa-hu","> The FPGA fabric means that games and apps can bring their own unique hardware to load into the fabric. Curious, can you both execute code on the FPGA and simultaneously write…",{"id":144,"by":145,"text":146},"21878521","lnsru","Your question is hard to understand. FPGA logic fabric must be loaded at once. There is a method called partial reconfiguration, one can swap pieces of the logic design on the…",{"value":148,"source":116,"evidence":149},"Why SpinalHDL over Chisel?",[150],{"id":151,"by":152,"text":153},"21877436","SoylentYellow","Was there a reason you decided to use SpinalHDL instead of Chisel?",[155],{"value":156,"source":116,"evidence":157},"Analogue Pocket FPGA handheld",[158],{"id":159,"by":160,"text":161},"21877893","louhike","For those interested in that, Analogue will release the Analogue Pocket, a FGPA handheld console too. It will play Gameboy and Gameboy Advance games and you will be able to…",{"comments":163,"answered":37,"key":164},11,[165,166,169],{"id":52,"text":53},{"id":167,"text":168},"21882044","Thanks Chris! I didn't know you hang out on HN too :P You're slowly becoming a software guy after all...",{"id":73,"text":74},{"commenters":171,"max_depth":44,"maker_replies":163,"first_comment_mins":172,"lifespan_hours":173},34,422,125,[175,179,181,185,188,190,192,196,200,201,203,206,208,209,211,215,217,220,223,226,228,229,232,234,235,238,242,243,246,248,249,252,254,256,259,264,267,272,275,278,282,284,285,290,294,296,299,301,305,309],[176,32,44,177,178,32],"21876649","project\u002Fpositive\u002Fidea","ObsoleteNerd",[52,32,32,180,11,33],"maker\u002Fneutral\u002Fidea",[182,32,32,183,184,32],"21878190","commenter\u002Fneutral\u002Fnone","Lerc",[186,32,32,183,187,32],"21888233","nerpderp82",[189,32,32,183,184,32],"21901179",[159,33,32,191,160,32],"other\u002Fneutral\u002Fnone",[193,33,32,194,195,32],"21879623","other\u002Fneutral\u002Fpricing","city41",[197,39,44,198,199,32],"21878407","project\u002Fpositive\u002Fnone","ChrisGammell",[167,39,32,183,11,33],[202,39,32,183,199,32],"21883196",[204,18,44,205,120,32],"21877136","maker\u002Fpositive\u002Fexecution",[73,18,32,207,11,33],"maker\u002Fneutral\u002Fexecution",[119,18,44,205,120,32],[95,18,32,210,11,33],"maker\u002Fneutral\u002Fnone",[212,18,18,213,214,32],"21877521","maker\u002Fneutral\u002Fdocs","steve918",[216,18,32,183,145,32],"21877665",[218,18,18,210,219,32],"21878312","diegoperini",[221,18,32,183,222,32],"21891793","rowanG077",[224,18,18,213,225,32],"21881115","amelius",[140,37,18,227,141,32],"maker\u002Fneutral\u002Fdesign",[144,37,32,183,145,32],[230,37,32,183,231,32],"21878917","wtallis",[66,44,18,233,67,32],"project\u002Fneutral\u002Fdesign",[63,44,32,227,11,33],[236,44,32,183,237,32],"21877484","blackguardx",[239,240,18,213,241,32],"21877039",6,"syntaxing",[104,240,32,213,11,33],[244,240,44,245,241,32],"21877102","maker\u002Fpositive\u002Fdocs",[247,240,32,213,11,33],"21877120",[151,240,18,213,152,32],[123,250,44,251,124,32],7,"project\u002Fpositive\u002Fdesign",[253,250,32,227,11,33],"21882028",[255,250,44,251,124,32],"21882243",[257,31,44,177,258,32],"21909962","yowlingcat",[260,261,32,262,263,32],"21877026",9,"other\u002Fneutral\u002Fperformance","bullen",[265,261,32,266,11,33],"21877084","project\u002Fneutral\u002Fperformance",[268,269,44,270,271,32],"21880974",10,"project\u002Fpositive\u002Fpricing","calewis",[273,269,32,194,274,32],"21881269","naikrovek",[276,163,44,177,277,32],"21879460","gautamcgoel",[279,280,44,177,281,32],"21879005",12,"AtlasBarfed",[80,283,18,207,81,32],13,[98,283,32,207,11,33],[286,287,44,288,289,32],"21877463",14,"maker\u002Fpositive\u002Fnone","nemasu",[291,30,32,292,293,32],"21876846","other\u002Fneutral\u002Fidea","smaddox",[131,30,33,295,132,32],"project\u002Fcritical\u002Fidea",[297,30,32,191,298,32],"21876994","cobalt",[300,30,32,191,11,33],"21877095",[302,303,44,288,304,32],"21881826",16,"terrycody",[306,307,44,198,308,32],"21903266",17,"bfrog",[310,311,44,198,312,32],"21879896",18,"philzook",[],[315,320,324,329,333,338],{"id":316,"name":317,"points":318,"category":319},"21858226","Angeldust",716,"games",{"id":321,"name":322,"points":14,"category":323},"21855986","22120","infrastructure",{"id":325,"name":326,"points":327,"category":328},"21880446","Cats of Jasnah",367,"learning_science",{"id":330,"name":331,"points":332,"category":328},"21851495","Mandarin Tone Trainer",237,{"id":334,"name":335,"points":336,"category":337},"21841368","gc",192,"languages",{"id":339,"name":340,"points":341,"category":342},"21843382","Fellowage",186,"web_saas",false,"v2",{"id":346,"name":5,"line":6,"ai":343,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":347,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":348,"url":9,"mix":349,"praise":115,"objection":128,"sub":21},21874772,[23,24,21,25,26],"5000005050530303003030535055050530510055",[30,31,32,33],1794036584332]