First of all we are going to tidy up our /root folder. By now it is probably full of installation scripts. I would delete everything apart from the startx scripts, the compression instructions, and the wifi scripts. I made a new amiga folder to store the new settings and files:
mkdir ~/amiga mkdir ~/amiga/roms mkdir ~/amiga/disks mkdir ~/amiga/harddisks mkdir ~/amiga/shared
The folder names should give away the nature of the contents. We will store the configuration files in the ~/amiga folder. The [shared] folder is going to be treated like a harddisk by the Amiga, so I can easily pass files to and from the Amiga. I have moved the disk and rom images to the appropriate folder.
I am going to set up four machines, an A500, an A1200 and the same two but with hard disks installed. The first thing I am going to do is to make the files that will be treated as harddisks. TO do this I am going to use linux's [dd] program. The program is used to copy stuff at a very low level. The commands are as follows:
dd if=/dev/zero of=~/amiga/harddisks/A500_hdd.hdf bs=512 count=40960 dd if=/dev/zero of=~/amiga/harddisks/A1200_hdd.hdf bs=512 count=81920
The commands copy from the [i]nput [f]ile [/dev/zero] (which is obviously blank) to the [o]utput [f]ile named, in 512 [b]yte[s] chunks. For the A500 we use 40960 chunks of 512 bytes, which should get us a 20Mb disk. The A1200 should get a 40Mb file.
First of all, we'll create the simplest machine - the A500. The configuration file is just a text document, and the '#' comment tag works as normal. I am going to structure the file into theme'd sections. I'll start with the Disk drives, as these are the most likely to be changed in an edit. Then we'll have the Amiga hardware to be emulated. Next will be a section which governs the speed or accuracy of the emulator. After that is a section which relates to the hardware of the source system, and finally is a section which sets the default paths to the folders we have made.
The first time we do this, I'll comment on everything, and then on subsequent builds only the changes.
cat > ~/amiga/A500.uaerc << "EOF" #Disks Files floppy0=$(FILE_PATH)/1.3a.adf floppy1=$(FILE_PATH)/1.3b.adf EOF
This loads two disk images. Workbench 1.3 comes on 2 disks, and I have renamed them to a and b. The emulator can handle 4 floppy disk drives, but by default only two work. You can peruse the documentation to see how to activate the other two, if you really want. We can use the [$(FILE_PATH)] instead of the absolute path to the files. We'll define the variable at the end of the file.
cat >> ~/amiga/A500.uaerc << "EOF" #Amiga Hardware cpu_type=68000 chipset=ecs_agnus kickstart_rom_file=$(FILE_PATH)/1.3.rom chipmem_size=2 bogomem_size=0 fastmem_size=0 z3mem_size=0 gfxcard_size=0 EOF
Note that we are [>>] appending to the file now, not [>] over writing. We are emulating a [68000] cpu for the A500. We are going to use the ecs_agnus chipset present in later A500's as it allows us to use more RAM. We need Kickstart 1.3 for the A500. We also are telling it to use 1Mb of chip ram. It is measured in 512Kb chunks - hence the [2]. We are not using any other types of RAM.
cat >> ~/amiga/A500.uaerc << "EOF" #Performance cpu_speed=real cpu_compatible=false cpu_cycle_exact=false cachesize=0 immediate_blits=false collision_level=playfields gfx_framerate=1 sound_latency=100 x11.low_bandwidth=false floppy_speed=100 EOF
We are asking the machine to simulate the cpu at the normal speed. In other words no matter how powerful your machine the emulation should run at the speed of a real A500. If some software doesn't work you can flip [cpu_compatible] to true, and it will try to be even more exact, but potentially slower as well. If that still doesn't work, then you can flip the [cpu_cycle_exact] to true, which makes the cpu to chipset communications more precise.
The [cachesize] set to 0 diables the JIT system. This only works on 68020 cpu's so we do not need it. [immediate_blits] set to false makes sure the system doesn't cut some corners. Setting this to true may speed up the emulation. [collision_level=playfields] is about how precisely the emulation calculates collisions between objects (the player and a platform in a game for instance). The documentation explains how to change this if necessary.
The [gfx_framerate] tells it to show every frame. If this was 10, it would only show one frame in 10. The [sound_latency] sets the wiggle room the system has to synchronise the sound. [x11.low_bandwidth] if set to true reduces the information exchanged with the X server. It only updates the bits of the video which change from frame to frame. This ends up looking crap - as if you are using the system through VNC down a 56k modem line. [floppy_speed] is in %. You can increase it to as much as 800, but that may cause compatibility problems.
cat >> ~/amiga/A500.uaerc << "EOF" #Host Hardware gfx_width_windowed=720 gfx_height_windowed=568 gfx_fullscreen_amiga=true hide_cursor=true show_leds=true sound_output=normal sound_bits=16 sound_frequency=44100 sound_channels=stereo joyport0=mouse joyport1=kbd2 bsdsocket_emu=true x11.map_raw_keys=false EOF
The [gfx_{width,height}_windowed] options set the size of the window. There are options for fullscreen resolution as well, but the documentation is honest enough to admit that does nothing. We want to boot straight to the Amiga, so we tell it to [fullscreen]. We do not want to see the X cursor - just the Amiga cursor, so we [hide_cursor]. The [show_leds] put a graphical representation of the floppy and HDD activity lights. It also reports the frame rate and cpu usage. The [sound] options are all pretty self explanatory. The Amiga had two ports for mice or joysticks. Here we tell it the mouse is connected to [joyport0]. We tell it [joyport1] has a joystick attached to it which is simulated by the arrow keys and the right CTRL as the fire button [kbd2]. There are other options which are set out in the docs. The [bsdsocket_emu] turns on the network sharing that we enabled back in the compilation of the emulator. The [x11.map_raw_keys] relates to how the keys on your PC are mapped to the keys in the simulated Amiga keyboard.
cat >> ~/amiga/A500.uaerc << "EOF" #Defaults unix.rom_path=~/amiga/roms unix.floppy_path=~/amiga/disks unix.hardfile_path=~/amiga/harddisks unix.savestate_path=~/amiga/saves EOF
These settings just tell the emulator the default location for the various file types. That also finishes the configuration file. The A500 can now be emulated by:
uae -G -f ~/amiga/A500.uaerc
This disables the [G]ui so that the emulator will start fullscreen.
Now for the HD version:
cat > ~/amiga/A500HD.uaerc << "EOF" #Disks Files #floppy0=$(FILE_PATH)/1.3a.adf #floppy1=$(FILE_PATH)/1.3b.adf hardfile2=rw,dh0:/root/amiga/harddisks/A500_hdd.hdf,32,1,2,512,1, #Amiga Hardware cpu_type=68000 chipset=ecs_agnus kickstart_rom_file=$(FILE_PATH)/1.3.rom chipmem_size=4 bogomem_size=0 fastmem_size=8 z3mem_size=0 gfxcard_size=0 #Performance cpu_speed=real cpu_compatible=false cpu_cycle_exact=false cachesize=0 immediate_blits=false collision_level=playfields gfx_framerate=1 sound_latency=100 x11.low_bandwidth=false floppy_speed=100 #Host Hardware gfx_width_windowed=720 gfx_height_windowed=568 gfx_fullscreen_amiga=true hide_cursor=true show_leds=true sound_output=normal sound_bits=16 sound_frequency=44100 sound_channels=stereo joyport0=mouse joyport1=kbd2 bsdsocket_emu=true x11.map_raw_keys=false #Defaults unix.rom_path=~/amiga/roms unix.floppy_path=~/amiga/disks unix.hardfile_path=~/amiga/harddisks unix.savestate_path=~/amiga/saves EOF
We have commented out the floppy so that it boots from the hard disk. It makes it easy to activate the disks to install workbench in the first place. The [hardfile2] activates the file we made as [dh0:]. No real idea what all the settings guff at the end does, but it seems to work. I have also installed 8Mb of fast ram, and upped the chip ram to 2Mb.
cat > ~/amiga/A1200.uaerc << "EOF" #Disks Files #floppy0=$(FILE_PATH)/3.1b.adf #floppy1=$(FILE_PATH)/3.1a.adf #Amiga Hardware cpu_type=68ec020 chipset=aga kickstart_rom_file=$(FILE_PATH)/3.1.rom chipmem_size=4 bogomem_size=0 fastmem_size=0 z3mem_size=0 gfxcard_size=0 #Performance cpu_speed=max cpu_compatible=false cpu_cycle_exact=false cachesize=8192 immediate_blits=false collision_level=playfields gfx_framerate=1 sound_latency=100 x11.low_bandwidth=false floppy_speed=100 #Host Hardware gfx_width_windowed=720 gfx_height_windowed=568 gfx_fullscreen_amiga=true hide_cursor=true show_leds=true sound_output=normal sound_bits=16 sound_frequency=44100 sound_channels=stereo joyport0=mouse joyport1=kbd2 bsdsocket_emu=true x11.map_raw_keys=true #Defaults unix.rom_path=~/amiga/roms unix.floppy_path=~/amiga/disks unix.hardfile_path=~/amiga/harddisks unix.savestate_path=~/amiga/saves EOF
The Workbench floppies are there as suggestions. The [a] disk is the install for 3.1, and the [b] disk is the normal 'workbench' disk. The CPU type and chipset match the hardware in the A1200. We also use 2Mb [4]x512k of chipram. We switch to Kickstart 3.1. We change CPU speed to [max] because we do not want to be restricted to running at the speed of a A500. We have also changed the [cachesize] to 8192 (meaning 8Mb) which activates the JIT compiler. The rest is the same.
And lastly, the HD version, which is going to be the most powerful.
cat > ~/amiga/A1200HD.uaerc << "EOF" #Disk Files #floppy0=$(FILE_PATH)/3.1b.adf #floppy1=$(FILE_PATH)/3.1a.adf floppy2type=0 floppy3type=0 hardfile2=rw,dh0:/root/amiga/harddisks/A1200_hdd.hdf,32,1,2,512,1, filesystem2=rw,dh1:Shared:/root/amiga/shared,0 #Amiga Hardware cpu_type=68020 chipset=aga kickstart_rom_file=$(FILE_PATH)/3.1.rom chipmem_size=4 bogomem_size=0 fastmem_size=0 z3mem_size=256 gfxcard_size=32 #Performance cpu_speed=max cpu_compatible=false cpu_cycle_exact=false cachesize=8192 immediate_blits=false collision_level=playfields gfx_framerate=1 sound_latency=100 x11.low_bandwidth=false floppy_speed=100 #Host Hardware gfx_width_windowed=720 gfx_height_windowed=568 gfx_fullscreen_amiga=true hide_cursor=true show_leds=true sound_output=normal sound_bits=16 sound_frequency=44100 sound_channels=stereo joyport0=mouse joyport1=kbd2 bsdsocket_emu=true x11.map_raw_keys=false #Defaults unix.rom_path=~/amiga/roms unix.floppy_path=~/amiga/disks unix.hardfile_path=~/amiga/harddisks unix.savestate_path=~/amiga/saves EOF
The first change is the [floppy{2,3}type] option. By default df2: and df3: are deactivated. By setting their types to '0' we activate them. I know that sounds unintuitive, but a setting of -1 means deactivated. We want as many active floppies as possible for doing stuff like installing Workbench. I have commented out the Workbench disks, as they should not be needed on a regular basis. Best to refer to them though, so we can quickly activate them if the HDD corrupts.
We have had to switch to the 68020 CPU rather than the cut down 68ec020 that is actually in the A1200. The reason is that we need 32 bit memory addressing rather than 24 bit memory addressing
to support the extra memory [z3mem] and [gfxcard] we are going to use. The Z3 memory emulates memory being added in a Zorro III slot. The gfxcard memory is going to be used by the Picasso96 emulated graphics card to get a high resolution desktop. There were expansion cards for the A1200 which supplied a full 68020 and 256Mb of Zorro III ram, so this is historically accurate.
To boot straight into the Amiga, add this to .xinitrc before the openbox-session line:
exec /usr/bin/uae -G -f ~/amiga/[whatever].uaerc &
No comments:
Post a Comment