Skip to content

Instantly share code, notes, and snippets.

@lucasw
Last active August 22, 2018 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucasw/47f4041f79aea451c186870c33af4019 to your computer and use it in GitHub Desktop.
Save lucasw/47f4041f79aea451c186870c33af4019 to your computer and use it in GitHub Desktop.
Amiga Programming

The Future Was Here

https://mitpress.mit.edu/books/future-was-here by Jimmy Maher https://twitter.com/digiantiquarian

This book was good though needed hardware diagrams, more explanation of the chipset- it's more complicated than for example a standalone NES ppu so deserves more technical detail.

UAE

Use fs-uae-launcher instead of fs-uae.

Trying out fs-uae on Ubuntu 16.04- it boots slowly and takes over the mouse and keyboard and doesn't give them back, though can press ctrl-alt-f1 and get into a terminal to kill it from the command line. Also can press f12 and move the selection to the quit x in the upper right.

Is there a keyboard shortcut to give back the mouse and keyboard, or a way to boot with more sane settings?

https://fs-uae.net/keyboard-shortcuts

F12 + G apparently is what I need.

(process:7440): GLib-WARNING **: /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmem.c:483: custom memory allocation vtable not supported
FS-UAE 2.6.2
Copyright 1995-2002 Bernd Schmidt, 1999-2015 Toni Wilen,
2003-2007 Richard Drummond, 2006-2011 Mustafa 'GnoStiC' Tufan,
2011-2015 Frode Solheim, and contributors.

This is free software; see the file COPYING for copying conditions. There
is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the README for more copyright info, and the source code for
a full list of contributors

UAE: Initializing core derived from WinUAE 3100
LOG: /home/lucasw/Documents/FS-UAE/Cache/Logs/fs-uae.log.txt
UAE: KS ROM a63586e4 (524288 bytes)
UAE: KS ROM 3ad2601f (524288 bytes)
UAE: Calling uae_quit
UAE: Stopping
AL lib: (WW) alcCloseDevice: Releasing context 0x60080a0
AL lib: (WW) FreeContext: (0x60080a0) Deleting 2 Source(s)
AL lib: (WW) FreeDevice: (0x6015a20) Deleting 96 Buffer(s)

Version 2.2.3 seems to lock up a lot, doesn't release the mouse and keyboard when it does lock up so requires ctrl-alt-f1 then kill -9 the launcher and uae.

Try latest from source.

sudo apt-get install libmpeg2-4-dev libopenal-dev
git clone https://github.com/FrodeSolheim/fs-uae.git
./bootstrap
./configure --prefix=$HOME/other/install
make -j8
...
emu/src/audio/openal-audio.o -MD -MP -MF $depbase.Tpo -c -o libfsemu/src/audio/openal-audio.o libfsemu/src/audio/openal-audio.c &&\
	mv -f $depbase.Tpo $depbase.Po
libfsemu/src/audio/openal-audio.c:64:5: error: unknown type name ‘ALuint’
     ALuint source;

Try stable branch

git clean -fdx  # delete detritus from other build
git checkout remotes/origin/stable
git checkout -b stable
...
updating: share/locale/fi/LC_MESSAGES/ (stored 0%)
updating: share/locale/fi/LC_MESSAGES/fs-uae.mo (deflated 55%)
updating: share/applications/ (stored 0%)
updating: share/applications/fs-uae.desktop (deflated 28%)
make[2]: Leaving directory `/home/lucasw/other/games/amiga/fs-uae'
make[1]: Leaving directory `/home/lucasw/other/games/amiga/fs-uae'

That worked

make install
...
which fs-uae
/home/lucasw/other/install/bin/fs-uae
which fs-uae-launcher
/usr/bin/fs-uae-launcher

The install didn't get the launcher- will the launcher select the right binary?

Should uninstall the other one.

The version is 2.2.3, so likely has same issues.

fs-uae-launcher is separate project https://github.com/FrodeSolheim/fs-uae-launcher.git

There is no configure script, edit the prefix in Makefile, then make install.

Running it fails, even after uninstalling fs-uae

which fs-uae-launcher
/home/lucasw/other/install/bin/fs-uae-launcher
fs-uae-launcher
bash: /usr/bin/fs-uae-launcher: No such file or directory

2.6.2 is on Ubuntu 16.04 - it seems to work a lot better - why isn't the stable in github that version? Or was I not really running the built source version?

Free/Public Domain Games

http://www.amigapd.com/downloads-a-games.html requires downloading in giant rar bundles, instead of individual files.

Amoeba Invaders - boots Air Aces - boots

How to get to workbench so non-booting games can be run?

http://classicwb.abime.net/classicweb/downloaduae.htm

https://fs-uae.net/docs/getting-started

http://www.factor5.de/downloads.shtml R-Type is available for non-commercial use

Resources

https://www.reaktor.com/blog/crash-course-to-amiga-assembly-programming/

M68000 reference manual

http://www.nxp.com/assets/documents/data/en/reference-manuals/M68000PRM.pdf

Is there a text/online version?

http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0060.html

C programming

Cross-compile from linux?

https://github.com/cahirwpz/amigaos-cross-toolchain

Can I compile C applications into bootable disks that work on A500 wb 1.3?

@lucasw
Copy link
Author

lucasw commented Jun 19, 2018

Make workbench booting hd

Make folder called 'hd', add it as an hd, then boot with that and Workbench 1.3.

Then launch the shell and copy workbench to the hd:

COPY DF0: hd: ALL

If the keyboard is international, need to use shift . to make the :.

Then can quit, eject the wb disk, and then launch with the hd.

Fix international keyboard to US

Can do this in linux terminal now that hd has all the workbench files.

Edit hd/s/Startup-Sequence

Change

SYS:System/SetMap i

to

SYS:System/SetMap usa1

@lucasw
Copy link
Author

lucasw commented Jun 19, 2018

VASM

1.8c

http://sun.hasenbraten.de/vasm/index.php?view=relsrc

make CPU=m68k SYNTAX=mot
cd $HOME/other/install/bin
ln -s ~/other/retro/amiga/vasm/vasmm68k_mot

Example programs

https://github.com/uhef/amiga-assembly-crashcourse

copy the executable example to hd.

Then start the shell.

cd hd:
example

reactor-amiga

It's smoother than this, that is a gif made from a bunch of screenshots.

@lucasw
Copy link
Author

lucasw commented Aug 22, 2018

Load a configuration and save state from the command line:

fs-uae $HOME/Documents/FS-UAE/Configurations/fsuae_config.fs-uae --load-state 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment