Galaforce for NULA (16 Colour)

reminisce about bbc micro & electron games like chuckie egg, repton, elite & exile

Related forum: adventures


User avatar
sbadger
Posts: 233
Joined: Mon Mar 25, 2013 1:12 pm
Location: Farnham, Surrey

Galaforce for NULA (16 Colour)

Postby sbadger » Fri Sep 22, 2017 4:10 pm

Hi,

I thought I'd start a new thread rather than clutter Simon's NULA demo thread over in Hardware.
As part of trying to get the old brain working again you'll have seen I ported Galaforce over to Beebasm, additionally I bought one of the wonderful NULA boards from RobC.

Having the code in such an accessible form made me think it was ripe for a NULA conversion, not just changing the default pallette but natively using a full 16.

I've had to get my head back round interleaved 4bits per pixel etc but was fun.
I've tried to be sympathetic to the original sprites, not wanting to change them too much. Just add a bit of shading to them.

I've done a new loading screen but haven’t worked out how to get it over to the beeb yet (dont' want to use exomiser stuff as it doesn't work with my smartSPI)

taster2.png
taster1.png



Beebasm is a joy to use and has made this very enjoyable to do.
I will work in Kieran's B-em nula version and I've also checked it runs on real hardware.

v0.5 attached

spurred on by Arcadian at ABUG, here is a version with a NULA loading screen tweak
Gala16 v06.zip
(21.29 KiB) Downloaded 18 times


Image1.png


Left to do:-
* add new loading screen
* tweak colours - I think the dark red and dark blue are a little too dark on a crt.
Last edited by sbadger on Tue Nov 21, 2017 1:01 pm, edited 2 times in total.
A3020| A3000x3| BBCBx3 | Electrn | Masterx3 |RiscPC| RPix3
A600 | C64 bbin x2|C64C | Toastrack |QL | XB360&1X |GB |GBC |GBA |GBASP | DS | 3DS XL x2| MD | MS
Atari 7600 | PS1-2-3-4| PSP |Vita |SNES |GC |N64 |Wii & U |Switch |JammaCab |Sony PVMx2

User avatar
grobda
Posts: 102
Joined: Tue Apr 23, 2013 1:46 pm
Location: Glasgow

Re: Galaforce for NULA (16 Colour)

Postby grobda » Fri Sep 22, 2017 5:09 pm

nice work!

You can use Simons sideshow creator to get the title screen, as It creates a uncompressed file of the picture when it makes the disk image. I've loaded these to screen ram by removing the header and setting the palette myself

I've been trying to meddle with sprites myself, but the way the beeb displays mode 2 is a bit of a pain, and I don't have the tools to edit the data, or skills to create them - I'd like something that displays the hex as mode 2 pixels, with adjustable width and offset and a definable palette. With that I'd happily sit recolouring beeb games for hours :lol:

User avatar
sbadger
Posts: 233
Joined: Mon Mar 25, 2013 1:12 pm
Location: Farnham, Surrey

Re: Galaforce for NULA (16 Colour)

Postby sbadger » Fri Sep 22, 2017 5:33 pm

grobda wrote:nice work!

You can use Simons sideshow creator to get the title screen, as It creates a uncompressed file of the picture when it makes the disk image. I've loaded these to screen ram by removing the header and setting the palette myself

I've been trying to meddle with sprites myself, but the way the beeb displays mode 2 is a bit of a pain, and I don't have the tools to edit the data, or skills to create them - I'd like something that displays the hex as mode 2 pixels, with adjustable width and offset and a definable palette. With that I'd happily sit recolouring beeb games for hours :lol:


I looked for a while for tools and they are pretty much all c**p, the sprite editors on the beeb are painful and anything windows its unfinished or lacking.
I ended up creating an excel template that took the byte values and deciphered them, then another bit where I change the sprite and it outputs the new bytes EQUBs to cut and paste into the asm. It only took about 20 mins to set up and tbh better than any of the tools I found.

example ssheet.jpg


I also created a spreadsheet help define the palettes, bung in the nums you want as RGB in outputs the BASIC to set it all.

example pal.jpg


I'm interested in the image without the header, how did you separate them?
A3020| A3000x3| BBCBx3 | Electrn | Masterx3 |RiscPC| RPix3
A600 | C64 bbin x2|C64C | Toastrack |QL | XB360&1X |GB |GBC |GBA |GBASP | DS | 3DS XL x2| MD | MS
Atari 7600 | PS1-2-3-4| PSP |Vita |SNES |GC |N64 |Wii & U |Switch |JammaCab |Sony PVMx2

User avatar
grobda
Posts: 102
Joined: Tue Apr 23, 2013 1:46 pm
Location: Glasgow

Re: Galaforce for NULA (16 Colour)

Postby grobda » Fri Sep 22, 2017 5:44 pm

sbadger wrote:I'm interested in the image without the header, how did you separate them?


I just deleted it with HXD hex editor - its at the front, I forget how many bytes exactly, I think Simon documented it in the readme, deleting it leaves the 20k of screen data.

tools look good, any chance of a public release?

User avatar
sbadger
Posts: 233
Joined: Mon Mar 25, 2013 1:12 pm
Location: Farnham, Surrey

Re: Galaforce for NULA (16 Colour)

Postby sbadger » Fri Sep 22, 2017 5:51 pm

grobda wrote:
sbadger wrote:I'm interested in the image without the header, how did you separate them?


I just deleted it with HXD hex editor - its at the front, I forget how many bytes exactly, I think Simon documented it in the readme, deleting it leaves the 20k of screen data.

i'll look into it - tbh i've been put off by having to install python on my machine :oops:

grobda wrote:tools look good, any chance of a public release?

yeah will do in a bit, i've just been given a litre stein of Oktoberfest strong beer, so all bets are off tonight! \:D/
A3020| A3000x3| BBCBx3 | Electrn | Masterx3 |RiscPC| RPix3
A600 | C64 bbin x2|C64C | Toastrack |QL | XB360&1X |GB |GBC |GBA |GBASP | DS | 3DS XL x2| MD | MS
Atari 7600 | PS1-2-3-4| PSP |Vita |SNES |GC |N64 |Wii & U |Switch |JammaCab |Sony PVMx2

User avatar
grobda
Posts: 102
Joined: Tue Apr 23, 2013 1:46 pm
Location: Glasgow

Re: Galaforce for NULA (16 Colour)

Postby grobda » Fri Sep 22, 2017 5:56 pm

That a pre-release? its still september 8)

Incidentally, my goal to start was to recolour joust (or skirmish) - I've done a more representative palette, and the play area is called 'SCREEN' in the atarisoft version, which you can *load to 3000 to look at, so seems relatively simple to edit. There's also a tool to rip the sprites from the arcade version which shows the palette and sprites for the original game.

I've been making small progress by editing the hex and using the GXR rom to recreate the sprites - I'm limited by my complete lack of coding experience other than snake variants in basic, can't even figure out yet how to split the bytes (ie de-interleave) into pixel values. :oops:

User avatar
paulv
Posts: 3606
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: Galaforce for NULA (16 Colour)

Postby paulv » Fri Sep 22, 2017 6:12 pm

Love it! On B-em, the colour choices are great and the extra depth gives it a new lease of life, so much so that I now have cramp in my hand after bashing the fire key so much. =D> =D>

Now all we need is a BeebSID soundtrack and we'd be in some pretty heady territory (not that we aren't already) :shock: 8) :wink:

Great work

Paul

RobC
Posts: 1823
Joined: Sat Sep 01, 2007 9:41 pm

Re: Galaforce for NULA (16 Colour)

Postby RobC » Sat Sep 23, 2017 8:16 am

This is awesome - it's exactly the sort of thing I had in mind when I started thinking about having a proper 16-colour mode 2 all those years ago :D

It would be great to have a tool like Graphics Ripper for the Beeb (http://retrospec.sgn.net/game/gfxrip) so that we can modify games that we don't have the source for. I'd be happy to write something but am not entirely sure on the best way to hunt for graphics. (I've had some success using Graphics Ripper but it's not the easiest tool to use.)

grobda wrote:I'm limited by my complete lack of coding experience other than snake variants in basic, can't even figure out yet how to split the bytes (ie de-interleave) into pixel values.

I'm happy to try to help if you want.

User avatar
sbadger
Posts: 233
Joined: Mon Mar 25, 2013 1:12 pm
Location: Farnham, Surrey

Re: Galaforce for NULA (16 Colour)

Postby sbadger » Sat Sep 23, 2017 8:39 am

grobda wrote:I've been making small progress by editing the hex and using the GXR rom to recreate the sprites - I'm limited by my complete lack of coding experience other than snake variants in basic, can't even figure out yet how to split the bytes (ie de-interleave) into pixel values. :oops:



Here are the spreadsheets I made to help me. It makes it easier to understand the interleaving.

For the sprite tool enter the decimal values in X4 to AC4 and down to X19:AC19.
Excel then turns this into binary in AF to AK, then de-interleaves into AM toAX, this is then converted back to decimal for the colour number at that position down in row 22.

eg. look at just the value at X4 =8,, this is turned to binary in AF4, then for AM4 it just takes the 1,3,5,7th value from AF4 , this is the first pixel, then AN4 is the second pixel and it takes the 2,4,6,8th value from AF4.
This is then copied to AM22 and AN22 as decimal, the value is the colour.
Have a go at changing the values in X4 INPUT area, you'll see the sprite update

Excel has a conditional formatter to change the colour dependant on the value.

easy ;) Hope seeing it in action can explain it for you.

Then I copied the decimals of the source sprite and 'Paste Values' into NEWDEF, then i'm free to edit as I wish.
In the NEWDEF box i've a conditional formatter, including my new colour choices (Home/Conditional Formatting/Manage Rule/) to edit/add

I can then copy the OUTPUT at BT40 into my source


For the palette setting one, you just set the values for each index, specify the basic line number then cut and paste the code into your program.

Excel Sprite Tools.zip
(34.46 KiB) Downloaded 12 times


EDIT:I'll add the palette tool has a macro to set background to match the rgb, i'm sure it's fine, but enable macros at your own risk etc. etc.
A3020| A3000x3| BBCBx3 | Electrn | Masterx3 |RiscPC| RPix3
A600 | C64 bbin x2|C64C | Toastrack |QL | XB360&1X |GB |GBC |GBA |GBASP | DS | 3DS XL x2| MD | MS
Atari 7600 | PS1-2-3-4| PSP |Vita |SNES |GC |N64 |Wii & U |Switch |JammaCab |Sony PVMx2

User avatar
grobda
Posts: 102
Joined: Tue Apr 23, 2013 1:46 pm
Location: Glasgow

Re: Galaforce for NULA (16 Colour)

Postby grobda » Sat Sep 23, 2017 9:40 am

cool I'll have a play with that :) I understood how the pixels were stored but I couldn't figure out how to split the bytes.

I've been looking for Graphics by *loading files to screen ram in mode 2; if they're stored as 4bpp sequential bitmaps then they're recognizable, but usually not in the palette I'd expect, eg snapper;

Image
Image

I'm a bit lost as to why some of the sprites seem to be stored in normal palette, and expected colours, and others are in colours 8 to 15(hence 2 screenshots), seeing as they're still being stored as 4bpp.

not that snapper needs re-drawing in 16 colours. :lol: but for games without source code it might be a way to edit the graphics directly with some games with an appropriate hex editing tool, one that displays the data as pixels and some way of aligning and editing the data . There is commercial graphics hex editor - http://datahammer.de/ but it doesn't handle the 2 pixels per byte format that the beeb uses correctly even if you render it in 4bpp, i guess its expecting hi/lo byte halves rather than interleaved bytes. It's also not cheap.

RobC
Posts: 1823
Joined: Sat Sep 01, 2007 9:41 pm

Re: Galaforce for NULA (16 Colour)

Postby RobC » Sat Sep 23, 2017 10:15 am

grobda wrote:I'm a bit lost as to why some of the sprites seem to be stored in normal palette, and expected colours, and others are in colours 8 to 15(hence 2 screenshots), seeing as they're still being stored as 4bpp.

As the flashing colours aren't always much use for games, logical colours 8-15 can be reprogrammed to physical colours 0-7 and the flashing bit used to indicate some other property.

I do this in BeebJack: the platforms use the flashing colours and this makes identifying them for collision detection much simpler.

User avatar
sbadger
Posts: 233
Joined: Mon Mar 25, 2013 1:12 pm
Location: Farnham, Surrey

Re: Galaforce for NULA (16 Colour)

Postby sbadger » Sat Sep 23, 2017 3:36 pm

RobC wrote:This is awesome - it's exactly the sort of thing I had in mind when I started thinking about having a proper 16-colour mode 2 all those years ago :D

It would be great to have a tool like Graphics Ripper for the Beeb (http://retrospec.sgn.net/game/gfxrip) so that we can modify games that we don't have the source for. I'd be happy to write something but am not entirely sure on the best way to hunt for graphics. (I've had some success using Graphics Ripper but it's not the easiest tool to use.)
.


I did look at that tool while trying to work this out. I even tried it out, but it didn't understand beeb 4bpp but it does seem quite powerful.
I think the source is available so it might not be too difficult to add acorn support.
A3020| A3000x3| BBCBx3 | Electrn | Masterx3 |RiscPC| RPix3
A600 | C64 bbin x2|C64C | Toastrack |QL | XB360&1X |GB |GBC |GBA |GBASP | DS | 3DS XL x2| MD | MS
Atari 7600 | PS1-2-3-4| PSP |Vita |SNES |GC |N64 |Wii & U |Switch |JammaCab |Sony PVMx2

RobC
Posts: 1823
Joined: Sat Sep 01, 2007 9:41 pm

Re: Galaforce for NULA (16 Colour)

Postby RobC » Sat Sep 23, 2017 4:31 pm

sbadger wrote:I think the source is available so it might not be too difficult to add acorn support.

Good spot - I'll look into modifying it to support the Beeb graphics modes.

EDIT: I've managed to build Gfx Ripper from the sources. Had to find a suitably old enough version of Allegro and some other libs but can now start on modding it for Beeb graphics.

RobC
Posts: 1823
Joined: Sat Sep 01, 2007 9:41 pm

Re: Galaforce for NULA (16 Colour)

Postby RobC » Mon Sep 25, 2017 1:23 pm

I've posted a hacked gfx ripper that understands the Beeb's graphics here: http://stardot.org.uk/forums/viewtopic.php?f=2&t=13780

User avatar
sbadger
Posts: 233
Joined: Mon Mar 25, 2013 1:12 pm
Location: Farnham, Surrey

Re: Galaforce for NULA (16 Colour)

Postby sbadger » Tue Nov 21, 2017 12:58 pm

Arcadian at ABUG spurred me on to finally add the loading screen. Original post updated to reflect.
A3020| A3000x3| BBCBx3 | Electrn | Masterx3 |RiscPC| RPix3
A600 | C64 bbin x2|C64C | Toastrack |QL | XB360&1X |GB |GBC |GBA |GBASP | DS | 3DS XL x2| MD | MS
Atari 7600 | PS1-2-3-4| PSP |Vita |SNES |GC |N64 |Wii & U |Switch |JammaCab |Sony PVMx2

RobC
Posts: 1823
Joined: Sat Sep 01, 2007 9:41 pm

Re: Galaforce for NULA (16 Colour)

Postby RobC » Tue Nov 21, 2017 7:03 pm

That looks awesome =D>

Kevin Edwards
Posts: 61
Joined: Tue Mar 14, 2006 9:16 pm

Re: Galaforce for NULA (16 Colour)

Postby Kevin Edwards » Wed Nov 22, 2017 5:05 pm

I wish i'd had 16 proper colours when drawing the original sprites!

I must give credit to Paul Proctor who helped me with the game sprites ( and original loading/title page - you can see the PP initials in the corner of the image )

As has already been spotted, a couple of the alien sprites didn't actually make it into the patterns but were left in memory, just in case i decided to use them later on.

User avatar
uniforix
Posts: 26
Joined: Sun Apr 21, 2013 9:57 pm
Contact:

Re: Galaforce for NULA (16 Colour)

Postby uniforix » Wed Nov 22, 2017 7:07 pm

Wow, this is looking brilliant. I love the idea with the spreadsheet :-) =D>


Return to “software: classic games”

Who is online

Users browsing this forum: No registered users and 4 guests