Giter Club home page Giter Club logo

cpc-dev-tool-chain's Introduction

cpc-dev-tool-chain

By cpcitor

Build status Linux result
Full build: SDCC cross-compiler + binutils + tape/disk image tools + tape/disk images + test projects Build Status

Quick Summary

What is this?

This is a portable toolchain for C/ASM development targeting the Amstrad CPC platform.

What does it do?

  • It takes your project's C and/or assembly source code and use your modern computer to automatically produces a ready-to-run disk or tape image for an Amstrad CPC or emulator.
  • You can edit source and get another image, at will.
  • Eventually it will allow you to edit your graphics/music/whatever in your preferred editor, save, get another image, run.

I want screenshots!

Okay, but remember: a toolchain is abstract, a time saver, a guide. You can make I/O libraries or whatever with it, that does not show on a screenshot.

Third-party productions using cpcrslib

Super Retro Robot Rampage by Vortex Kotorans Shadow by Kronoscide

  • Raúl Simarro has written cpcrslib.
  • cpc-dev-tool-chain makes it easy to use cpcrslib: just #include "cpcrslib.h"!
  • A number of productions in first editions of #CPCRetroDev Game Creation Contests did just that! Some examples:
    • Super Retro Robot Rampage by Vortex,
    • The Legend Of Cpcerdo by CPCR2,
    • Cavebola by Close To Metal,
    • Kotorans Shadow by Kronoscide,
    • Orcs Dungeon by Fracture Games,
    • VoidHawk by Goodies,
    • Chipotle Warfare by Cosmic Warpigs,
    • Pixel Thief by Zrilon.

Production leveraging the CPC firmware style

A project that targets mostly CFWI, the C-level firmware API : color-flood-for-amstrad-cpc

Playing Color Flood Playing Color Flood

Okay, nice screenshots. How can I benefit from this?

Several paths are possible:

  • Have you programmed in CPC BASIC already? This yields a specific style. Ever dreamt you could write easy, modern C and have an API to provide CPC primitives? Now you can! Use CFWI, our provided thin C-level API around CPC firmware. See coverage statistics. Then move on to How to install.
  • If you're after 2D sprite routines consider using a cousin project, cpctelera.
  • Write most code in easy C, easily call your assembly routines for specific routines. Assembly can call firmware or hardware directly. As efficient as assembly can be! Remember, on 16bit processor 80286, Wolfenstein 3D then on i386 Doom, were fully written in C except one line drawing routine in assembly!

You can mix-and-match options, like using firmware at initialization because it's easy, then switch to own routines or even pure ASM once hardware is initialized.


More topics

  • Why this tool? more about the situation that cpc-dev-tool-chain is meant to solve.
  • How to install
    • Get a copy in a local directory (e.g. git clone). cpc-dev-tool-chain only needs a bunch of common tools (definitely available and often already installed in most Linux PCs). Works on Windows and Mac, too.
    • It then installs automatically on-demand the needed third party tools (like Z80 compiler).
    • No global change or administrator permission needed.
  • CDTC with custom project: Quickstart tutorial: how do I benefit from this in my own project?

Tested platforms

If you encounter any trouble (even minor) on your platform, please report and I'll be happy to help.

Until you report, trouble remains. Once you report, trouble is known, can be fixed for everyone, all will benefit.

Credits

  • Thanks to ronaldo / Cheesetea ([email protected]) for testing on Cygwin, reporting issues and offering fixes.
  • Thanks to artaburu, upstream author of cpcrslib, for cooperation making it easier to use.

cpc-dev-tool-chain's People

Contributors

cpcitor avatar fidergo-stephane-gourichon avatar lronaldo avatar sgourichon avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.