Elite - Galaxy Creator Pokes.

So 8 meagre galaxies are not enough for you? Tired of visiting the same old 2048 planets over and over? Say no more, these "Galaxy Creator" pokes will have you sorted in no time. Simply pop a number between 0-255 behind one or all of these bad boys and you'll have a new set of 8 Galaxies to explore. To infinity (almost) and beyond!

53870,x
53871,x
53872,x
53873,x
53874,x
53875,x

Since the initial seed is encountered twice in the game's code, it might be wise to enter the same number(s) in the following addresses as well. (don't know if these are used at all in game, but better safe than sorry I suppose).

53392,x
53393,x
53394,x
53395,x
53396,x
53397,x

Just a bit of fun!

Thanked by 1Morkin

Comments

  • Ace - I've been wondering about this for a while now - whether in practice just changing the seed would give you entire new universes. Look forward to trying it at some point..!
  • The initial seed was chosen very carefully - get it wrong and you get planets that you can't get to due to your fuel limitation. Even Bell/Braben didn't get it exactly right, as there are one or two that are off-limits. Might be fun to also POKE your fuel capacity too?

    D.
  • Sure there might be a system or two that's out of reach in your newly generated galaxy, it's not so bad though, I've created several on the NES version and explored without snags before. There's a few systems that are unreachable even with the original seed; in galaxy 3,6,8 and a larger cluster in galaxy 7. The Spectrum version has that sweet 'travel anywhere in the galaxy without fuel' bug that I posted about a few months ago, that would help if you'd get stuck in a smaller cluster. In the end it's all for fun, mate! :)

    I noticed that when you generate a new galaxy the Lave coordinates are hard coded so you always start at the system closest to Lave's original coordinates. No problem, right? Well your fuel range isn't updated to the new planet's coordinates, it's stuck at Lave. All you really have to do, though, is jump to a system close-by, the fuel range gets updated and your good to go. You can also manually set Lave's fixed coordinates by changing these addresses: $D277 (53879) for X and $D275 (53877) for Y if you really need to.

  • They had to reject a seed because it had a planet called Tits if I recall correctly.
  • Oh,my mistake, it was Arse

    However, the use of procedural generation created a few problems. There are a number of poorly located systems that can be reached only by galactic hyperspace— these are more than 7 light years from their nearest neighbour, thus trapping the traveller. Braben and Bell also checked that none of the system names were profane - removing an entire galaxy after finding a planet named "Arse".
  • Why are there 6 bytes worth of seeds for 8 galaxies?
  • edited February 2016
    It's not possible for a planet to have the name 'Tits' nor 'Arse'. They might've used a different string of syllables during testing, but in the final game that can't happen. Even though I've heard David say that there's a planet 'Arse' out there somewhere on many occasions.

    I have a planet 'Tities' in one of my galaxies, which I thought was cute. :)

    Since there's a lot of information to be generated, 6 bytes were probably chosen to get higher entropy while still being a relatively small seed. Fewer would probably repeat itself sooner and a larger seed meant less RAM. I remember David talking fondly about saving 1-3 bytes on the original BBC version, so it was always a tight fit.

    Post edited by Ersh on
  • Second occurrence of seed is probably because it is contained in initial save game (~100 bytes) in memory as well.
  • Anything else that can be modded for Elite?
  • edited February 2016
    tomas wrote: »
    Second occurrence of seed is probably because it is contained in initial save game (~100 bytes) in memory as well.

    Hm, the seed isn't stored in my saves, since it's a constant why would it be stored there? Or am I missing something?

    Anything else that can be modded for Elite?

    I guess you could modify the syllables as well, though they might be part of the token system so you may end up with gibberish in the menus. If you're talking about modifications besides the procedural generation, like missions and the sort, you'd have to start disassemble the code. :)

    Post edited by Ersh on
  • edited February 2016
    I am sure galaxy seed is stored in save if my memory doesn't fail me. It should be at very beginning of save file.
    Post edited by tomas on
  • Ahh yeah just made save and you are right, sorry, my memory failed me. it is X,Y pos in current galaxy not universe seed. My bad.
  • edited February 2016
    Haa! I know I read this somewhere very long time ago! It's just at the end of save, not at beginning. It was maybe 15 years ago when I discovered this info in saves. Memory was just faint.

    This is from 48k version of Elite, not sure if 128k version changed address of this as you didn't specify for what version your info relates.

    So, look at this Ersh: (save picture as from browser to see full res)

    http://prekladytextu.eu/elitesave.jpg

    I believe game changes this seed for each galaxy in save game but this needs to be checked with save in galaxy > 1.

    This is from textelite.c and look at that void nextgalaxy(seedtype *s) function.

    /**+Generate galaxy **/

    /* Functions for galactic hyperspace */

    uint16 rotatel(uint16 x) /* rotate 8 bit number leftwards */
    /* (tried to use chars but too much effort persuading this braindead
    language to do bit operations on bytes!) */
    { uint16 temp = x&128;
    return (2*(x&127))+(temp>>7);
    }

    uint16 twist(uint16 x)
    { return (uint16)((256*rotatel(x>>8))+rotatel(x&255));
    }

    void nextgalaxy(seedtype *s) /* Apply to base seed; once for galaxy 2 */
    { (*s).w0 = twist((*s).w0); /* twice for galaxy 3, etc. */
    (*s).w1 = twist((*s).w1); /* Eighth application gives galaxy 1 again*/
    (*s).w2 = twist((*s).w2);
    }

    /* Original game generated from scratch each time info needed */
    void buildgalaxy(uint galaxynum)
    { uint syscount,galcount;
    seed.w0=base0; seed.w1=base1; seed.w2=base2; /* Initialise seed for galaxy 1 */
    for(galcount=1;galcount<galaxynum;++galcount) nextgalaxy(&seed);
    /* Put galaxy data into array of structures */
    for(syscount=0;syscount<galsize;++syscount) galaxy[syscount]=makesystem(&seed);
    }


    BTW I think its you from this thread http://www.worldofspectrum.org/forums/discussion/50165/elite-missions-triggers/p1 where I was interested to make complete map of ZX Elite save file and WOS forum crash made that disappear. Good I found you again as I am still interested to make complete and new ZX Elite save editor and you seems have big knowledge of ZX Elite.
    Post edited by tomas on
  • edited February 2016
    Post edited by tomas on
  • edited February 2016
    You're right, my saves was not from galaxy 1 so the seed was twisted beyond recognition in my case. Tried saving in galaxy one, and there it is! Also tried altering the seed in a clean save and when loaded; wham! I was in a new galaxy. This means a save editor could also offer the option to generate new galaxies without the use of pokes. Very cool! :)

    Didn't think that the twist was saved, thought it was rotated in real time.

    Post edited by Ersh on
  • edited February 2016
    Yeah, cool isn't it? :) We need start map all 102 (100 or 101 in 128k version, don't remember exact difference) bytes of save game file.

    I think game will then shift seed from save game when you hyperspace to next galaxy. Editor with all galaxy previews from new seed will be very cool. We have sources for that. Only stars positions, we don't need generate planetary soup to not spoil new adventures.

    Also I believe its feature of ZX and probably CPC Elites written by Torus. C64 do not have that info by quick look to c64 save data format. Do not know about BBC Elites.
    Post edited by tomas on
  • I sent you private message Ersh.
  • Galaxy previews would be really neat and easy to do, it would also not be that hard to check and show which systems are reachable in relation to each other. I agree in not spoiling the exploration, that's the fun part. :)

    I never thought they'd store the shifted seed as there's plenty of empty buffers to use when the generation is needed. All you need is the current galaxy number and the original seed. Not complaining though, the ability to generate new galaxies by just modifying the save is just sweet. :) Torus really did a good job!

    Just checked the save file from the NES version (by Braben & Bell), curiously the galaxy seed is present there.

  • Ersh (or anyone), I've heard that the NES version of Elite is very good (and I believe Ian Bell said it was his favourite version). What advantages or differences does it have over the Spectrum version (the only one I ever played to any length), and how does it work with only four joypad buttons (including START and SELECT)?
  • edited February 2016
    Well, NES elite is very clumsy with controls as you can imagine with direction pad, two fires and select/start button. A lot of button shifting combinations are used. It have nice graphics for UI and I found it interesting although I still love slick Spectrum version UI and also this is spectrum site so naturaly we are interested in Spectrum one.
    Post edited by tomas on
  • edited February 2016
    NES Elite is my favourite version of the game. The 3D is flicker free and very fast, probably the fastest across all 8-bit versions. The control is great, the icon system is intuitive and easy to learn and you never feel like you're missing any buttons on the controller. Then there's some small changes that streamlines things, like you can use a space station's docking computer for a fee ($5) until you've purchased one of you own. There's a docking sequence like in the BBC Disk/C64 versions but you can skip it here if you'd want to. You're only mass-locked to hostiles and can use the torus jump drive any other time, which speeds things up a lot. The different encounters are also colour coded on the radar so it's easy to judge 'what's what'. I'm probably missing something now but all in all it's a really good game, highly recommended!

    The Spectrum version has got it's own merits though!

    Post edited by Ersh on
  • Ersh wrote: »
    NES Elite is my favourite version of the game. The 3D is flicker free and very fast, probably the fastest across all 8-bit versions.

    Pretty sure the original BBC version is faster, it certainly looks smoother than the NES, although it does flicker. And even if you want to dispute that, the tube version is way faster than every other 8 bit version!
  • Just had a look at the BBC version again and it seems a bit faster, yes. :) The tube setup has got a second 8-bit cpu, that doesn't really seem fair ;)

  • What is the 'Tube' version, please?
  • Ersh wrote: »
    Just had a look at the BBC version again and it seems a bit faster, yes. :) The tube setup has got a second 8-bit cpu, that doesn't really seem fair ;)

    Okay, maybe that is a little cheating but it's still 8 bit! :) I really tried to like the Speccy version (we had a Speccy and a BBC at home) but coming from the BBC one it just didn't feel as fast and for some reason I found with the BBC one the dots become dots at a much further distance so you could actually eventually get an idea as to what type of ship was in the distance when it was just a few pixels in size, probably due to the flickering.

    There are things I like more on the Speccy port, like the hyperspace circles, witch space happens more often (actually do I really like this? it usually meant I died), but like most things the original is often better.
  • I agree, usually I prefer the original version of games as well. Haven't played much of BBC Elite though, I started with the c64 version.

    However I really do like the Spectrum game; there's no docking sequence just like in the BBC Tape version, the sequence let's face it, is neat the first time and pretty much a chore every following time. It's got a danger indicator (NES Elite later copied this). The opponents seems tougher both in behaviour (also do evasive manoeuvres) and stamina compared to the other versions I've played. I really liked the 3 Spectrum missions better than the original 2. Then there's the sleek, stylish UI which I found very aesthetically pleasing. As you mentioned it also has a great circle routine (I think the original just used lines and vectors).

    I've read that Torus didn't have any sourcecode besides the procedural generation, they just sat down and played the original for hours on end and then wrote the code. I think this is the reason why it feels so different from the Braben & Bell developed versions. I found it refreshing. :)

Sign In or Register to comment.