[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81942":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":11,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":13,"stars7d":13,"stars30d":14,"stars90d":12,"forks30d":12,"starsTrendScore":15,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":12,"starSnapshotCount":12,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},81942,"TXW818_WalkieTalkie_Doom","atc1441\u002FTXW818_WalkieTalkie_Doom","atc1441",null,"C",26,1,0,3,4,9,0.9,false,"main",true,[],"2026-06-12 02:04:21","# TXW818 WalkieTalkie Doom\n\n\u003C!-- VIDEO PLACEHOLDER - replace the image and link once the video is published -->\n\u003C!--\n[![Watch the demo](images\u002Fpreview.jpg)](https:\u002F\u002Fyoutu.be\u002FPLACEHOLDER)\n-->\n\nDoom running on cheap Chinese walkie-talkies powered by the **TXW818 SoC** (C-Sky architecture, 240 MHz).\nThese devices come with 2 MB or 4 MB of SPI Flash and an internal 4 MB PSRAM - just enough to squeeze in a\ncompressed Doom.wad and play a full round of the classic first-person shooter on the built-in 240×320 LCD.\n\n---\n\nThis repo is made together with this explanation video:(click on it)\n\n[![YoutubeVideo](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002F5aRQLHLls0k\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5aRQLHLls0k)\n\n## Hardware\n\n![Walkie Talkie overview](images\u002Fdoom_overview.jpg)\n\n| Component | Details |\n|-----------|---------|\n| SoC | TXW818 (C-Sky RISC, 240 MHz) |\n| Flash | 2 MB or 4 MB SPI NOR (auto-detected at boot) |\n| PSRAM | 4 MB internal (2.2 MB heap, 1.5 MB for Doom game data) |\n| Display | 240×320 RGB565 LCD (NV3031A driver) |\n| Input | 3-button ADC resistor ladder on PA\\_3 (UP \u002F DOWN \u002F PRESS) |\n| Audio | On-chip DAC, OPL-based FM sound synthesis |\n\nThe firmware auto-detects 2 MB vs 4 MB hardware at boot and adjusts the ADC button thresholds accordingly.\n\n---\n\n## Doom port\n\nThe engine is adapted from **[esp32c3-doom-bauble](https:\u002F\u002Fgithub.com\u002FSpritetm\u002Fesp32c3-doom-bauble)**\nby Spritetm - a Doom port targeting the ESP32-C3 - which is itself derived from **GBA Doom**\n(a port of [PrBoom](https:\u002F\u002Fprboom.sourceforge.net\u002F) 2.5.0).\nFixed-point math helpers originate from the Jaguar Doom port.\n\nThe bundled WAD is a **custom stripped-down version of the Doom 1 Shareware WAD**:\nonly Episode 1 Map 1 (E1M1) is included, and a number of graphics lumps (intermission screens,\nmenu graphics, unused patches) have been removed to fit the data inside the available Flash.\nThe WAD is compiled directly into the firmware as a gzip-compressed C byte array\n(`doom_iwad_gz.c`, auto-generated from `smaller_doom.bin.gz`) and decompressed into PSRAM at\nstartup - no SD card or external storage is required.\n\n---\n\n## Building\n\n1. **Extract the CDK IDE** - unpack `cdk-windows-V2.24.5-20250108-1536.zip` anywhere on your PC. Get it from here: https:\u002F\u002Focc-oss-prod.oss-cn-hangzhou.aliyuncs.com\u002Fresource\u002F\u002F1736405165640\u002Fcdk-windows-V2.24.5-20250108-1536.zip\n\n2. **Open the project** - launch the CDK IDE and open the project file\n   `ATC_TXW_Doom\u002FATC_TXW_Doom.cdkproj`.\n\n   ![Open project file in Explorer](images\u002FOpenProjectFIle.png)\n\n3. **Compile** - click *Build* (or press F7, circled in the toolbar screenshot below).\n\n   ![CDK IDE with Build button highlighted](images\u002Fcompile.png)\n\n   A successful build ends with `0 error(s)` and produces the output binaries:\n\n   ![Successful build output](images\u002Ffinished_compiled.png)\n\n4. **Output binary** - after a successful build the ready-to-flash image is located at\n   `ATC_TXW_Doom\u002Fatc_txw818_walkietalkie_doom.bin`.\n\n---\n\n## Flashing\n\nFlashing requires a **BluePill-based flash adapter**.\nBuild the adapter as described in the manual:\n\n> **https:\u002F\u002Fwww.elektroda.com\u002Frtvforum\u002Ftopic4120455.html**\n\nOnce the adapter is ready:\n\n1. Connect the walkie-talkie to the adapter according to the pinout shown in the manual.\n\n2. **First-time flash only - bridge the external Flash IO pins.**\n   When flashing over an unmodified stock firmware the SoC may boot into the existing firmware\n   before the flasher can take control. To prevent this, bridge the IO2 and IO3 pins of the\n   external SPI Flash chip together while powering on the device. This holds the Flash in a\n   non-executable state so the SoC stays in its built-in ROM boot\u002Fdownload mode.\n   **Remove the bridge immediately after power-up** - leaving it in place will prevent flashing\n   from working.\n\n3. Open `ATC_TXW_Doom\u002FCSKYFlashProgramerConsole.bat` (or use the CDK built-in flash tool).\n4. Select `atc_txw818_walkietalkie_doom.bin` as the target image and flash it to address `0x0`.\n\n   ![Flash Programmer Console output](images\u002Fflashing.png)\n\n---\n\n## License\n\nThis project is a combination of multiple independent works. Each part remains under its original\nlicense and belongs to its respective author(s):\n\n- **Doom engine \u002F PrBoom 2.5.0** - © id Software, © Colin Phipps et al., GNU GPL v2\n- **GBA Doom port** - © Killough, Calum Lewis and contributors, GNU GPL v2\n- **esp32c3-doom-bauble** - © Spritetm, https:\u002F\u002Fgithub.com\u002FSpritetm\u002Fesp32c3-doom-bauble\n- **Jaguar Doom math helpers** - © id Software \u002F Arc0re, see `gba_functions.h`\n- **TXW818 SDK and libraries** - © the respective SDK vendor; pre-built blobs are included as-is\n- **Glue code and HAL adaptations** (display, buttons, main) - released without additional\n  restrictions alongside this repository\n\nNo authorship or credit is claimed for any of the upstream components.\nAll trademarks (including *Doom*) belong to their respective owners.\n","该项目实现了在基于TXW818 SoC的廉价对讲机上运行经典第一人称射击游戏Doom。核心功能包括利用设备内置的2MB或4MB SPI闪存及4MB PSRAM加载压缩后的Doom.wad文件，并通过240×320分辨率LCD屏幕显示游戏画面，同时支持基本的声音合成和三键控制输入。技术特点方面，项目采用C语言开发，固件能够自动检测硬件配置并调整参数以适应不同版本的设备。该方案特别适合于对嵌入式系统性能优化感兴趣的技术爱好者以及希望探索低成本硬件潜能的应用场景。",2,"2026-06-11 04:07:16","CREATED_QUERY"]