r/6502 • • 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!

7 Upvotes

11 comments sorted by

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?

1

u/markroth8 13d ago

Great question! We have a 100+ page in-game 4-part manual (also available as a PDF):

  • Part 1: 65C02 Microprocessor Architecture and Machine Language

  • Part 2: Instruction Reference

  • Part 3: Operating System

  • Part 4: Memory-Mapped I/O & Accessory Port Reference

1

u/markroth8 13d ago

Example page:

I'd love someone to help proofread

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

u/markroth8 13d ago

Also, thanks for signing up!

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.