toin
toin

Reputation: 77

develop a game for an old system

I have a school programming project, the subject is free as long as we demonstrate our programming skills, I have an amiga 500 lying around and i wondered if i could make a game for it ? Maybe nothing complicated, i know how limited the system is but is it possible to make it / test it on a windows 10 pc with an emulator and later on burn it onto a magnetic disk ? Also is it possible is i put a comodore disquette in an usb disk reader, to read the code? or is it "too compiled" to learn anything from it ? Thank you !

Upvotes: 2

Views: 1162

Answers (3)

Polluks
Polluks

Reputation: 572

Maybe you are looking for a ready game engine

Upvotes: -1

romaneberle
romaneberle

Reputation: 31

  1. to run/test your Amiga stuff on Windows use WinUAE: http://www.winuae.net/

  2. you can use pretty much any programming language you prefer, but C is probably best supported (many compilers, official docs), and assembler (Motorola MC68000 CPU) gives you total control of the hardware for fancy effects and super efficient coding (fast graphics, ...). There are also (more or less) Amiga specific languages like e.g. AMOS or BlitzBasic/AmiBlitz, which (more or less) are designed to handle Amiga-specific stuff or simplify things (screen handling, sprites, music, hardware access, ...)

  3. if you want to use C, then it's probably best to use Amiga's "official" compiler, if possible: SAS-C (formerly: Lattice-C). If you can't find that one try vbcc, gcc, DiceC, ... (this CD has a full gcc/POSIX development environment (and much more): https://archive.org/details/cdrom-geek-gadgets-2 )

  4. here are a lot of C- and AmigaOS-coding docs: http://amigadev.elowar.com/

  5. a PC floppy disk drive won't read or write your Amiga floppy disk out-of-the-box, you need some additional hardware, try googling some of these: ADTWin, ADF-Copy / ADF-Drive, Disk2FDI, "Arduino Amiga Floppy Disk Reader/Writer"

  6. a nullmodem cable (e.g. nullmodem-serial-USB-adapter cable to PC or Linux box) is a simple way to transfer files from/to Amiga - try google: "amiga SER: nullmodem", or "Amiga Explorer" (a windows application, also lets you directly write .adf disk images from the PC to the Amiga's floppy drive)

  7. well, of course you can learn from old stuff on floppy disks, it just depends on the contents of the disk and your knowhow. ;-) if the disk contains some source code, you're good. more likely, meaning any commercial game etc., it will contain an executable made of machine code - written in assembler, or compiled from C-code, or whatever - or even a custom loader (=non-AmigaDOS disk, no DOS access), for which you need some serious understanding of M68000 instructions, Amiga hardware, and maybe AmigaOS (API). in other words: it's probably "over-compiled", unless you're an assembler guru, or want to become one.

note: as you said you want to write a game for your Amiga 500 - that means we're talking "classic" Amiga: m68k CPU, A500, A1200, A2000, etc., Workbench/Kickstart up to version 3.9/3.1, floppy disks, etc., including modern re-implementations like MiniMIG, Vampire, M5, etc. - if you're interested in non-classic, probably called "next-generation", Amiga computing, try googling some of these: AmigaOS4, AROS, MorphOS, AmigaONE

Upvotes: 3

Astrofra
Astrofra

Reputation: 321

The Amiga is (was) a nice computer to program on. Depending on your time budget, learning and coding a game from scratch can be quite time consuming (unless you already are familiar with the 68000 assembly language).

There are plenty of alternatives though, to programm on this computer, using various languages :

C Programming Using C with either GCC or VBCC and a dedicated (but quite simple and compact) game engine, such as ACE : https://github.com/AmigaPorts/ACE

The Amiga comes with a builtin library of graphical & audio functions (even the good old A500) that might help you to develop a game, in a fully os-friendly way. The result will be rather slow, but you will be able to use every part of the hardware (blitter, copper, bobs, sprites...) : http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_2._guide/node040D.html

Basic The Amiga has several version of the Basic language, most of them implementing a rather comprehensive set of commands to get the most of its hardware specifications (sprites, bobs...) You may want to try AMOS Basic, the most famous one : https://www.ultimateamiga.co.uk/index.php/page,16.html

As an alternative, Blitz Basic was probably the second most popular basic on this machine : https://www.amigafuture.de/downloads.php?view=detail&df_id=3663&sid=661dbda78c2a180a20715f7467a95708

68K Assembly If you really need to get the most of the Amiga while being super close to the metal, and are starting from virtually nothing, then you might want to look at Photon's video tutorials : https://www.youtube.com/watch?v=p83QUZ1-P10&list=PLc3ltHgmiidpK-s0eP5hTKJnjdTHz0_bW Theses tutos are rather demoscene-oriented, but the visual side of a game dev project is mostly similar to what you will find in a demoscene project (using bobs, sprites, blitter, copper list, playing ProTracker modules...)

My only recommandation, no matter if you have the proper hardware at home or not, is to do most of your work inside an emulator. WinUAE is a near-perfect accurate emulator. You will benefit as well from all the modern tools to edit/version your code (Visual Studio Code, Git...).

Besides the Amiga, I would recommend 2 oldschool-flavored machines (as of 2018) :

  • The SEGA Megadrive/Genesis, that can be adressed in a super friendly way using the excellent SGDK library : https://github.com/Stephane-D/SGDK
  • The Pico-8, a virtual oldschool console that can(must) be programmed in Lua. Pico-8 can be understood as an emulator for a 8-bit-ish game console that never existed. Its community is really active, though. It can be found here : https://www.lexaloffle.com/pico-8.php

Again, regarding the Megadrive, an emulator might be your best friend.

Once your creation is worth testing on the real machine and if you need to "burn" (copy) your creation on a floppy disk, my recommandation would be get an Amiga 1200 with a PCMCIA/CompactFlash adapter. Using a Gotek (USB to floppy adapter) can be a cheaper alternative that will work on your A500 too (but please don't butcher your Amiga to fit the Gotek in it).

The Megadrive comes with a nice option nowadays, thanks to the Everdrive SD-Card adapter, that allows you to start any ROM file of your own on the real console.

Upvotes: 9

Related Questions