Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > CSDb Entries > Release id #164803 : Star Trek - The Rebel Universe
2019-04-25 00:54
jcompton

Registered: Feb 2006
Posts: 70
Release id #164803 : Star Trek - The Rebel Universe

Attention underemployed trainers looking to be the first to address a long-standing issue! Please consider offering a trainer that neutralizes the effects of the Catastrophe Pods, Mike Singleton's regrettable design decision that makes the game stupidly difficult to play without constant restarting.

https://www.lemon64.com/reviews/view.php?id=990
2019-04-25 08:35
bugjam

Registered: Apr 2003
Posts: 2476
Good idea - I think this game sure deserves a Gold version. I really dig that highres design.
2019-04-25 17:45
jcompton

Registered: Feb 2006
Posts: 70
A worthy project, the motion is seconded.

Now, to find a taker...
2019-04-25 17:46
jcompton

Registered: Feb 2006
Posts: 70
It really is a pretty clever game. The exploration elements of Elite, with more resource management, and planetary missions.
2019-04-25 20:12
AlexC

Registered: Jan 2008
Posts: 293
Quote: A worthy project, the motion is seconded.

Now, to find a taker...


I guess more of challenge is to find an original today than to find a taker ;)
2019-04-25 20:39
jcompton

Registered: Feb 2006
Posts: 70
Nah, both NTSC and PAL originals are in C64PP.
2019-04-26 11:12
Exploding First

Registered: Jul 2007
Posts: 76
In 1989 i got the original tape paid by mother. It was about 50 DM. Really expensive in these days. After this purchase i got no original games anymore. I've still got it.
2019-04-27 18:06
Krill

Registered: Apr 2002
Posts: 2839
Try this:
POKE 4324,173
i.e., freeze the game, set $10e4 to $ad, restart.

This disables the "Catastrophe Pod" countdown so they never explode once you have contracted them.
You don't need to get rid of them now, but you can probably still remove them via an "Orbital Discontinuum", though i haven't tested that.

With that poke, there is technically no need to release a trained version or find the original. This little "project" cost me a few hours to dig into the game and find the magic instruction to nix, though. :)
2019-04-27 18:42
jcompton

Registered: Feb 2006
Posts: 70
Nicely done! Any chance you found the seed for the random galaxy generator while you were poking around in there? :) (Presumably there's a bit more to it than, say, the Elite generator since some planets have fixed characteristics that allow you to satisfy victory conditions...)
2019-04-27 18:47
Krill

Registered: Apr 2002
Posts: 2839
Didn't come across this. I found that at least one system is always close to the starting point and always has the "Catastrophe Pods" on the same planet, and i didn't play the game long enough to notice that there are any variable system/planet properties from one run to the next.

I actually assumed the universe would always be the same.

What's different across runs?
2019-04-27 19:00
jcompton

Registered: Feb 2006
Posts: 70
You're right, it is always the same. In order to fit ~4000 systems into a single-load game, there's gotta be some sort of procedural routine working from a fixed random seed, ala the Elite galaxy generator documented here: http://wiki.alioth.net/index.php/Random_number_generator

(just with Mike Singleton special sauce instead of Bell-and-Braben special sauce.)
2019-04-27 19:02
Krill

Registered: Apr 2002
Posts: 2839
Yeah, so with the pseudo-random number generator's seed always being the same, what were you aiming at?

Snippets of code implementing the procedural universe generation? :)
2019-04-27 19:07
jcompton

Registered: Feb 2006
Posts: 70
One of the ways to make playing Elite a little fresher is to put in a new seed, since every planet will be entirely different.

It would be interesting to see what new and nearly-unlimited Rebel Universes might be created by changing just a few bits in the seed...
2019-04-27 19:11
Krill

Registered: Apr 2002
Posts: 2839
Ah, i see. There might be a handy seed value somewhere in memory to just change for different universes, but there might also be many interlocked pieces of code so changing the effective seed without breaking things might be very difficult.
2019-04-27 19:17
jcompton

Registered: Feb 2006
Posts: 70
Oh, agreed, it might be an unplayable mess without anything except for the One True Seed they built everything around. I'd just be curious to see that unplayable mess (or wondrous new galaxy) if anybody happens to know where those bytes live, that's all. :)

Thank you for finding the Catastrophe Pod routine and providing the quick patch.
2019-04-27 19:36
Krill

Registered: Apr 2002
Posts: 2839
Quoting jcompton
the One True Seed
There might be many good seeds, but with unknown constraints on the seed number. Such as certain bits have to be clear or set, or the sum of all bytes must be zero, things in that vein. "Somebody" "should" "some time" have a look at what's really there. :)

But this reminds me of Artefacts, where i needed to find seed values that would make for exciting enough differences from one loop to the next and also not generate boring or ugly stuff within the first 5 or so minutes. The values were even different for PAL and NTSC versions, iirc.
2019-04-27 21:34
jcompton

Registered: Feb 2006
Posts: 70
Like so?

.ifdef NTSC_VERSION
getrandom:      eor Artefacts+$0655
.else
getrandom:      eor Artefacts+$0653
.endif


(I had never seen Artefacts before! Thank you for mentioning it.)
2019-04-27 21:59
Krill

Registered: Apr 2002
Posts: 2839
Indeed. Also note how that is a very very cheap pseudo-random number generator, nothing like a linear feedback shift register or the like.
But it turned out that simply reading the numbers from the re-interpreted actual program code (with the initial position acting as the seed) was random enough for my purposes. :)
2019-04-28 11:26
Krill

Registered: Apr 2002
Posts: 2839
Ok, i dug a little deeper and found that no, there does not appear to be any kind of handy little seed value to play with.

Instead, there is some kind of star map with 512 byte-sized entries at $f623 plus a global "Quarantine Zone" map with 20 entries at $f60f.
System coordinates and properties seem to be derived from the entries in those maps, and the systems' names are generated from their coordinates.

The maps are readily there in memory after loading/depacking, and i haven't found any code to generate them.

So for playing around with alternative universes, you'd have to create those maps yourself, with all the unknown constraints. So... =)
2019-04-28 17:27
jcompton

Registered: Feb 2006
Posts: 70
Still very cool information. Not surprising that with all of the constraints (like multiple specific paths to winning the game) they'd have to give over more data than just a six-byte seed. Thanks for digging in!

(meanwhile I have been enjoying tweaking the Artefacts seed at $1bcd, although have yet to come up with anything nearly as good as the one it ships with. Occasionally there's one where the artifact is just a rectangular slab with very little detail in sky or ground, that's kind of interesting...)
2019-04-28 18:49
Krill

Registered: Apr 2002
Posts: 2839
Not sure about the constraints in this case, though.

I overwrote the star map once with the same value all over the place, and then the wireframe rebel ship was quite broken. So it could be that they actually re-used other data (namely the ship wireframe vectors) for the star map. :)
2019-04-28 18:54
Krill

Registered: Apr 2002
Posts: 2839
And as for tweaking the seed in Artefacts, there are only 256 different values, iirc, at least once it's running (you can set the seed to any 16-bit pointer value, but only the low byte is increased).

The routines would just linearly read one value whenever they need some randomness and advance the read pointer, until the low byte wraps. Some runs look pretty bad then for a given routine. Mind that the re-purposed program code is not that random, after all.

There should still be more than 256 different variations as the loops keep progressing, but i have never checked the amount of read random numbers per loop, or if it is prime. :D
2019-05-01 01:57
jcompton

Registered: Feb 2006
Posts: 70
I think there's another source (Local Zone?) of map data somewhere. As an experiment I filled the $f60f Quarantine Zone area with 20 bytes from random.org and the $f623 with another 512 bytes from the same site.

The Quarantine Zone was totally different, but the Local Zone still had very recognizable names, like Dizok at 53.46.03 05 LY away. (It's one of the first planets "above" your start location on the Local Zone map.)

(bytes for the curious:

$f60f: 1b 0f ca 10 f7 54 2c 32 15 10 b5 a6 1d ac d5 46 60 52 69 07

$f623: 3a 8b 03 84 aa 97 e4 5a b1 14 4a 94 49 d2 f7 ad c9 47 60 c2 92 bf 81 73 38 3d f9 ab 0f 6e 6b 59 fe 32 cf b5 db 36 17 91 06 4b f3 1d f8 84 a5 14 ca ff 43 5d 8f 40 9a 50 71 46 84 df a0 40 bb 80 4b 76 c3 4f 5f a7 d2 13 06 fe 3f ee d1 d0 c9 75 e0 f7 94 7a 3f 59 25 5f ac 24 67 eb b0 9c 5d 78 25 4e e8 68 c8 3b 9b 02 40 e1 a3 97 c5 33 d8 63 7a f0 11 10 6b 30 b9 ab f2 43 71 f9 1a c1 63 0f d4 a4 ed 25 39 a7 62 ea a4 01 e6 a8 f8 ee e6 40 27 99 8b 2b 65 f2 b6 5b b3 ca 8b 60 dc 1d 58 a8 95 76 4c 2e 99 29 78 63 bb bc 24 5e ec 10 a3 11 eb 05 c5 9e 72 0f 00 ea 65 d6 64 95 25 75 ce 4d a8 d3 1c d2 ea 44 6e b7 66 75 bf d7 2c b4 f0 a9 9b 1a 3c bb bd e8 9b 8a aa 89 71 ae 72 c0 e9 c8 9f dc 01 23 98 80 68 b9 2c 68 00 8f 78 b9 d1 52 4d 98 a4 73 4f b2 ec 01 f0 49 02 49 83 1f 81 f1 27 8f 85 b8 45 32 70 bc 23 87 f2 38 99 99 62 33 1d 35 a8 fc 1b 11 02 27 44 e8 f7 a8 82 9a 06 9e 04 f8 ff 96 39 86 a2 02 66 3a 11 fb 24 77 b0 3b 62 0e e5 9f bb 84 12 86 ac 48 d7 4b 4f 62 d7 b0 11 d2 d1 5a 1d 97 9f c6 3e f3 d2 33 e8 5b 5b 82 fa 25 b7 f9 c0 ba e9 59 66 28 53 8d a2 a5 4d be d6 33 9a 88 48 62 bf 7a cd af 22 e9 95 db 7c 8e fe ee 3d 12 91 f2 32 d9 c3 71 40 0f 00 ec 50 9d b1 c5 e8 67 20 62 9f a4 c2 00 71 7a 8b 53 10 9e
b8 f6 01 e8 a3 27 cb a0 fa 31 b4 a0 a8 1a 47 50 5a 86 76 ad dc e1 10 d5 76 72 6f 16 35 6e 30 c4 c5 c8 55 a5 bc bd 84 10 cf a7 d3 e2 c1 fd 42 99 2b 43 74 47 eb 1a 27 01 c4 f9 f9 44 9f bc b3 f0 02 ed 9e 55 87 c9 97 50 06 9a 3e f9 0b 30 3b a4 38 3c 2a 76 dc 4e 90 d8 d1 cc 47 41 17 d9 b9 88 f4 19 de 7e 48 fe ad c7 d2 26 01 d5 e2 28 e0 e6
2019-05-01 07:59
Krill

Registered: Apr 2002
Posts: 2839
Quoting jcompton
the Local Zone still had very recognizable names, like Dizok at 53.46.03 05 LY away. (It's one of the first planets "above" your start location on the Local Zone map.)
Quoting Krill
and the systems' names are generated from their coordinates.
It's not surprising that systems at (approximately?) the same position always have the same name, regardless of the actual star map.
2019-05-06 17:28
Krill

Registered: Apr 2002
Posts: 2839
Quoting jcompton
Attention underemployed trainers looking to be the first to address a long-standing issue! Please consider offering a trainer that neutralizes the effects of the Catastrophe Pods, Mike Singleton's regrettable design decision that makes the game stupidly difficult to play without constant restarting.

https://www.lemon64.com/reviews/view.php?id=990
Quoting Krill
POKE 4324,173

i.e., freeze the game, set $10e4 to $ad, restart.

This disables the "Catastrophe Pod" countdown so they never explode once you have contracted them.
jcompton: Maybe you could add the POKE somewhere in your Lemon review or another prominent place where other users with your gripe would find it? :)
2019-05-06 20:51
jcompton

Registered: Feb 2006
Posts: 70
Reasonable idea, I PM'ed a moderator, let's see what happens.
2019-05-07 15:17
jcompton

Registered: Feb 2006
Posts: 70
They put the info on the Lemon game profile page: https://www.lemon64.com/games/details.php?ID=2456
2019-05-08 08:46
Krill

Registered: Apr 2002
Posts: 2839
Excellent! =)
2021-06-29 16:29
Krill

Registered: Apr 2002
Posts: 2839
I just noticed that this game's tape version Star Trek - The Rebel Universe differs significantly from the disk version Star Trek - The Rebel Universe - apart from the tape version having no intro screen with the theme tune.

So the "Catastrophe Pod" trainer poke is different:
Tape: POKE 4302,173 (> $10ce $ad)
Disk: POKE 4324,173 (> $10e4 $ad)
Note how pretty much all the code is shifted up in memory for the disk version. The latter seems to have been made later, as it has more code (ends 8 bytes higher up in memory), with more code added in between and some routines shuffled around. The disk version seems to be a later build from a patched source.

Now the question is, apart from their binaries, do both versions differ noticeably, in gameplay or otherwise?

The tape version seems to exist in bugfixed ("100%") versions, but i haven't yet found out what was changed by the crackers there, and if those fixes are present in the disk version.
2021-07-02 21:31
Count Zero

Registered: Jan 2003
Posts: 1821
Thanks for using the term "POKE" :) Triggered me to add it to https://rr.c64.org/wiki/Pokes:Star_Trek_-_The_Rebel_Universe_(T..) and (Disc) .. which triggers a bad url parser here :)

That linked Derbyshire Ram version ( Star Trek - The Rebel Universe ) has an obvious text output bug at start immediately on clicking Kirk though - the Pulsar version ( Star Trek ) is fine.

Wonder what made Derby call that 100% :)
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Arcane/Glance
Acidchild/Padua
Mr. Spock/T'Pau
Max/Flat3
Krill/Plush
Malmix/Fatzone
Guests online: 132
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Webmasters
1 Slaygon  (9.7)
2 Perff  (9.6)
3 Morpheus  (9.5)
4 Sabbi  (9.5)
5 CreaMD  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.072 sec.