Teletext Elite (BBC Micro, BBC Master)

User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

Hi Stardot.

I'm delighted to announce my latest release: Teletext Elite on the BBC Micro.

title.png
title.png (6.31 KiB) Viewed 2955 times

Teletext Elite is the full and unabridged disc version of BBC Micro Elite, converted to run in the BBC Micro's teletext screen mode 7 (so it looks like Ceefax and Oracle). For those of us of a certain age, this is peak 1980s nostalgia.

There are a couple of Ceefax-related Easter eggs in there too - see the instructions for details (and the pictures below).

Here are the links:
Creating a loving and 100% faithful conversion of Elite in teletext has been an absolute delight, and I hope you enjoy the results as much as I've enjoyed making it.

Huge thanks to kieranhj for the original idea, and all the encouragement and feedback; this is all his fault. :-) Thanks also to kieranhj and simonm for writing the sixel plotting and line-drawing routines, and to Rich Talbot-Watkins for the Bresenham routine that they adapted. Without them, none of this would have happened.

Here are some more pictures, to get your sixels all excited...

station_view.png
station_view.png (6.91 KiB) Viewed 2955 times
status.png
status.png (15.3 KiB) Viewed 2955 times
data_on_system.png
data_on_system.png (12.35 KiB) Viewed 2955 times
saturn.png
saturn.png (7.73 KiB) Viewed 2955 times
galfax.png
galfax.png (15.42 KiB) Viewed 2955 times

Right on, Commanders!

Mark
Last edited by MarkMoxon on Sun Dec 04, 2022 5:43 pm, edited 2 times in total.
User avatar
KenLowe
Posts: 4675
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by KenLowe »

WOW!
User avatar
Symo
Posts: 16
Joined: Thu Dec 06, 2018 1:47 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by Symo »

Nice - been working on a mode 7 line plotter myself :)
User avatar
BigEd
Posts: 6261
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by BigEd »

So very retro - splendid!
User avatar
Lardo Boffin
Posts: 2977
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by Lardo Boffin »

Blimey!
Adventure Language on GitHub
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
User avatar
fizgog
Posts: 618
Joined: Thu Jun 17, 2021 3:18 pm
Location: Nottinghamshire
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by fizgog »

Very impressive =D>
Pitfall, Gridrunner, Matrix: Gridrunner 2, LaserZone, AcornViewer, AcornPad
User avatar
Rob_hawk
Posts: 477
Joined: Mon Jul 12, 2021 6:50 pm
Location: Valmeinier, France
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by Rob_hawk »

Wow great work team!

This’ll keep me occupied next weekend :D
fuzzel
Posts: 1191
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by fuzzel »

Totally bonkers but brilliant. Well done!
User avatar
Bobbi
Posts: 824
Joined: Thu Sep 24, 2020 12:32 am
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by Bobbi »

Kudos! Very impressive. For those of us that like our fonts rounded and our pixels chunky :)
User avatar
TobyLobster
Posts: 618
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by TobyLobster »

This is an impressive modification, nicely done. Congrats to all involved!
User avatar
rmbrowngr
Posts: 619
Joined: Sat Jan 13, 2018 12:46 pm
Location: Dionysos, Greece
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by rmbrowngr »

Very impressive, and doesn’t look bad at all.
Richard B
Acorn Electrons issue 4 and 6, MRB, Plus 1 x2, Plus 3, AP6 x2, AP5, Pegasus 400, BeebSCSI, Gotek, Raspberry Pi Co-processor, GoSDC MBE.
BBC B+ 64K (128K upgraded) with Duel OS, Raspberry Pi Co-processor and Gotek.
User avatar
lovebug
Posts: 1739
Joined: Sun Jan 31, 2021 5:07 pm
Location: Magrathea
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by lovebug »

amazing work and amazingly bonkers :lol: :lol:

well done =D> =D>
Image Image Image Image
User avatar
spanners
Posts: 178
Joined: Fri Mar 23, 2018 2:37 pm
Location: Glasgow
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by spanners »

Amazing work. Well done all!

D.
tnash
Posts: 161
Joined: Mon May 02, 2022 9:56 am
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by tnash »

Wonderful stuff. Does this mean I should finally learn to play Elite?
User avatar
Cybershark
Posts: 736
Joined: Wed Jun 14, 2006 11:16 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by Cybershark »

You twisted genius! :lol: =D>

Did you have to throttle the game speed down much as a result?
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

Cybershark wrote: Mon Dec 05, 2022 12:36 pm You twisted genius! :lol: =D>
Ha, I'll take that, lol. Thank you! :-)
Cybershark wrote: Mon Dec 05, 2022 12:36 pm Did you have to throttle the game speed down much as a result?
Actually, there's no throttling at all - it's still running at full pelt. The underlying mathematical model is identical, and that's where most of the CPU time is spent, so swapping pixel routines for sixel routines doesn't speed things up as much as you'd think. Even the time savings from ditching the screen mode interrupt routine aren't that obvious, though it might feel a little faster? It's hard to tell.

The suns are the exception, as they are raster-based, so they use a quarter of the CPU effort compared to the normal version. Flying near to the sun still slows things down, but not as much as in the original.

Mark
nicolagiacobbe
Posts: 215
Joined: Tue Jul 03, 2007 10:40 am
Location: italy
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by nicolagiacobbe »

Simply wonderful. And now tell me, how much memory is using?
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

nicolagiacobbe wrote: Mon Dec 05, 2022 5:35 pm Simply wonderful. And now tell me, how much memory is using?
Good question!

Looking at the flight code - which is the more memory-hungry out of the two modes (i.e. docked and flight) - we gain 6.75K of memory by switching to mode 7, but we use a chunk of this for the lookup tables used by the sixel routines, and for the dashboard image, which we need to store as Teletext Elite hides it for the text screens and reloads it into screen memory for the space view (unlike the original where the dashboard is always on-screen and is only loaded once, in the game’s loader). This leaves us with about 4.9K of free memory in flight, so there is quite a bit of free space, especially when compared to the original game, where memory is extremely tight.

The docked code has a bit more free memory at 5.3K, but this isn't very meaningful, as the original docked code already contains quite a few unused routines anyway, so it's already easy to free up memory in that part.

Mark
User avatar
ChrisB
Posts: 547
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by ChrisB »

Wonderful stuff. Will all that extra memory can you load all the ships in at once - like the master/tape version?
Castle Defender, Untitled Dungeon Game, Night Ninja, Wordle, Waffle, Acorn Island, Beebchase, Ghostbusters
User avatar
flaxcottage
Posts: 5717
Joined: Thu Dec 13, 2012 8:46 pm
Location: Derbyshire
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by flaxcottage »

I love MODE 7 on the Beeb. I have got to give this a go.

Great work you guys. =D>
- John

Check out the Educational Software Archive at www.flaxcottage.com
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

ChrisB wrote: Mon Dec 05, 2022 7:21 pm Wonderful stuff. Will all that extra memory can you load all the ships in at once - like the master/tape version?
Indeed you can! I toyed with adding this as a feature, but thought a faithful conversion of the disc version would be a better target... but yes, there is definitely enough free memory to load all the ship blueprints in one go.

In the Master version, the 33 ship blueprints take up &1D95 bytes (and this includes the Cougar, which doesn't appear in the disc version). The disc version's ship files are &A00 bytes long, so we would need an extra &1395 bytes (&1D95 - &A00) to load all the ships in one go. Teletext Elite has &1537 free bytes in the flight code, so there's plenty of room. I think the enhanced ship-choosing logic would also fit, but I haven't calculated that bit.

Maybe one day I'll give it a whirl. So many ideas, such little time... :D

Mark
User avatar
tricky
Posts: 7694
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by tricky »

How about using some of that memory for double buffering?
You would need two status panels on the master or a shadow flip interrupt.
Would you need to EOR the chips or could you just clear the top section?
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

tricky wrote: Mon Dec 05, 2022 9:21 pm How about using some of that memory for double buffering?
That could indeed be done, and Kieran and I talked about how we could do it... but when I merged in the flicker-free ship-drawing algorithm from the Master, the flicker disappeared from everything except the planets, so double-buffering just didn't feel that necessary any more.

I also think it should be possible to recode the circle buffer routine to remove planet flicker by using the same approach as in the flicker-free ship routine, and that would fix planet flicker on all versions of Elite, not just this one... so I think that might be a better thing to try first, before considering double-buffering. Though if improving the algorithm fails, there is definitely enough spare memory and cycles for double-buffering, so never say never!

Mark
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

tricky wrote: Mon Dec 05, 2022 9:21 pm You would need two status panels on the master or a shadow flip interrupt.
Would you need to EOR the chips or could you just clear the top section?
To answer these questions, though…

Can you flip mode 7 like that on a BBC Micro? I thought you couldn’t change the screen address in mode 7, so the only way to flip the screen would be to copy the screen contents from the buffer to the screen mode during the flyback part of the screen update. If so, then it would make sense just to update the space view, and possibly the scanner, which would reduce the memory that would need to be copied. Buffering would also halve the amount of line-drawing that needs to be done, and you could free up more memory as you wouldn’t need the ship line heap, which is where all the on-screen lines are stored so they can be removed from the screen using EOR (which you don’t need to do if you are buffering).

So the idea is a good one, but there just isn’t that much flicker to remove outside of the planets and dots on the scanner, so it possibly feels a bit overkill!

Mark
RobC
Posts: 3816
Joined: Sat Sep 01, 2007 10:41 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by RobC »

MarkMoxon wrote: Mon Dec 05, 2022 9:45 pm Can you flip mode 7 like that on a BBC Micro? I thought you couldn’t change the screen address in mode 7...
You can flip to a second screen at &3C00 (at least on a B or B+): https://beebwiki.mdfs.net/Address_translation#TTX_VDU
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

RobC wrote: Mon Dec 05, 2022 11:05 pm
MarkMoxon wrote: Mon Dec 05, 2022 9:45 pm Can you flip mode 7 like that on a BBC Micro? I thought you couldn’t change the screen address in mode 7...
You can flip to a second screen at &3C00 (at least on a B or B+): https://beebwiki.mdfs.net/Address_translation#TTX_VDU
Gosh, that article is hard to follow! For me, anyway.

When it says “By toggling AA3 an application can instantly switch to a second screen at &3C00 to &3FFF.” What is AA3, and how does one toggle it? It doesn’t seem to say anywhere?

I still don’t think Teletext Elite needs bank-switching, but this is interesting… if I can understand it!

Mark
User avatar
tricky
Posts: 7694
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by tricky »

Try my table from viewtopic.php?p=209154#p209154.
On the master you would need to flip between shadow and normal screen memory.
I looked at someone's yt video which seemed to have quite a bit of flicker but maybe that was before the reduced flicker version.
RobC
Posts: 3816
Joined: Sat Sep 01, 2007 10:41 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by RobC »

MarkMoxon wrote: Mon Dec 05, 2022 11:19 pm Gosh, that article is hard to follow! For me, anyway.

When it says “By toggling AA3 an application can instantly switch to a second screen at &3C00 to &3FFF.” What is AA3, and how does one toggle it? It doesn’t seem to say anywhere?
Agreed that it's not easy to follow. I find reading it alongside a circuit diagram helps. However, there's an explanation of how to do the switching right at the bottom in the "Mode 7" section (or just see Tricky's example code).
User avatar
MarkMoxon
Posts: 606
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by MarkMoxon »

RobC wrote: Tue Dec 06, 2022 9:14 am
MarkMoxon wrote: Mon Dec 05, 2022 11:19 pm Gosh, that article is hard to follow! For me, anyway.

When it says “By toggling AA3 an application can instantly switch to a second screen at &3C00 to &3FFF.” What is AA3, and how does one toggle it? It doesn’t seem to say anywhere?
Agreed that it's not easy to follow. I find reading it alongside a circuit diagram helps. However, there's an explanation of how to do the switching right at the bottom in the "Mode 7" section (or just see Tricky's example code).
Ah, yes, there it is - I couldn't see the wood for the trees last night! #-o Thanks Rob, and thanks tricky for the table. It's quite an easy switching process, then.

If I can't fix the planet flicker algorithmically, then bank-switching would definitely be the next option to try (and it should work well in Teletext Elite). Excellent. :D

Mark
Beebson
Posts: 149
Joined: Tue Jan 18, 2022 2:24 pm
Contact:

Re: Teletext Elite (BBC Micro, BBC Master)

Post by Beebson »

Mark, this looks just like if it had been the real thing back then! :D
Post Reply

Return to “miscellaneous new bbc and electron games”