Let's bring ELITE to the VIC-20

Discussion, Reviews & High-scores

Moderator: Moderators

Merytsetesh
Vic 20 Amateur
Posts: 41
Joined: Sat Mar 02, 2024 8:57 pm
Location: Canada

Let's bring ELITE to the VIC-20

Post by Merytsetesh »

Please -- don't scroll away. I'm serious.

There's a really good project by Mark Moxon at https://www.bbcelite.com/ where he's created a disassembly of the original BBC Elite. As well, he's detailed other versions, including C64 Elite, (S?)NES Elite, Arc Elite and a rebuild/remake I've never heard of called Elite-A, which still runs on a BBC but has way more content, and the ability to buy different ships.

I played Elite on the Arc (I went straight from the Vic to the A3000) and I've played all the games since. And it's really ground my gears all my life that there's no version for the VIC. I understand why. The bitmapping makes it next to impossible. Yet something else on Mark's site caught my attention and got me thinking: Teletext Elite. That's right. Elite in Teletext mode, blocky 3x2 characters and all.

One more piece of background, and it's not something I'm proud to admit: I'm not the coder I used to be. Without going into details, I've been ill, and my ability to focus, my stamina, and my ability to figure out logical problems has been impaired.

I'm here to try to ask for help. I think on this forum there are the greatest VIC20 minds on the planet. If the VIC can run DOOM, surely we can find a way to make it run Elite if we all pull together? I've even got a couple of ideas for how the bitmap graphics could be managed, and I've been working on design: screen layouts (which I've been tinkering with), game ideas (extra ships, more components, damageable ship components).

I can't do this on my own. I just can't. Stars know I've tried, for 3 months, and every night I come away exhausted and disheartened. I know, too, that I'm new here: this is just my second post. Yet my searches for info in bitmapped graphics, VIC raster tricks and other things all led me here, so here I am.

Please. Don't dismiss this out of hand. I know it can be done. Let's make it happen. Let's bring Elite to the VIC.

Thank you.
groepaz
Vic 20 Scientist
Posts: 1264
Joined: Wed Aug 25, 2010 5:30 pm

Re: Let's bring ELITE to the VIC-20

Post by groepaz »

The bitmap shouldnt be a problem - you can do that with a charset matrix.

With fully expanded VIC20, porting Elite sounds quite doable to me - still a lot of work, obviously :)
I'm just a Software Guy who has no Idea how the Hardware works. Don't listen to me.
Merytsetesh
Vic 20 Amateur
Posts: 41
Joined: Sat Mar 02, 2024 8:57 pm
Location: Canada

Re: Let's bring ELITE to the VIC-20

Post by Merytsetesh »

groepaz wrote: Mon Mar 04, 2024 6:58 pm The bitmap shouldnt be a problem - you can do that with a charset matrix.

With fully expanded VIC20, porting Elite sounds quite doable to me - still a lot of work, obviously :)
I agree it would take a chunk of work: I'm not denying that. But the expertise is here :-)

Doing the game with a charset matrix is straightforward, but I was hoping to get away from the 16x16 limitation for the screensize. I had thought that it might be possible to flip the character memory pointer partway through the screen refresh with a timer, so it would be possible to have multiple character sets on the screen at once.

I also had a crazy idea, based on Teletext Elite, of having a predefined character set consisting of all the combinations of squares in a 4x4 grid, but of course that ends up with 65,536 combinations and so wouldn't work. (Sadly, because though it would have potato resolution it would also mean you could draw faster as you could skip every other write to memory, and drawing just becomes changing which character you're using.)

My other idea was to have a character set that's defined on the fly but not a true full bitmap. It occurred to me that since much of the screen would be black, you could have character 0 permanently set to {0,0,0,0,0,0,0,0}, and then use the remaining 255 characters to draw, wherever they're required on the screen. When you want to draw, you check to see if that cell of screen memory >0: if so, write to that character; if not, take the next value character (stored in a memory location) until you get to 255. If you can't take another character, well, you're done drawing for that frame. (Unless you combine it somehow with timed flipping, so that the screen is divided into two sections, one per 2K character RAM block.)

I was also going to try to use the VIC's character set wherever possible, such as on the information pages. I'd considered even losing the dashboard (scanner, etc.) on those pages, but maybe that would be a step too far away from the source.

Rambling now, so I'll stop. :-)
User avatar
Mike
Herr VC
Posts: 5127
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Let's bring ELITE to the VIC-20

Post by Mike »

Hi, Meryt,
Merytsetesh wrote:[...] it's really ground my gears all my life that there's no version [of Elite] for the VIC. I understand why. The bitmapping makes it next to impossible. [...]
it is not quite clear to me what led you to that false assumption. The VIC-20 is very well capable of doing bitmapped graphics!

The 160x192 resolution as used by MINIGRAFIK would be the direct candidate for a port, there is no need to re-invent the wheel with other, more obscure graphics modes. The focus should maybe be led on a hires (i.e. not multicolour) display, which might require a careful redesign of the scanner, so all relevant things in the bottom part of the screen still remain visible. The main part of the screen could use an off-screen bitmap to render the vector graphics there, and copy it over to the screen bitmap for a flicker-free update. I would estimate an update rate of 4 to 5 frames per second is doable. Text display could use my soft 40 column routines, no need for compromises there either.

Main issues would still be the memory requirements. The 32K version of Elite on the Acorn Electron stripped out some of the graphics (no sun, fewer ships) - one way to keep most features could be to split the game into a flight part and a station part and do overlays from disk.

What remains (and what has already been pointed out here) is the necessary work to put into this. Not only because of RL constraints of any contributors, any collab will become even more 'interesting' when the people involved live in different time zones.

...

That being said - Elite is a big thing to start out with. Maybe it is a good idea for you to start out with a smaller project to reacquaint yourself with the capabilities of the VIC-20. As I wrote, they are not as limited as you thought when you went into this discussion here, and maybe over the course of a few weeks or months the picture will become clearer. :)

Greetings,

Michael


P.S. if you know Simon Challands' ArcElite pages - he hosts a new icon set for ArcElite, those are my work. :)
User avatar
tokra
Vic 20 Scientist
Posts: 1183
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: Let's bring ELITE to the VIC-20

Post by tokra »

This bring me back to my very first post on Denial.

Basically I think the bitmap would pose no real problem. The viewport could just be 128x144 pixels (half the res of C64) and if you keep the instruments monochrome (like the Electron version) they can use another 128x56 pixels as demonstrated in my mockup-picture.

A 128x208 resolution poses no technical problem. It is just 208 chars in 8x16-mode and if you set the charmap up nicely it can even speed up calculations when setting a pixel. No need for raster-interrupts there.

It is a large project nonetheless. I agree with Mike that space-fighting and station-dealing should be two different parts loaded from disk. Unless you want to consciously limit yourself to a single-load that could work from tape. But I think that would be step 2 after having a working disk-version.

As wth any large project the key is to divide it up into smaller bites, that could be handled easier. The station-part could be done with the 40-column routines of MINIGRAFIK. The space-fighting part would probably need as much memory as possible to store the lookup tables that make ELITE run smooth on 6502-processors. From what I remember on Z80-systems with less memory they needed to just rely on the faster processor there. But obviously the VIC-20 like the Electron has both the 6502 and lower memory than a C64. I would say a fully expanded VIC (+32 K or even +35 K) should be allowed for this game to run.
groepaz
Vic 20 Scientist
Posts: 1264
Joined: Wed Aug 25, 2010 5:30 pm

Re: Let's bring ELITE to the VIC-20

Post by groepaz »

I'd just do what pretty much became the standard in recent days for (larger) C64 games too: use a cartridge. That eliminates all concerns with memory.
I'm just a Software Guy who has no Idea how the Hardware works. Don't listen to me.
User avatar
MrSterlingBS
Vic 20 Afficionado
Posts: 302
Joined: Tue Jan 31, 2023 2:56 am

Re: Let's bring ELITE to the VIC-20

Post by MrSterlingBS »

Hello,

I can't get the article out of my head. So I'm trying to make my small contribution and give another impetus.
Enclosed you will find a rudimentary routine for a 144x224 pixel screen that is still in its early stages. There is also a pixel plot and line plot routine and a text routine. I hope to be able to present a rotating spaceship at some point.

Is there a better/faster way to print text on hires screen?

The prg needs +16kB.

BR
Sven
Attachments
ELITE-V0.01.zip
(847 Bytes) Downloaded 293 times
User avatar
MrSterlingBS
Vic 20 Afficionado
Posts: 302
Joined: Tue Jan 31, 2023 2:56 am

Re: Let's bring ELITE to the VIC-20

Post by MrSterlingBS »

If you check for a capital letters or lowercase you need this code.

Code: Select all

printtext:
		ldy #0
        	ldx #0	
printtextloop:		
		lda Elite,y		
		cmp #255
		beq PlotTextEnd
		cmp #96
		bcc PrintCharOK
		sbc #96
PrintCharOK:
		sta $FE			; low byte		
		lda #17
        	sta $FF			; high byte
Listing.zip
(3.28 KiB) Downloaded 168 times
User avatar
tokra
Vic 20 Scientist
Posts: 1183
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: Let's bring ELITE to the VIC-20

Post by tokra »

The original sources for C64-Elite have just been released.

Also see this thread on Lemon.

First, the sources would need to be converted to a useable format of today. Once they compile to a working C64-version again, the task would be to change the graphics and sound to VIC-20 capabilities and see if the memory needs can be overcome. I've read somewhere that the C64-version uses a lot of tables to speed up computations that the Z80-versions did not need.
User avatar
beamrider
Vic 20 Scientist
Posts: 1470
Joined: Sun Oct 17, 2010 2:28 pm
Location: UK

Re: Let's bring ELITE to the VIC-20

Post by beamrider »

Given the Vic-20 is a much lower resolution and slightly faster CPU, perhaps those tables could be dispensed with or at least some of them.Perhaps it could be squeezed into 35K.
groepaz
Vic 20 Scientist
Posts: 1264
Joined: Wed Aug 25, 2010 5:30 pm

Re: Let's bring ELITE to the VIC-20

Post by groepaz »

BBC Micro version runs in 32k, no?
I'm just a Software Guy who has no Idea how the Hardware works. Don't listen to me.
User avatar
beamrider
Vic 20 Scientist
Posts: 1470
Joined: Sun Oct 17, 2010 2:28 pm
Location: UK

Re: Let's bring ELITE to the VIC-20

Post by beamrider »

Yeah, but perhaps the BBC makes use of some of the ROM line drawing routines in BBC basic?
User avatar
tokra
Vic 20 Scientist
Posts: 1183
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: Let's bring ELITE to the VIC-20

Post by tokra »

groepaz wrote: Wed Sep 25, 2024 4:55 am BBC Micro version runs in 32k, no?
Yes, and there is the even smaller Acorn Electron-version.

The BBC Micro disk-version then essentially swaps the docked- and flight-modes in and out of memory. If one was to consider a disk-only-version this should be possible on the VIC, as well.
groepaz
Vic 20 Scientist
Posts: 1264
Joined: Wed Aug 25, 2010 5:30 pm

Re: Let's bring ELITE to the VIC-20

Post by groepaz »

As said before, i'd totally aim for a cartridge these days, that'd allow a few nice optimizations
I'm just a Software Guy who has no Idea how the Hardware works. Don't listen to me.
User avatar
pixel
Vic 20 Guru
Posts: 1548
Joined: Fri Feb 28, 2014 3:56 am
Location: Bielefeld, Germany

Re: Let's bring ELITE to the VIC-20

Post by pixel »

Conversions to another assembler's syntax can be left to a modern GPT. These'll make you run low on excuses. 8)
A man without talent or ambition is most easily pleased. Others set his path and he is content.
https://github.com/SvenMichaelKlose
Post Reply