Sonic 060 - credits and attributions

An honest account of who made Sonic 060, and of where every idea, every line of borrowed code and every byte of borrowed data in it came from. It is written to be shown to the people it credits, and to anyone else.

Sonic 060 is an unofficial, non-commercial fan port of Sonic The Hedgehog (Mega Drive, 1991) to AGA Amigas. It was vibe coded by Afrotechmods with Claude, Anthropic's AI model: Afrotechmods never wrote a single line of code. He started the project, directed it, set its rules, chose its art and tested the builds on his own Amiga; Claude wrote all of the code. It is not affiliated with, endorsed by, or connected to SEGA, nor to reassembler, RetroRic or Sonic Retro. Any mistakes below are ours. Corrections are welcome and will be applied.

Sonic 060 is not Aonic. Aonic is reassembler's port, with RetroRic's palette and art work, and it is aimed at a stock Amiga 1200. Sonic 060 is a separate port by different hands, aimed at an A1200 with a fast accelerator and fast RAM. The two share nothing beyond what this document credits. No Aonic code, art or data is in Sonic 060, and none of it has ever been seen.

This is version 3.0 of this document (29 September 2026), written for the first public release, Sonic 060 1.00a. Earlier versions were written for the project itself and for an email to reassembler and RetroRic. Section 13 explains how this one was put together.


The short version

Who What Sonic 060 took, or what they did What it did not take
SEGA The entire game: Code, level design, art, music, physics. It is their work and their property. -
reassembler The rendering architecture. The single most important idea in Sonic 060, the attached-AGA-sprite background layer, is his, and so are about a dozen further mechanisms and several rules of method. Any code, any art, any data, any binary. His source is not public and has never been seen.
RetroRic Analysis and hard-won lessons, chiefly the tile-animation-versus-palette-cycling verdict, and his documentation of the palette crunch, which is why Sonic 060 decided not to do one. Nothing material at all. No palettes, no art, no colour values, no code.
Sonic Retro The Sonic 1 disassembly. 159 of its source files are compiled directly into the game. -
Nuke.YKT Nuked-OPN2, used verbatim as a build-time tool to render the music. The only third-party source code in the project. -
Afrotechmods He vibe coded Sonic 060 with Claude: The project's question, its direction, its target machine, about 64 test builds played on real hardware, about 150 bug reports, every background art choice, and a long list of ideas and rules (section 11). He never wrote a single line of code. -
Claude (Anthropic) Every line of code, every tool, every converter, every analysis document and every commit (section 12). -

If you remember one thing: reassembler's published architecture is load-bearing here. Strip it out and Sonic 060 does not exist in its current form. Nothing of RetroRic's artwork is in it, but his published reasoning changed two design decisions.

Both of them can be supported directly, and their work is ongoing. Their Patreon, YouTube, itch.io and site links are in sections 2 and 3, beside what each is credited for, and gathered again under Supporting the people Sonic 060 is built on (section 4). Sonic 060 takes no money, so nothing here competes with them.


1. SEGA

Sonic The Hedgehog, its characters, code, level design, artwork and music are SEGA's property. Everything Sonic 060 contains is a derivative work of theirs. We take no money for it, we distribute no ROM, and we will comply immediately if asked to stop.

The project's tools convert the game's data from a legally obtained ROM and the disassembly at build time, and the project's source repository holds none of SEGA's data. The game's level and music files, and the two Workbench icons (drawn from Sonic's own sprite art), are SEGA's artwork and music in a different form.


2. reassembler (@reassembler68k, GitHub djyt) - Aonic

The most important attribution in this document. reassembler has spent about ten months porting Sonic 1 to a stock A1200, and published the engineering as he went, across thirteen devlog videos and fifteen free Patreon posts. His architecture is the foundation Sonic 060 is built on.

His code is closed until his game ships. We have never seen it. Everything below came from his public videos, his public Patreon posts, his demo's readme, and the hunk and symbol layout of the shipped aonic executable. No byte of his binary was disassembled into Sonic 060.

Where his work lives, and how to support it

Everything this section credits him for, he published himself. If any of it is worth something to you, this is where to say so. His Patreon is how the work gets funded, and his Aonic devlog posts are free to read without a pledge, so it is support rather than a toll.

Patreon - support the work here https://www.patreon.com/REASSEMBLER68K
The Aonic devlog collection on Patreon https://www.patreon.com/collection/2261474
YouTube https://www.youtube.com/@reassembler68k
Aonic, the Green Hill Zone demo (free) https://reassembler68k.itch.io/aonic
OutRun: Amiga Edition, his earlier port https://reassembler68k.itch.io/outrun-amiga-edition
OutRun music, and the vinyl https://reassembler.bandcamp.com
Blog - Reassembler: Emulation & Decompilation https://reassembler.blogspot.com
Code - sonic2mod, cannonball and more https://github.com/djyt
The interactive collision explainers https://djyt.github.io/youtube
Discord https://discord.com/invite/u94mmuCzgB
X https://twitter.com/djyt

2.1 Ideas of his that Sonic 060 adopted - the architecture

  1. The attached-AGA-sprite background layer. Eight hardware sprites, 64 pixels wide, attached in pairs for 15 colours, forming a 256-pixel strip repeated horizontally, repositioned per parallax band by the copper, sitting behind the playfield. This is his invention as applied to this problem, and it is the load-bearing decision of the renderer. A CPU-written background, costed against Green Hill's own data, came to 9 ms on a typical screen: A 25 fps design. His layer costs about 1 ms. Without it there is no 50 fps port.
  2. 288 pixels wide, fetch mode 1. He discovered that AGA sprites and the bitplane fetch of a hardware-scrolled display cannot coexist at 320 pixels, and said there is no easy way around it. We measured it independently on Afrotechmods' machine and on an emulator and got exactly his answer, but we knew where to look because he said so first.
  3. A resident, hardware-scrolled playfield with partial redraw. Draw only the column or row that scrolls into view; never redraw the frame.
  4. A pristine second copy for restoration, with no save-before-blit. We kept the principle and changed the mechanism (ours is a fast-RAM shadow), but the insight that the save step can be deleted rather than optimised is his.
  5. A dynamic copper list rebuilt every frame, skipping bands whose scroll value has not changed. He found this counterintuitively faster than a static list. We took the result and added delta-writing on top.
  6. One restore rectangle per object, not per sprite piece.
  7. Objects unchanged for several frames skip the restore entirely.
  8. Pre-built 16x16 blocks with their flip variants, replacing runtime 8x8 tile composition.
  9. The animated-tile solution, both halves. A script marks, offline, every block containing an animated tile; at runtime a handler keeps a live list of the on-screen ones and touches only those. We would not have found it unaided.
  10. Foreground priority as a per-block priority mask rather than a re-derivation at runtime.
  11. A bespoke HUD in its own copper band, outside the scrolling play area, as a rendering optimisation, with its one-row layout. (His sits above the play area; Sonic 060's sits below it, at Afrotechmods' request.)
  12. Sprite draw order back-to-front, inverting the Mega Drive's front-to-back hardware order.
  13. The AGA quirk that keeps sprites off the leftmost pixels, and his 2-pixel background scroll granularity.
  14. REV01 as the target ROM revision.

2.2 Rules of method adopted from him

2.3 Numbers of his used as ground truth

2.4 Ideas of his deliberately not used, and why

These are not criticisms. Almost every one exists because he targets a stock A1200 with no fast RAM, a constraint he chose as a personal challenge. Sonic 060 targets an A1200 with a fast accelerator and fast RAM, so the constraint that produced these does not apply.

His mechanism Why Sonic 060 skipped it
A 128-slot sprite cache Memory-driven. Sonic 060 pre-builds every sprite frame offline into fast RAM.
Runtime sprite assembly from 8x8 tiles The same. Shipped ready.
A 16x16 block cache built at level load The same. Shipped pre-built.
Runtime Nemesis / Kosinski / Enigma decompression 1991 cartridge economics. Converted offline.
The blitter, entirely Measured on Afrotechmods' Blizzard 1260: The CPU writes chip RAM faster than the blitter copies, and the two contend rather than add. The game never draws with the blitter (its start-up speed test only times it). That measurement is for the 68060: On a slower 68020 or 68030 the blitter would draw sprites faster than the CPU, which is why his blitter/CPU interleaving is the right design for Aonic's stock A1200s. It does not transfer to a 68060 card.
A vertically doubled playfield and corkscrew horizontal scroll Replaced by a full-height playfield, which fast RAM makes affordable.
The copper Y-split Not needed with a full-height playfield.
Static scenery baking Not implemented.
Priority re-blit Resolved instead in the fast-RAM composite, where draw order gives priority for free.
Five bitplanes, 32 + 16 colours Sonic 060 runs six planes and 64 colours.
Interleaved bitplanes A blitter optimisation; our planes are separate because the CPU writes them.
The sonic2mod / SMPS-to-MOD / ptplayer audio path See 2.5.
SonLVL with "Amiga Mode", and his modified Flex 2 Sonic 060 has its own Python converter reading the disassembly directly.
Object tagging in a forked SonLVL Derived automatically by the converter.
Dual playfield He tried it and rejected it for the 16-colour limit; we reached the same verdict.

2.5 Where Sonic 060 diverged most sharply: Audio

reassembler's public djyt/sonic2mod converts Sonic's SMPS music to ProTracker MOD by synthesising instrument samples with a YM2612 core, and his engine plays them with Frank Wille's ptplayer. It is good work and it is public.

Sonic 060 did not use it, or any part of it. Every track and all 49 sound effects are rendered to PCM offline, by running our own reimplementation of the Sonic 1 sound driver against a YM2612 emulator and our own SN76489 model, and the result is streamed through Paula. (Pre-rendered PCM in deduplicated chunks was Afrotechmods' idea, section 11.3.) Since build 75 the music files are also losslessly packed. This costs a great deal of fast RAM, which Sonic 060's target machine has and his does not. No code, configuration or output of sonic2mod is in Sonic 060.

2.6 What is unambiguously his

2.7 One thing he should know

reassembler is on record that he uses no AI on his game's own code: He writes it by hand, for enjoyment and control, and uses AI only on tooling. He has also said he finds AI agents "incredibly unreliable with assembly language and surprisingly good with modern languages."

Sonic 060 is the opposite experiment, and he is entitled to know that. All of its code, including the 68000 assembly, was written by Claude. His assessment was quoted in the project's own planning documents as a guard against over-confidence, and section 12 lists some of the ways it proved right.


3. RetroRic (@RetroRic79) - tech art and the independent second opinion

The honest headline: There is no RetroRic material in Sonic 060. Not one colour value, not one tile, not one line of code. It is important to say so plainly, because he is credited for tech art on Aonic and someone reading Sonic 060's screenshots might reasonably assume otherwise.

Sonic 060's palettes are generated from the Mega Drive's own palette files in the disassembly (each 3-bit channel scaled to 4 bits). Nothing is hand-crunched, because at 64 colours nothing needs to be.

Where his work lives, and how to support it

Patreon - support the work here https://www.patreon.com/RetroRic79
YouTube https://www.youtube.com/@RetroRic79
itch.io https://retroric.itch.io
Sonic the Hedgehog - Amiga tech demo (Scorpion Engine, ECS) https://retroric.itch.io/sonic-the-hedgehog-amiga-tech-demo
Wardner AGA demos https://retroric.itch.io/amiga-wardner-aga-level-3-demo and https://retroric.itch.io/wardneragademo

Palette sequences were transcribed from his videos while studying the problem. Those values were never used: The project's own notes forbid it, because video gives roughly +/-10 per channel and because the 64-colour design does not need them.

3.1 What was genuinely taken from him: Reasoning, not pixels

  1. The tile-animation verdict, which changed the design. His waterfall experiment showed that a block repeated across a wide area cannot be animated by rewriting its pixels, because every instance must be rewritten each step; palette cycling is far cheaper because it remaps a colour instead of moving data. This is directly implemented in Sonic 060: Green Hill's water shimmer is a palette cycle.
  2. His documentation of the palette crunch is why Sonic 060 decided not to do one. He showed step by step what crunching 20 background colours to 16 and 40 foreground colours to 32 costs: Locked colours, merged ramps, every hole repainted by hand, iteration. Seeing that price per zone and per layer made the 64-colour design obviously right for this hardware. His "16 colour prison" framing is also the argument against dual playfield.
  3. The convergence on baking static sprites into the tile layer. He and reassembler reached the same place independently; two experienced developers converging was strong evidence.
  4. Level data volume in RAM as a principal risk: His call, made early. It was.
  5. The finer AGA colour space partly offsets the smaller colour count. A genuinely useful insight.
  6. Rings in spare hardware sprites: A real technique, and his. Not available to Sonic 060, whose sprites are all spent on the background.

3.2 A disagreement we recorded, which was our mistake

Earlier versions of this document said we disagreed with him about dual playfield giving eight colours per layer. That note was our error, and he corrected it on 20 September 2026: "My tech demo was aimed at ECS Amiga's with a fetchmode enhanced AGA build. So dual playfield on ECS is 8 colours per layer." On ECS that is exactly right; sixteen per playfield is the AGA number. The two figures never disagreed. Every figure he quotes about that demo is an ECS figure unless he says otherwise.

3.3 What should be credited to him


4. Supporting the people Sonic 060 is built on

Sonic 060 takes no money, in any form. Nothing is sold, no donations are accepted, and there is no Patreon or tip jar of its own. That is why this page can point at other people's funding links without a conflict of interest.

If what is credited above is worth something to you, these are the two links that matter:

Both also sell finished work: OutRun: Amiga Edition and the OutRun vinyl (https://reassembler68k.itch.io/outrun-amiga-edition and https://reassembler.bandcamp.com), and the Wardner AGA demos (https://retroric.itch.io). The free things count too: Both devlogs are on YouTube (https://www.youtube.com/@reassembler68k and https://www.youtube.com/@RetroRic79).

Sonic Retro, the largest single borrowing here, takes no money either; the way to support it is to contribute: https://github.com/sonicretro/s1disasm and https://info.sonicretro.org.


5. How reassembler's and RetroRic's material was studied

Stated in full, because the depth of it should not be hidden: Sonic 060 was built by Afrotechmods teaching Claude from reassembler's and RetroRic's published work. He gathered their material, handed it over, and insisted it be examined far more closely than a first pass had done. What Claude took from it is in sections 2 and 3; this section is how it was taken.

Their videos. Thirteen videos were studied: Ten of reassembler's Aonic devlogs, and three of RetroRic's (his December 2025 dev log and his two Palette Panic videos). YouTube could not be reached from Claude's working environment, so Afrotechmods supplied subtitle files for all thirteen, the audio of three, low-resolution copies of nine, and about fifty full-resolution screenshots he captured himself from four of them.

reassembler's Patreon. All nineteen of his Aonic posts, every one of them free rather than paywalled; fifteen had readable text and all fifteen were read in full. Their 85 attachments were each opened and reviewed (83 images, and two that turned out to be video playlists). These posts are the most technically detailed source in the whole project, and they corrected several conclusions drawn from the videos alone.

The Aonic demo. Its readme was read, and the shipped executable's hunk sizes, memory layout and symbol names were examined to infer its architecture. It was not disassembled, and no part of it was reused.

RetroRic's demos and pages. Afrotechmods supplied eight of his tech-demo archives, and his itch.io pages were read. Palette values were transcribed from his videos while the problem was being studied, and deliberately never used (section 3).

Also read: reassembler's public GitHub repositories (sonic2mod and his collision explainers), and press coverage of Aonic, used only to cross-check dates and claims.

Everything above was published by its authors publicly and without a paywall. The first version of this document (16 September) was written for Afrotechmods' email to both of them about Sonic 060, and RetroRic's reply corrected it (section 3.2).


6. Sonic Retro, Hivebrain, and the Sonic 1 disassembly

sonicretro/s1disasm: By far the largest borrowing in Sonic 060.

159 source files from the disassembly are compiled directly into the game: 120 object files, 11 from _inc/, 7 animation scripts, 7 from _main/, 12 demo and ending input recordings, and the constants and variables files. This is Sonic's physics, collision, animation, camera, object behaviour and level logic, running essentially as the Sonic Retro team reconstructed it. The project's converter mechanically widens Mega Drive short addresses and flags the 24-bit address-masking tricks for repair by hand; the game logic itself is unchanged.

Also used from the same tree, as data: Level layouts, chunk and block tables, collision arrays and the angle map, sprite mappings, DPLC scripts, palettes and palette cycles, pattern load cues, and the SMPS music and sound-effect sources.

Licence reality: the disassembly carries no licence, and its readme says the content is for informational and educational purposes only, with commercial use expressly prohibited. Sonic 060 is non-commercial and will stay that way. Sonic Retro cannot grant rights to SEGA's code and does not claim to.

Credit also to Hivebrain for the 2022 rewrite (cvghivebrain/s1disasm), studied when choosing an assembler flavour, and to the SonLVL team, whose data-format work underpins the community's understanding of Sonic 1 even where the tool was not used.


7. Third-party code and data in Sonic 060

Nuked-OPN2 (ym3438.c, ym3438.h) - the only third-party source code

The rewind's cassette sound

The whirr heard while F5 rewinds is a 0.3-second royalty-free sound effect, free for commercial use. Afrotechmods brought it in from the rewind kit of his earlier Amiga project (FAmiga).


8. Tools used but not copied

Tool Author(s) Use
vasm (vasmm68k_mot) Volker Barthelmann and Frank Wille The assembler Sonic 060 is built with. Also what Aonic uses.
The Macro Assembler AS Alfred Arnold, with flamewing's releases Builds the reference disassembly byte for byte, the correctness check.
FS-UAE, Amiberry and the WinUAE core their teams The development emulators, used with explicit distrust on timing (2.2).
Unicorn Engine its team A CPU emulator used on a PC to prove that rewritten 68000 routines give byte-identical results to the old ones.
Python, NumPy, Pillow, SciPy, FFmpeg their projects The asset pipeline, and frame-by-frame review of Afrotechmods' videos.
Chromium with Playwright their teams Testing the background chooser page.

9. Technical references and documentation


10. Open-source projects surveyed and not used

Listed for honesty, because the project's early plan was built on some of these. No code from any of them is in Sonic 060.


11. Afrotechmods

Afrotechmods started Sonic 060, ran it from the first day to this release, and tested it on his own Amiga. He vibe coded it, and never wrote a single line of code: In his own words the game was "100% vibe coded by Afrotechmods with Claude". What he did instead is set out below in the same detail as everyone else's part, and only where the credit is due. Ideas that were Claude's and that he approved are listed separately from ideas that were his.

How this section was compiled: From the project's own records (the development log, the handover notes, the change log, the test notes of every build, the commit history, his uploaded logs, photos and videos, and the text of his messages from 22 September on). Every count below is a count of what those records hold, so it is a lower bound. The hours in 11.7 are estimates, and are marked as such.

11.1 The project itself

11.2 What he supplied

11.3 His own ideas, requirements and rules

Each of these came from him, not from Claude. Where the idea did not turn out as he framed it, that is said too.

The game

Size and memory

Testing and method (every one of these found real faults)

The background chooser

11.4 Decisions he made on Claude's proposals

These ideas were Claude's; the choice was his. That is a real contribution, but a different one.

11.5 His testing, and his bug reports

11.6 Other Claude sessions he ran

Besides the main development thread he started and steered several other Claude sessions, and carried their results between them by hand: The second-opinion speed review (builds 65 to 68), the session in which he designed the disclaimer screen, the credits sessions, a review of the project's estimates, and the background chooser thread, in which, over two weeks, he chose every one of the game's ten backgrounds, band by band, finishing on the day of this release.

11.7 His time (estimates)

The records hold no timesheet, so these are estimates from the times of his messages, his uploads and his test runs:

His Amiga test sessions alone (copying each build to a CF card, playing the listed spots, filming, collecting logs and writing the report) account for about half of that.


12. Claude's part, stated plainly

Every line of code in Sonic 060 was written by Claude, Anthropic's AI model (several versions of it over the project; on some days two or three Claude sessions worked side by side). That covers the 68000 game code, the renderer and sound code, the Python asset converters, the music renderer and packer, the diagnostic programs, the test tools, and every analysis document. Every one of the project's 334 commits was made by Claude.

What Claude copied from other people: the Nuked-OPN2 files (section 7), verbatim, and the 159 disassembly files (section 6). That is the complete list of copied source code.

What Claude derived from other people's published ideas: everything in 2.1 to 2.3 and 3.1. These are re-implementations from public descriptions, not copies, but they are not independent inventions either, and claiming otherwise would be dishonest. The architecture came from watching reassembler explain it.

How their material was obtained: section 5 sets it out in full: About 4,000 frames of their videos, all of reassembler's Patreon posts and their images, and the Aonic demo's layout, never its code.

Where Claude was wrong, because reassembler's warning about AI and assembly deserves an honest answer: Claude shipped regressions that its own emulator checks should have caught; it more than once dismissed a symptom Afrotechmods reported that later proved real (11.5); it once claimed an optimisation had shipped when it had never been switched on; and it sometimes asked him for results he had already given. Nearly all of these were caught by his testing.


13. About this document, and corrections

Earlier versions (1.0 on 16 September, 2.0 to 2.2 on 20 and 26 September) were written for the project and for an email to reassembler and RetroRic. Version 3.0 is the public edition. It adds section 11, updates the counts (the disassembly files, the commits, the backgrounds), adds section 5 (how their material was studied), drops the project's internal file paths, and leaves out the conversation transcript that earlier versions carried, because that was written for two named readers.

Section 11 was compiled by Claude from the project's records at Afrotechmods' request, with the instruction to credit him "only when due" and to be transparent. The records were read in full for the purpose; where they disagreed with each other (some dates in the development log were an hour or a day out), the commit history was trusted.

If anything here is wrong, under-credited, or credited to the wrong person, say so and it will be fixed. If reassembler or RetroRic would prefer any idea not be used, or credited differently, that will be done too, without argument.

Contact: Afrotechmods, afro afrotechmods.com (put the @ back in yourself).


Sonic The Hedgehog is a trademark of SEGA. Sonic 060 is an unofficial fan project, not affiliated with or endorsed by SEGA, reassembler, RetroRic or Sonic Retro. No money is taken for it and no ROM is distributed with it.


Credits version 3.2, 2026-09-30. Written for Sonic 060 1.00a.