|
Forum Index : Microcontroller and PC projects : Elite on the Pico Computer 3
| Author | Message | ||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11850 |
Code tomorrow. https://youtu.be/wgzn5YHsKNo A full implementation of the BBC Micro version of Elite in interpreted MMbasic running on the Pico Computer 3. This version includes everything in the disk version of Elite including functionality only available with the second 6502 processor. # Elite on the PicoComputer 3 A port of the 1984 BBC Micro *Elite* by Ian Bell and David Braben, written in MMBasic. The galaxy, the market, the ship blueprints and the flight model all come from the published 6502 source, so Lave is the Lave you remember. ## Getting it running You need a PicoMite HDMI build and a screen, and the firmware must be **version 6.03.02b5 or above**. `PRINT MM.VER` at the prompt: it must report 6.030205 or more. b5 is where `LIBRARY LOAD` arrived, and the program's first line is one, so nothing earlier will get past it. Earlier firmware would not do anyway - b3 and before had `MAX3D` set to 8, where the bubble wants one object for the station and one for every ship that is close enough to be drawn as a mesh, and the `DRAW3D` and `FRAMEBUFFER CLOSE` fixes this leans on all landed after b3 was released. The port asks the firmware how many it may have rather than assuming, so it runs on whatever it is given. It was written and timed on a PC3 running PicoMiteHDMIWEB at 378 MHz, where it holds about 18 ms a frame; it will run slower on a slower clock. The program sets `MODE 2` itself. Elite comes in two files. `elite_lib.bas` holds the declarations - every constant, every variable and the ship blueprints - and is installed as the PicoMite's library; `elite.bas` is the code. One MMBasic program cannot be more than 144 KB and this is heading past it, so the declarations are kept in the library instead, where they cost the program nothing. Copy both to the drive: ``` python Bas/elite_tools/pc3.py put Bas/elite/elite_lib.bas A:/elite_lib.bas python Bas/elite_tools/pc3.py put Bas/elite/elite.bas A:/elite.bas LOAD "A:/elite.bas" RUN ``` The first `RUN` installs the library and starts again by itself - that takes a second or two. Every run after that finds the library already matches and goes straight into the game. Nothing else to do: the program's first line is `LIBRARY LOAD`, so it looks after its own library. The title screen is a picture file. Copy `Bas/elite/data/title.jpg` to the drive as `A:/title.jpg` - `pc3.py put Bas/elite/data/title.jpg A:/title.jpg` will do it. Without the file the title screen draws the words instead, so nothing is broken if you skip this. ## Starting The title screen waits for you. | | | |---|---| | any key | start a game | | `H` | the controls, on one page | | `Esc` | leave the program | Leave it alone for twenty seconds and the demo plays a whole game by itself, in three legs: trading at Lave and outfitting the ship, a fight on the way out and a hyperspace jump; a pirate pack and a docking at the far end; then out again with a mining laser to break a rock up and scoop what comes off it. It drives the real game - every screen and every shot is the game's own code, with the demo standing in for the keyboard. Press any key during it and you get a game of your own. `Esc` in a game takes you back to the title. ## Flying | | | |---|---| | `<` `>` or left/right arrows | roll | | `S` / `X`, or down/up arrows | climb / dive | | `Space` / `/` | faster / slower | | `A` | fire | | `T` then `M` | lock a missile, then launch it | | `E` | E.C.M., which destroys every missile in the area | | `C` | docking computer on and off | | `H` | hyperspace | | `J` | in-system jump, when nothing but rocks is about | | `G` | galactic hyperdrive, if one is fitted | | `Tab` | energy bomb | | `Esc` | escape pod if one is fitted, otherwise back to the title | | `P` | pause; `D` while paused writes the screen to the card | | `F1` `F2` `F3` `F4` | fore, aft, left, right views | On either chart, `F` asks for a system name and moves the cursor to it, and holding `Shift` with an arrow moves the cursor eight notches instead of one. `F5` to `F10` reach the same six screens whether you are flying or docked: galactic chart, short range chart, system data, market prices, status, inventory. On the charts the arrows move the cursor and it picks out the nearest system; `F7` then tells you about it. A view key or `Return` puts you back where you were. ### The dashboard Down the left: forward shield, aft shield, fuel, cabin temperature, laser temperature, altitude. Down the right: speed, roll, dive/climb, and the four energy banks. Red means trouble in both directions - a high reading is bad for speed and the temperatures, a low one is bad for everything else. The altitude bar is your height above the planet, and it reads full until you are within about 65000 units of it; fly to one planet radius and you are dead. Cabin temperature climbs as you approach the sun, reaches the fuel scooping threshold at about 32000 units, and kills you at about 22400. The ellipse is the scanner. Each contact is a dash with a stick down to the plane you are flying in, so the stick tells you how far above or below you it is, and its colour says what it is: **red** a rock, **blue** a canister or an escape pod, **green** the space station, **magenta** one of the three fat traders - a Python, a Boa or an Anaconda - **yellow** a missile, **cyan** everything else. The dial to its right is the compass: it points at the station when you are near one and at the planet when you are not, yellow and two rows deep when the thing is ahead of you, green and one row deep when it is behind. Out of the window, ships are cyan, rocks red, a missile yellow, a Thargoid white, and the planet and the sun green. A red beam across the view means somebody is shooting at you. ## Docked | | | |---|---| | `F1` | launch | | `F2` / `F3` | buy / sell cargo | | `F4` | equip the ship | | arrows | choose a row | | `Space` | buy or sell one | | `Return` | buy or sell a stated number - type it and press `Return` again | | `F` | fill the tank, on the equipment screen | | `S` / `L` | save / load your commander | The quantity prompt shows the most you could trade - what the system has, what your money will cover and what the hold will take - and refuses a digit that would take you past it, rather than accepting the number and quietly trimming it. `Escape` backs out without trading. Saving writes `A:/cmdr.txt`, which is plain text and one value to a line. ## Making a living Buy what a system makes and sell it where they don't. Lave is a Rich Agricultural world, so food and textiles are cheap there and radioactives, computers and machinery are dear - an Industrial system further along the chart is where you sell the one and buy the other. Prices are set the moment you arrive and do not move while you trade. A full tank is seven light years and costs 14 credits. On the galactic chart the green circle is what the tank will reach; put the cursor on something inside it, check `F7` for what is there, then launch. **Hyperspace only works once you are clear of the station's zone**, which means flying away from it for about half a minute at full speed. Press `H` when you are out. ## The missions Two of them, and they find you rather than the other way round. Reach a combat rating of Competent with 256 kills behind you, in one of the first two galaxies, and the next time you dock the Navy has a message: a new Constrictor has been stolen, and they would like it back in pieces. It is hiding in the second galaxy, and nothing but a military laser will scratch it - the energy bomb will not touch it either. Five thousand credits for bringing it down. Do that, get most of the way from Dangerous to Deadly, and in the third galaxy Naval Intelligence wants the Thargoid defence plans carried from Ceerdi to Birera. The Thargoids come after you while you have them aboard. Deliver them and you are given the Navy's own energy unit, which recharges half as fast again as the one the shops sell. The briefings are the original's own words, and where they are is in **What the later BBC versions had** below. ## Docking The station turns all the time, and its docking slot is a letterbox. Getting in means five things at once: the station not angry with you, its slot facing you, the station nearly dead ahead, and your wings lined up with the long axis of the slot - which means rolling to match a station that will not stop turning. Below speed 5 a failed approach is a bump. Above it, it is the end of you. A system of technology level 11 or better has a dodecahedron rather than a Coriolis. It is a different shape with the same slot and the same five tests, so it makes no difference to the flying - but it is worth seeing. You are not the only one docking. A trader on its way in flies the approach for itself and goes inside, and leaves no wreck behind it because it did not crash. The docking computer (`C`) does the whole thing, including the rolling - and that is ours, not the original's. In the cassette version pressing `C` docks you instantly; the flown approach only appeared in the later 6502 Second Processor and Master versions. You have to buy the computer either way: a new commander has a front pulse laser, three missiles, seven light years of fuel and nothing else, so every docking is hand-flown until you can afford 1500 Cr. ## The law Slaves, narcotics and firearms are contraband, and slaves and narcotics count double. Leaving a station with any of it aboard goes straight onto your record, and out in space it is what you are **carrying** that calls the police out - your record only makes things worse once a Viper is already watching you. What the police then *do* about it is a separate question. A Viper is a bounty hunter, and a bounty hunter leaves an honest commander alone: it only turns on you once your record passes 40, where 50 makes you a Fugitive. A hold full of slaves is worth exactly 40 by itself, which is why that particular cargo brings trouble and a hold of furs does not. Shoot a policeman and you are a Fugitive on the spot. Shooting an innocent bystander - a trader going about its business - brings the station down on you as well, and the station can call out more police than you want to meet. Pirates are nobody's concern but their own. Arriving somewhere new halves whatever is on your record, because nobody that far away has heard the details. Where you are matters as much as what you have done. An anarchy spawns roughly four times the pirates of a Corporate State, which is what the government column on the system data screen is telling you. ## The traffic Not everything out there is coming for you. Traders fly the lane between the planet and the station and mostly ignore you - four passes in five they do nothing at all - and half of them are on their way in, so if you follow one it will fly itself into the slot and be gone. A station that nobody has annoyed sends out a Shuttle or a Transporter now and then. Rock hermits look like asteroids and are: shoot one and something comes out of it. ## How it is put together Two files, and the split is not arbitrary. `elite_lib.bas` is the declarations and the ship data - `src/00_main.bas` and `data/ships.bas`, which between them contain not one executable statement. `elite.bas` is everything else. A PicoMite library initialises itself before the program's first line, so the constants and variables are in place before any code runs, and `RESTORE` finds a label in the library from the program because the two halves share one table of subroutine, function and label names. Measured on a PC3: the program is 106 K of the 144 K a program may have, and the library 30 K of its own 144 K. As one file it would not fit at all, which is what the split is for. The bubble holds eighteen ships and the firmware allows 32 Draw3D objects, so every ship in it can be a mesh. An object is asked for when a ship comes into mesh range and given back when it leaves, rather than taken for life when the ship is created - which used to hand the pool to whichever ships arrived first and could leave a Cobra filling the screen drawn as a dash while a speck on the horizon held an object. What limits a crowded bubble now is the frame, not the pool: seventeen ships all close at once costs about 76 ms a frame, where five costs 41. The game's speed does not depend on the frame rate, so a busy moment looks choppy rather than running fast. The library also carries `OPTION LOCAL VARIABLES 128`, which has to be the first thing executed anywhere and so can only go there. MMBasic splits a fixed pool of 736 variable slots between locals and globals, and the default leaves only 480 globals - Elite declares 472 of them, and a constant costs a slot just as a variable does. At 128 locals there are 608, and measured on the board there is room for 136 more. Three rules come out of the split, and `build.py` now checks all of them rather than leaving them to be remembered. **The trace cache stays in the main program.** `OPTION TRACECACHE`, `OPTION CACHE` and every subroutine they name must be in the program, never the library: the cache compiles a subroutine against the program it was prepared from. **A library must contain nothing program-specific.** It runs its top level in front of *every* program, not just its own. `OPTION CACHE SUB` names two of Elite's subroutines, and with it in the library no other program would start at all - `Sub/function not found` before its first line. `build.py` moves it, and every option not required to precede a `DIM`, into the program. **And there must be no `END` in a library** - the interpreter runs the whole of it at `RUN`, and an `END` would stop the run before the program began. ## What the later BBC versions had This is a port of the cassette version, which is the one most people played and the smallest of the family. Elite went on being rewritten, and the BBC Micro disc version, the 6502 Second Processor version and the BBC Master all carry things that are simply not in the cassette game and so are not here either. From the **disc version** (and the Master, which is built on it): - Kill credit for canisters, asteroids, escape pods and Thargons - which this port already gives, having been written to the simpler rule. The cassette game awards nothing for junk; this and the disc version award for everything. - A real docking computer that flies you in, which is where our flown approach comes from. - A disc access menu and printer support. Taken from it so far: - **Buying and selling a stated number of tonnes** rather than one at a time. `Space` still trades one, so nothing that used to be quick got slower. - **Mining and military lasers**, at the original's own powers and prices: a mining laser is 50 at 800 Cr, a military laser 151 at 6000 Cr - and 151 has the top bit set, so it fires continuously like a beam at half again a beam's damage. Both appear at tech level 9, which is where the original unlocks the whole list at once. - **The system descriptions**, built from the disc version's extended token table. The cassette game's data screen stops at the planet's radius; this adds the paragraph underneath, and it is the disc version's own, because the generator is seeded from the system's two seeds before it starts choosing. Lave really is most famous for its vast rain forests and the Lavian tree grub. - **Moving the chart cursor a long way with SHIFT**, eight notches at a time. This one needed the firmware: it reported shift with the down and right arrows as DOWNSEL and RIGHTSEL but gave shift with left and up no code of their own, so only half the feature was reachable. They are now LEFTSEL (&HA2) and UPSEL (&HA4). - **Finding a system by typing its name.** `F` on either chart asks for a name and moves the cursor to it. The cassette game has no such thing - you hunt for the dot yourself, and with 256 systems to a galaxy that is a chore. - **Asteroids worth splitting.** A mining laser is the only thing that breaks a rock into anything: an asteroid or a rock hermit gives nought to three boulders, a boulder gives splinters, and a splinter scooped is minerals - or, one time in eight, gem-stones. Anything else you shoot a rock with simply destroys it, as before. - **The NEWB flags.** Our spawner and tactics decided everything from the ship type and one AI byte; the disc version splits the question in two. sAI says how a ship behaves, sNewb says what it is - trader, bounty hunter, hostile, pirate, docking, innocent bystander, cop, and whether the type carries an escape pod. A ship that is not hostile now goes somewhere rather than simply existing: to the station if it is docking, to the planet if not. A trader minds its own business four passes in five. The police are bounty hunters, so a Viper ignores a clean commander and only turns on you once your record passes 40 - which is what makes launching with a hold of slaves matter. Shooting an innocent bystander brings the station down on you where shooting a pirate does not, and only a pilot whose ship type carries a pod bails out. A ship marked as docking flies itself in and goes inside, which is where bit 7 gets its second meaning - "scooped or docked" on a ship in the bubble, as against "carries an escape pod" in the table of defaults. It leaves no wreck, pays no bounty and counts as no kill: it docked, it did not die. The original keeps a separate Cobra Mk III and Python for the pirates - identical ships, different flags - and so do we. - **The two missions.** The whole of both of them is four bits in one byte - the original calls it TP - and every branch of what happens when you dock comes out of those four bits. Reach a combat rating of Competent with 256 kills in one of the first two galaxies and the Navy asks you to hunt down a stolen Constrictor; it is hiding in the second galaxy at galactic coordinates (144, 33), which our own galaxy generator turns into Orarra, and nothing but a military laser will scratch it - then only at a quarter of the damage it would do to anything else. Five thousand credits and 256 kill points for bringing it down. In the third galaxy, once that is done and you are most of the way from Dangerous to Deadly, Naval Intelligence wants the Thargoid defence plans carried from Ceerdi (215, 84) to Birera (63, 72); while they are aboard the Thargoids come after you on one spawning pass in five, and delivering them earns the Navy's own energy unit, which recharges half as fast again as the one the shops sell. The briefings are the original's own words, from the extended token table. - **The Dodo station.** A system of technology level 10 or above has a dodecahedron rather than a Coriolis - which is to say a screen that reads technology level 11 or better, because the data screen shows one more than the number the game works in. It is not a second station and it needs no code of its own: the original swaps the blueprint that the space station ship type points at, and our five docking tests read the station orientation vectors rather than its shape, so they work on either without being told which one is in front of them. - **The ship hangar**, which is what you see for a moment when you dock. Half the time it is one of the original's four groups - a Shuttle and a Transporter, three cargo canisters, or a Viper and a Krait at one of two spacings - and half the time a single Sidewinder, Mamba, Krait or Adder somewhere random. Each is spun on the spot so it can face any way, and the height each stands at comes from the square root of its targetable area, so a big ship sits higher off the deck than a small one. The floor is the original's eleven lines at 130/n below the centre for n from 2 to 12, and the back wall its fifteen verticals up to the horizon. From the **6502 Second Processor version**, which had a whole second computer to spend - and which this port now follows, because a PicoComputer has that much spare and a great deal more: - **Colour in space.** The cassette game's space view is black and white. The Second Processor's has four colours, and its two tables say what gets which: ships are cyan, a missile yellow, rocks red, a Thargoid white, and the planet and the sun green. Both tables are the original's, read out of its source. - **Six colours on the scanner**, which is the best of the lot: a rock is red, a canister or an escape pod blue, the station green, a big fat Python magenta, a missile yellow, everything else cyan. You can read the bubble at a glance now instead of flying over to look. - **Lasers in red** - both ours and theirs. Being shot at also *looks* like something at last: a ship that fires draws a red beam across the screen, as every version from the cassette on has, and which this port did not. - **A bigger bubble.** Ten ships and four police become eighteen and seven. - **The Cougar**, which appears in no earlier version and is the rarest thing in Elite - about one spawning in nine thousand. It sits still and ignores you, because it was given no AI, which is the original's way of faking a cloaking device. Shoot at it and it wakes up with a beam laser, four missiles, an E.C.M. and an aggression of sixty out of sixty-three. - **Rock hermits that are not just rocks.** One asteroid in eighty is somebody's house. It sits there ignoring you - the original gives it no AI at all - but shoot at it, as shooting at anything turns its AI on, and from then on there is about one chance in five, each time it is serviced, of a Mamba, Krait, Adder or Gecko coming out of it with an E.C.M. and an aggression of 56 out of 63. It settles down again afterwards, so the next one costs another shot. (The original's own comment says the pick includes a Sidewinder; its arithmetic says otherwise, because the carry is set by the time it reaches the addition.) - **The station's own traffic.** A Shuttle or a Transporter, about one pass in 128, and never a second while the first is still about - which is what the two fat slow ships in the hangar are for. Neither carries a laser, so the aggression the original hands them only means they come over for a look. - **A screenshot key.** Press `P` to pause, then `D`, and the frame is written to the card as `SCREEN1.BMP`, `SCREEN2.BMP` and so on - which is what CTRL-D does there. - **Its ships.** The cassette game has twelve designs; seventeen more are here, taken from the Second Processor source through the same generator: the Krait, Adder, Gecko, Cobra Mk I and Worm that fill out a pirate pack, the Asp Mk II and Fer-de-Lance a lone bounty hunter flies, the Boa and Anaconda that make a fat trader worth stopping, boulders, splinters and rock hermits among the rubble, the Cougar, the Shuttle and Transporter the station sends out, the Dodo, and the Constrictor that mission one is about. They arrive by the original's own rules: a pirate group is drawn with the AND of two random numbers so the small fighters come up far more often than the Cobra, and a rock hermit is about one asteroid in eighty. Still missing from it: the log tables and Bitstik support, both of which are meaningless here. The Moray is missing from the Second Processor version too - it picks a lone bounty hunter from types 24 to 27 and the Moray is 28, so nothing in that game ever spawns one either. What is left of that list is not difficult in the way the cassette game was difficult: the blueprints are published and the extended token table is only data. It is a question of program memory, which is the one thing here that is genuinely tight. ## How close is this to the real thing Everything the cassette version does, it now does, and a good deal that it does not - the section above lists what has been taken from the later versions and where each piece came from. The galaxy, the market, the ship blueprints, the flight model, the tactics, the spawning, the legal model and all five docking tests are the original's own arithmetic. Ships are wireframe with the hidden faces removed, decided from the blueprint's own face normals, as the original decides it. Three things here are deliberately not the cassette version's. The colour is the first, and the section above says where it comes from: a cassette Elite is black and white out of the window and one colour on the scanner. The second is the flown docking approach described above. The third is the space station, which is given black faces behind its edges so that it blots out the planet, the sun and the stardust instead of showing their lines straight through itself - on a BBC the station is hollow like everything else, and a planet's great circles run across its face. Every other ship is left hollow, as it should be. Switch the station back with `STNSOLID = 0` in `00_main.bas`; filling it costs about eight tenths of a millisecond a frame at docking range and does not move the frame rate, which is paced by the display rather than by the drawing. The sound is the original's ten effects, converted from the SFX table in its source. Five of the ten are its exact numbers; the other five ask for sound envelopes that the cassette *loader* defined rather than the game, so those are approximated by a pitch sweep and are marked as approximated in the table and in `tests/sfxtest.bas`, which plays all ten by name so they can be judged. What is left: - **The hyperspace countdown.** The jump happens at once behind its tunnel of rings; the original counts down from 15 while you keep flying, and you can be attacked during it. - **The pace.** Every one of the original's constants is per iteration of its main loop, which ran at something like ten or twelve a second. The game now scales by how much of one of those iterations each frame is worth, so the speed no longer depends on the frame rate, but the rate itself - `TICKRATE` in `00_main.bas` - is an estimate rather than a measured fact. - **No indicator for the safe zone.** Getting clear of it to hyperspace takes about half a minute of flying away from the station and nothing tells you when you are out; press `H` and see. - **Equipment cannot be damaged.** In the original a hit can take out your E.C.M. Everything else on this list has been closed: sound, in-flight messages, the per-view laser mounts, cargo scooping and fuel scoops, the altitude and cabin temperature gauges with the planet and the sun that drive them, collisions, the escape pod, the energy bomb, the in-system jump, the other seven galaxies, ships that fire missiles at you and jam yours with their own E.C.M., pilots who bail out of a dying ship, and equipment that has to be bought before it works. ## Testing it The fixtures are how each phase was checked and they are kept working. Set `DEMOFRAMES` to a frame count and `DEMOSCENE` to one of these in `src/00_main.bas`, then run: | | | |---|---| | 1 | flight and combat, photographed every few frames | | 2 | the docking approach | | 3 | every docked screen, drawn once each | | 4 | the ship hangar, eight times over | | 5 | the four mission briefings, page by page | | 6 | both missions walked end to end | | 7 | what each kind of ship does, and why | | 8 | a trader flying itself into the station | Scene 6 also reports which systems the missions' coordinates land on, which is the check that our galaxy generator and the original agree: galaxy 2 (144, 33) must be Orarra, galaxy 3 (215, 84) Ceerdi and galaxy 3 (63, 72) Birera. Scene 5 prints a system description for the same reason - the briefings and the descriptions share one set of case rules. `Bas/savetest/` and `Bas/libtest/` are firmware harnesses rather than game ones: the first characterises what `SaveProgramToFlash` does with CSUB and DefineFont blocks, the second proves a program plus a library really does get twice the code space. |
||||
| homa Guru Joined: 05/11/2021 Location: GermanyPosts: 688 |
An incredible achievement, congratulations! |
||||
| Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 9128 |
What happened to "Thou shalt not run Elite on a $1.30 embedded microcontroller."? Brilliant! Although the only version I ever attempted to play was the Speccy one (not an experience I particularly enjoyed). We didn't have access to a BBC Micro. Mick Zilog Inside! nascom.info for Nascom & Gemini |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11850 |
Apparently the Spectrum averaged 1-3 FPS on elite. My port is running at >25FPS in standard MMBasic |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11850 |
Here is the code. Note, you must be running V6.03.02b5 or above. Tested on the HDMIWEB build but should run on any HDMI or VGA RP2350 build with a local keyboard. Also tested and working on a PicoCalc with a RP2350A running PicoMiteRP2350V6.03.02b5.uf2 Elite.zip # Getting started in Elite You are docked at Lave with 100 credits, a pulse laser pointing forwards, three missiles, seven light years of fuel and an empty twenty-tonne hold. Nobody is going to tell you what to do next. This is the part of Elite that puts people off, so here is what to do next. If you want the real thing afterwards, Ian Bell - who wrote it with David Braben - keeps the original documentation on his own site at `http://www.elitehomepage.org` (plain `http`, not `https`). The **Original Players' Guide** there is the 1984 one, and the **Elite Manual** is the book that came in the box. Everything below is about this port in particular: the keys are a PC keyboard's, not a BBC's. ## Your first trip **1. Buy something to sell.** Press `F2`. Lave is a Rich Agricultural world, so food and textiles are cheap here and worth money somewhere industrial. Put the cursor on **Food** and press `Return`, type `20`, press `Return` again - that fills the hold in one go. It will cost you about 72 credits of your 100. Leave the slaves and the narcotics alone. They are worth a great deal and they are also the reason the police will want a word; more on that below. **2. Pick somewhere to go.** Press `F6` for the short range chart. The green circle is how far your fuel will take you. Move the cursor with the arrow keys - hold `Shift` to move it faster - and press `F7` to see what any system is. You want an **Industrial** one. From Lave, *Diso* and *Leesti* are 3.6 light years away, *Reorte* 4.4 and *Zaonce* 5.6, so all of them are inside a full tank. Zaonce is an Average Industrial world with a technology level of 12, and Lave to Zaonce is the run that everybody who played this remembers. You can also press `F` on either chart and type a name. **3. Launch.** `F1`. You come out of the slot already moving. **4. Get clear of the station.** Hold `Space` to speed up and fly away from it for about half a minute. Watch the **S** bulb at the bottom of the dashboard: while it is lit you are inside the station's zone and cannot jump. When it goes out, you can. **5. Jump.** Press `H`. A countdown from fifteen appears in the top left corner and you keep flying while it runs - about seven seconds, and anything out there gets a last go at you. Then the stars stretch and you are somewhere else. **6. Sell.** Find the station (below), dock, press `F3`, put the cursor on Food and press `Return`, `20`, `Return`. You should be up on the trip. Buy whatever *this* world is cheap in, and go back. That is the whole game, at its simplest. Everything else is what you do with the money. ## Finding the station When you arrive you are pointing at the planet, and the station is in orbit round it. Fly towards the planet. The dial to the right of the scanner is the compass: it points at the planet when you are far out and at the station once you are near one. **Yellow and two rows deep** means the thing is ahead of you; **green and one row deep** means it is behind you and you should turn round. The station appears as a green dash on the scanner when you get close. ## Docking, which is the hard part The slot is a letterbox, and the station never stops turning. To get in you need four things at once: - the station not angry with you - its slot facing you rather than its back - the station nearly dead ahead - **your wings lined up with the slot** - which means rolling to match a station that is still turning Below speed 5 a failed approach is a bump. Above it, it kills you. So come in slowly: `/` to slow down, and take the last stretch at 2 or 3. The trick nobody tells you: line up *first*, from a distance, then drift in. Roll until the slot is horizontal on your screen, and keep rolling gently to hold it there as the station turns. **Or buy a docking computer for 1500 Cr and press `C`.** It flies the whole approach, including the rolling. You cannot buy one at Lave - it needs a technology level of 9 and Lave is 5 - so it is a thing to buy once you are somewhere advanced and have the money. It is the best 1500 credits in the game. ## Staying alive Your pulse laser is feeble and you have no shields to speak of. For the first few trips, **do not fight anything**. If something hostile turns up: - turn away from it and run - most things are slower than a Cobra - if it is on your tail, `E` fires the E.C.M. if you have bought one, which destroys any missile in the area - `Esc` launches your escape pod if you have bought one. You wake up docked, alive, and with a clean record - and with nothing else. No cargo, no equipment, no missiles, a twenty-tonne hold and a front pulse laser: what you started with. It is the difference between a setback and the end Watch the four energy bars on the right of the dashboard. When they get low, break off. They recharge. ## The law Slaves, narcotics and firearms are contraband. Launching with any of it aboard goes straight onto your record, and a hold full of slaves is enough on its own to make the police take an interest. A Viper is a bounty hunter as much as a policeman: it will leave an honest commander alone entirely. It is your *record* that makes it hostile, not your cargo - but launching with contraband is what puts the record there. Two things to avoid: - **Never shoot a policeman.** It makes you a Fugitive on the spot and there is no way back except a galactic hyperdrive. - **Do not shoot traders.** They are going about their business, and attacking one brings the station down on you as well. Arriving in a new system halves whatever is on your record, so a run of bad behaviour does fade if you travel. ## Making more than a living Trading pays slowly and safely. When you are tired of it: - **Bounty hunting.** Buy a beam laser (1000 Cr) and an E.C.M. (600 Cr) first. Anarchy and Feudal systems are full of pirates, which is what the government column on the data screen is telling you. - **Mining.** A mining laser (800 Cr) and fuel scoops (525 Cr). Shoot an asteroid with the mining laser and it breaks into boulders; shoot a boulder and it breaks into splinters; fly through a splinter and you scoop minerals, or one time in eight, gem-stones. - **The large cargo bay** (400 Cr) takes your hold from twenty tonnes to thirty-five, and pays for itself quickly. Buy the cargo bay, then the E.C.M., then a beam laser, then the docking computer. In that order. ## Two things that will happen eventually Your combat rating climbs as you destroy things. Once you have 256 kills behind you - a combat rating of Competent - the Navy will have a message the next time you dock, provided you are still in one of the first two galaxies. Take the job. And keep an eye on your fuel. Seven light years is not far, a full tank costs 14 credits, and being stranded in a system you cannot leave with a hold full of food nobody wants is the most Elite way there is to end a career. ## The keys, in one place | | | |---|---| | `<` `>` or left/right | roll | | `S` / `X`, or down/up | climb / dive | | `Space` / `/` | faster / slower | | `A` | fire | | `T` then `M` | lock a missile, then launch it | | `E` | E.C.M. | | `C` | docking computer | | `H` | hyperspace | | `Esc` | escape pod, or back to the title | | `F1`-`F4` | fore, aft, left, right views | | `F5` `F6` | galactic and short range charts | | `F7` | data on the system the cursor is on | | `F8` `F9` `F10` | market prices, status, hold | | `P` then `D` | pause, then save a screenshot to the card | Docked, `F1` launches, `F2`/`F3` buy and sell, `F4` is the equipment shop, `Space` trades one tonne, `Return` asks how many, and `S` and `L` save and load your commander. Edited 2026-09-14 19:07 by matherp |
||||
| thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4398 |
Hi Peter, I've not run it up myself yet (won't run on MMB4L as I had no reason at the time to port the MMBasic 3D engine) but from the video it looks very impressive .I would have lost a bet on what you were squirreling away at, I had thought perhaps an MMBasic port of Another World. I can't see you having sat down to play hours of Elite in order to create a "workalike"? so would I be correct in thinking this is the result of expending a lot of Claude tokens on a copy of the Elite 6502 annotated disassembly ? Best wishes, Tom MMBasic for Linux, Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
| thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4398 |
It's funny how the memory works - I believe I played that version (though not as much as I did the BBC Micro disc version) and that it was playable ... I wouldn't have thought it would be at 1-3 FPS. Best wishes, Tom MMBasic for Linux, Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11850 |
Here is an updated version with the original BBC sound effects. Needs V6.03.02b6 or above to run Elite.zip |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |