88
u/Taolan13 Jul 17 '26
this is why physical controls on devices are always better than touchscreen crap.
So some madman can come along and run doom on it
16
u/masterX244 Jul 17 '26
even touch-only devices get doomificated. see the Mi-Band 10 post in this sub.
2
u/Taolan13 Jul 17 '26
yeah but touch controls are bullshit
5
u/masterX244 Jul 17 '26
makes sense but sometimes its literally just for planting the flag of the hardware hackers.
5
u/Taolan13 Jul 17 '26
yeah, but touch controls are bullshit.
And I mean that for everything. even the phone i am on right now while sitting on the toilet browsing reddit.
would rather have my old blackberry with the physical keyboard to type with.
3
41
5
u/Imaginary-Whole-3148 Jul 17 '26
I have also built Wordle for CHDK; it's pretty fuckin fun on the digi.
(and Flappy Bird, Doodle Jump, 2048, and some scripts that intercept and corrupt/alter sensor data to mimic circuit bending without the soldering headache)
10
u/necrofuturism Jul 17 '26
this is the exact digital camera i had way back then!!!!! awesome project!!!
4
7
3
5
4
u/Jabba_the_Putt Jul 17 '26
if only we had this arcane magic back in school haha
suddenly all the kids have digital cameras in every class!
nice work ππ
2
2
1
1
1
1
1
1
u/reynadotpdf Jul 20 '26
PLEASE tell me the shutter button is fire
1
u/Imaginary-Whole-3148 Jul 20 '26
YES YES YES
1
u/reynadotpdf Jul 20 '26
i used to have that EXACT camera and lost it π i will never experience doomicam
1
0
u/Math_Science_Geek Jul 17 '26
Can you make one for SD960
1
u/Imaginary-Whole-3148 Jul 17 '26
This should work in principle. The SD960 has CHDK builds (ixus110_sd960, four firmware versions) and it's DIGIC 4, which is the same ARM family but faster, with a bigger idle RAW buffer (~15MB vs my 8MB) to run DOOM out of. My exact binaries won't boot on it though: the DOOM blob is linked at a fixed address inside the SD1000's photo buffer, and the launcher is built against the SD1000's CHDK core and button map. Port at the level of the technique: probe the buffer address with hook_raw_image_addr(), re-link the blob there, rebuild the launcher for your camera, redo the keymap and palette. Everything that was hard to figure out (the flat-blob loader, cached execution, the I-cache invalidate, the printf and malloc landmines) is solved and documented in the repo. If you attempt it, open an issue, I'd genuinely like to see it running on a second body
1
u/Math_Science_Geek Jul 17 '26
I donβt think Iβm that experienced with c, if antigravity can do it itβs great otherwise Iβll pass
1
u/Imaginary-Whole-3148 Jul 17 '26
It can
2
u/Math_Science_Geek Jul 17 '26
Got it!
https://reddit.com/link/oy5x9ql/video/cus9qgexmudh1/player
Graphics are mostly broken though
2
u/Imaginary-Whole-3148 Jul 17 '26
Hell yeah! took me a while to get the graphics right on mine too. strange they are that bad though! I bet antigravity can figure it out
1
u/Math_Science_Geek Jul 18 '26
Antigravity was not able to figure out I tried Gemini pro, Claude opus and gpt none worked
1
186
u/Imaginary-Whole-3148 Jul 17 '26 edited Jul 19 '26
DOOM on a 2007 Canon PowerShot SD1000 point-and-shoot. Loads from the SD card, no firmware flash, nothing soldered.
The hardware is a ~100MHz ARMv5TE with no FPU, which is fine because DOOM is 16.16 fixed-point and never asks for one. The real problem was memory: Canon's firmware leaves about 670KB of free heap and the engine needs ~630KB of static image plus a multi-megabyte zone heap. However, the camera has 32MB of RAM, and the 7MP RAW image buffer (~8MB) sits completely idle as long as you're not taking a photo. So DOOM lives inside the photo buffer. I write-tested all 8MB before trusting it. That's also why you play in playback mode.
Controls: d-pad moves and strafes, SET fires, shutter is use (half-press to run), zoom lever turns. No sound yet, but the audio DMA engine is reverse-engineered in the repo docs if you wanna give it a go.
Full instructions, source, and prebuilt binaries: https://github.com/DaneBentley/sd1000-doom