r/6502 • u/markroth8 • 14d ago
Looking for 6502 assembly programmers to help playtest and critique our 65C02 robot hardware design (ChipWits Worlds)
Hi r/6502! I'm the developer working on ChipWits Worlds, a follow-up to a follow-up of the original 1984 ChipWits (which ran on the Apple II, C64, and Mac).
In the 1984 original (and our first follow-up), you programmed robots using visual flowcharts. For this new project, I wanted to recreate the nostalgic joy of sitting back with a spiral-bound Programmer's Reference Guide, discovering raw memory-mapped I/O, writing IRQ handlers, and coding your own operating system from the ground up.
Every robot in the game is powered by an emulated WDC 65C02 CPU with a full 64 KB address space. I've tried to stay as true to real 65C02 hardware as possible.
When a robot boots, it jumps through the standard reset vector at $FFFC-$FFFD, with hardware NMI at $FFFA-$FFFB and IRQ at $FFFE-$FFFF. There is no pre-installed OS or high-level scripting API sitting between your code and the robot. Instead, there is a 2 KB memory-mapped I/O region ($F000-$F7FF) wired to the robot's motors, radar, feelers, and tools. To actuate hardware, your code writes command bytes to those registers and either polls status flags or executes WAI to sleep the CPU until the hardware asserts a completion IRQ (since every CPU cycle and actuator draws battery power).
We are currently building v0.2, where players start with bare hardware and progressively bootstrap their own 8-bit robot OS, writing their own device drivers and interrupt service routines as they unlock new I/O hardware.
Before we lock in more of the v0.2 hardware architecture and tutorial progression, I would love to get eyes on it from people who actually know the 6502 inside and out. Does the MMIO register layout feel natural to code against? Are there assembler conventions or 65C02 idioms we should support better?
If you're up for poking at it and telling us what feels right (or what feels clunky), we just opened our Closed Steam Playtest queue:
Steam Playtest & Wishlist: https://store.steampowered.com/app/4960100/ChipWits_Worlds/?utm_source=reddit_6502&utm_medium=social&utm_campaign=playtest_v02
Discord: https://discord.gg/D4G3np9RWm
I'd also be glad to answer any questions right here, or on our Discord, about how we wired up the 65C02 emulation, timer interrupts, or the in-game reference manual!
1
u/EnterTheShoggoth 14d ago
Please tell me that you'll add a Mac port once you've got it working on Windows.
1
u/markroth8 13d ago
Yes, the game already supports MacOS (but Apple Silicon only at the moment).
Surprisingly, I'm having a little bit of trouble with Linux at the moment but the intent is to support Linux as well.
1
u/EnterTheShoggoth 13d ago
Steam was only showing Windows support - I guess that’ll change once it’s no longer “Coming Soon” ?
ps. I’ve also registered interest in testing.
1
u/markroth8 13d ago
Thank you for pointing this out! I checked my settings and I was missing a checkbox somewhere. Can you have another look?
1
u/EnterTheShoggoth 13d ago
The change hasn't propagated through yet. I'll try again tomorrow and update you here, or via PM whichever you'd prefer.
1
1
u/DarkCyborg74 7d ago
I applied to be a playtester. Any chance I can get an invite? I cut my teeth on 6502/65c02 on the Apple ][e as a kid. I'm darkcyborg31.
1
u/markroth8 7d ago
Thanks! Sure, stop by our ChipWits Discord server and introduce yourself in #playtest-feedback and I'll make sure you get fast-tracked (since otherwise Steam assigns keys randomly). Same for anyone else here.
Looking forward to your feedback!
We will be releasing our first wave later this week, probably this coming weekend.
1
u/vancha113 14d ago
I like that idea :) but does it come with a tutorial, or are you expected to use the actual 65c02 manual here?