Hi
My name is Brian, and I'm an old CPC coder...just having a nosey around ;)
B
Hello and welcome. :)
(http://www.cpcwiki.eu/forum/resource://jid1-xgtdawe3yyuebq-at-jetpack/data/download_off.png)
Hi Brian
It´s such an honour for this forum to have original CPC coders... You guys make 1 or 2 cpc-generations happy !
Hi again, and welcome here. :)
I see you did DJ Puff in volcanic island.
I tried to check with friends about possible patches for this game in order to turn it into a PLUS version.
I like to check how the graphics are stored in RAM and this specific game used quite some common tricks.
(http://img.xooimage.com/files99/9/e/2/dj-puff-sprites-3dd8b77.png)
The sprites are in 2bits per pixels (mode1 equivalent) so they can be converted when put into the screen RAM bank, and benefit from some sort of software palette swap.
Sadly the background are also in only 4 colours...
Such things may be hard on CPU time (also the scrollings), but I guess it was a mean to get all those datas to fit into a 64K RAM machine ?
such "Mode1" (actually 2bits per pixels datas) graphics converted into Mode0 with palette swaps was actually quite typical from some British companies.
Palace software did this a lot : Barbarian, Antiriad...
I guess it was also often used when graphics and gameplay were "ported" from C64... as it enabled same sort of graphic specifications as C64 in 4 colours/wide pixel settings.
Just an innocent question : do you still have some source codes ? ::)
Quote from: MacDeath on 17:35, 01 August 15
Just an innocent question : do you still have some source codes ? ::)
I make the same question on the other thread :laugh:
We are source code hungry!!
Sorry no, all source codes have long since ended up in harddrive landfills somewhere as I've upgraded machines over the years, I don't think any of my backup 5 1/4" discs survived.
I will say one thing...the graphics are probably not mode 1 though I don't recall the specifics of DJ Puff :D Which may indeed have used standard C64 sprites and a colour table
I often used to use a lookup table system for graphics, and limit their colours to 4 or 8 per sprite. The actual graphics data was therefore not intended to be dumped straight to the screen, but the byte would consist of flags and counters that indicated if the byte needed to be masked, or if it was the terminator in a line, also the number of repeat values it had.. When you stop thinking of the data as simple pixels it allows you to do a lot with them what optimises the draw routines..ie knowing you didn't have to mask the byte meant you could put it straight into the screen space, rather than 3 or 4 operations to load the screen byte, mask it, or it with the pixels, write them back. This mean writing compressed sprite data was often faster than trying to dump them straight down, and no unneeded bytes or pointless masks were written.
Yeah, checked again, not real "mode1" code for those datas, but "equivalent" in bits per pixels.
Encoding is "Linear", but WinApe enables to find them, somewhat. :laugh: this enables for a good "Mode0 pixels surface on screen" versus "RAM space to store those datas" ratio.
what about the background tiles ? they clearly are in only 4 colours, without real palette swaps "per tile" sadly the palettes are not always well choosen... I guess it would have been too intensive to get tiles getting palette swaps or even to get colour lookup table for the backgrounds would take more RAM space.
Was a cute game anyway.
a shame CPC was quite short on RAM in 64K config... which was aimed at by devs.
128k config could enable other tricks to ease things, but on the other hand those 64k also created many interesting tricks.
If only Lord Sugar weren't so cheap on RAM chips with this CPC range... ;D
I checked again for the background tiles :
they are stored directly in Mode0 actually, so I guess it was more an issue with deadline and not enough time for the graphic artists to work their port from the c64 graphics more completely. ;D
QuoteDesign : Reflective Designs
Coding : Brian BEUKEN
Music : Allister BRIMBLE
Graphics : Jonathan SMYTH, Brian BEUKEN
Testing : I. HAWORTH
I guess a patch to correct those tiles and get them more colours could be possible.
This game is from early 90's.
what tools did you have under hand for the graphics at this time ? were you working on CPC or on Atari ST/Amiga/anything else ?
Did you have crossdev tools ? I guess the work and tools really evolved a lot from 1984/early 80's to early 90's...
here a mockup...
(http://img96.xooimage.com/files/3/2/a/stay-puff-mockup11-3dd93d1.png)
Hi and welcome!
I played a lot Rockford lately. 8)
Hello! It´s great to have you around! :)
Quote from: MacDeath on 19:31, 01 August 15
This game is from early 90's.
what tools did you have under hand for the graphics at this time ? were you working on CPC or on Atari ST/Amiga/anything else ?
Did you have crossdev tools ? I guess the work and tools really evolved a lot from 1984/early 80's to early 90's...
here a mockup...
(http://img96.xooimage.com/files/3/2/a/stay-puff-mockup11-3dd93d1.png)
I usually used Dpaint on the PC as a quick fix graphic tool, but I didn't do the graphics so I just converted them into my own graphic format with a tool I called Grafiz, which was a general conversion tool I came up with.
Code wise I almost certainly used PDS by then, but I am struggling to recall.
Quote from: Token on 19:49, 01 August 15
Hi and welcome!
I played a lot Rockford lately. 8)
That was my all time favourite game on CPC, its not often a coder bothers to play his own games, we did them and forgot them, but the nature of Rockford's mechanic meant you could always find cool new ways to play. I think R1 and R2 are my best games ever,
B
Hello and welcome to the forum Brian.
funny typo... ;D
Yeah, seems like in Britain, CPC games would very rarely get proper dedicated Graphic artist budget... a shame as CPC was actually quite capable in pure graphics.
Very often the coder would be told "just port/ripp graphics from C64/Speccy..."
as a result palette was rarely optimal, or graphics not proper for CPC palette. You can't just put C64 graphics into a CPC without proper re-pixeling/slight re-design as C64 and CPC palettes are very different.
but easier to say in photoshop's age on modern PCs...
Hello and welcome!
Quote from: Brian Beuken on 20:46, 01 August 15Code wise I almost certainly used PDS by then, but I am struggling to recall.
For the past 3 years I've been writing down stories I remember from the good old days about retro-computers. The more I have written the more I suddenly remember, and the collection of stories are already much bigger than I initially thought they'd be.
So I'm fairly sure a lot of these things will come back to you. :)
Hi Brian, welcome, have fun and enjoy the forum. :)
Quote from: Brian Beuken on 16:51, 01 August 15
Hi
My name is Brian, and I'm an old CPC coder...just having a nosey around ;)
B
Well feel free to checkout my hair brained tidbits in the programming section. ;)
Have you thought about making a new game for the CPC?
Quote from: EgoTrip on 14:26, 02 August 15
Have you thought about making a new game for the CPC?
yes its possible, I've been dabbling in Z80 coding a lot recently, not at all happy with the dev tools available but I guess they are just about usable. The biggest issue really is finance. I am still a pro games developer though as I spend of my time Teaching these days, I do have a lot of down time where I could squeeze in small projects. The problem is, I've discovered due to the lack of tools a retro project isn't always as small is it seems. I need to try to get much better dev tools either written or sourced.
But I could be persuaded to do something if there was enough financial incentive in it.
Quote from: mr_lou on 02:44, 02 August 15
Hello and welcome!
For the past 3 years I've been writing down stories I remember from the good old days about retro-computers. The more I have written the more I suddenly remember, and the collection of stories are already much bigger than I initially thought they'd be.
So I'm fairly sure a lot of these things will come back to you. :)
You know that alcohol destroys brain cells...
over 30 years...there's been a lot of alcohol ;)
and guitar (goes well with alcohol...) ;)
funny that you said you were teaching...
there is this project by university of Alicante : to get students to code games for a CPC464...
#CPCRetroDev Game Creation Contest | Amstrad CPC game development contest (http://cpcretrodev.byterealms.com/en/)
They dev'ed some tools :
#CPCtelera 1.0. Amstrad CPC game development library official release (http://www.cpcwiki.eu/forum/programming/cpctelera-1-0-amstrad-cpc-game-development-library-official-release/)
CPCtelera: Astonishing fast Amstrad CPC game engine (http://lronaldo.github.io/cpctelera/)
I teach at the IGAD program at NHTV in The Netherlands
mADE (http://made.nhtv.nl/)
We are the only university in the world, that teaches students using hardware for all 3 console makers machines. We teach hardcore game development intended to enter AAA industry. We've been the number 1 tech course in NL for the last 5 years and probably the whole of Europe, if there were rankings, we regularly win or place in organised Game Jams, (came 2nd last week in the Imagine cup) and our graduates are to be found in several major companies all over the world...we're pretty dam good at what we do :D
Quote from: Brian Beuken on 19:02, 02 August 15
yes its possible, I've been dabbling in Z80 coding a lot recently, not at all happy with the dev tools available but I guess they are just about usable. The biggest issue really is finance. I am still a pro games developer though as I spend of my time Teaching these days, I do have a lot of down time where I could squeeze in small projects. The problem is, I've discovered due to the lack of tools a retro project isn't always as small is it seems. I need to try to get much better dev tools either written or sourced.
But I could be persuaded to do something if there was enough financial incentive in it.
I don't think theres much/any money in retro developing any more. Its mostly hobbyists. If you do a new game as a hobby then there would be no deadline and you could go at your own pace. Saying that there is a contest with some good prizes that closes in a couple of months.
Quote from: EgoTrip on 20:37, 02 August 15
I don't think theres much/any money in retro developing any more. Its mostly hobbyists. If you do a new game as a hobby then there would be no deadline and you could go at your own pace. Saying that there is a contest with some good prizes that closes in a couple of months.
I suspect not, but the question of finance is not so much to make profit, as to ensure the work is backed and there is commitment to get it done, a project which has no incentive to finish often fails. So the carrot of cash, however small is needed, a stick alone won't work
If I'm going to use up my time which would normally be earning, then I need to know that there is something going into the bank... if I could make 2 or 3K on a project and do 2 or 3 a year in my spare time I'd be happy with that..deadlines would need to be flexible due to work commitments but its quite possible to fit 10 hours a week into something like this and get them done in decent timescales. But I just can't work for free, I have no incentive at all to do it when I could be working on my PS4/Vita games.
It is a point of view, and a very valid one, but I do not know if the money is here. Many of us use the Amstrad or try to make something for it just for fun. In that sense, there is no need to have anyone backing you. You could be doing this or playing a game in the console/computer of your choice. To be realistic, I perfectly know that if I make a videogame for the CPC almost nobody is going to play it. You make it because you like to see it made, it is a bit for yourself and some friends of the scene :).
yup,
that's why I am curious to see if there is any desire to make a new project...I'm sceptical but lets see.
Well, I'd be happy to pay real-world monies for a CPC KART game. We had a lot of top-down racers (thanks to the Oliver Twins) but there's nothing in a more Out Run perspective, but in 3D (MarioKart-esque). Now, a lot of people will immediately say "no MODE 7, no 3D kart game" but ervin is currently working on a very fast, chunky 3D engine, so it's not impossbile (just very difficult). Also, with SymbOS networking, we could have network (or online) gaming.
I'd love to play a 3d racer online or networked with other CPC users.
Quote from: Brian Beuken on 21:07, 02 August 15
if I could make 2 or 3K on a project
Look, you'll be duly rewarded in heaven, isn't that enough ;)
We have done an adventure game called Orion Prime (http://orion.cpcscene.net/), and sold it with a real packaging. We consider it a success, as we sold less than 200 units at about 15€ each unit if my memory serves me right.
However, with a "real job" on our sides, it took us 5 years to do it (with a main team of two people, but with several others for the translations of the texts). Ok, it was a huge game, and I'm sure we could have done it in a year and a half, were we dedicated full-time to it. But we wouldn't have made enough money to have a decent living for this year and a half. So to me living from a CPC game development is absolutely not viable. You may prove me wrong, as many people love to buy arcade games.
As for a good dev environment, you can check my article about using Eclipse for Z80 developing (http://pushnpop.net/articles-76.html). Don't hesitate to ask if that interests you.
Orion Prime is really amazing... have you ever planned to release a cartridge version? I would be buying it right away.
Quote from: dthrone on 00:02, 03 August 15
Look, you'll be duly rewarded in heaven, isn't that enough ;)
nope, and I'm an atheist :D
I don't think that Orion Prime would fit on a 512KB cartridge.
You are right... it would not fit in a standard cartridge at all :(
No, Orion Prime would not fit in a cartridge, sorry :).
talking about orion prime... is the source code available?
I miss so much symbiface 2 mouse support and HDD compatible...
I definitely plan to play it in the plus, but I will wait to have the HXC and a mouse to enjoy it properly. It deserves it :D .
No, the source code is not available. I don't really want to do the maintenance of it...
@[[C|-|E]] : no mouse support on Orion Prime!
Ups! I saw the pointer and I assumed that it would be possible :(
OK, I will play it anyway! :D
Quote from: Brian Beuken on 03:35, 03 August 15
nope, and I'm an atheist :D
So you can't blame god for it? :P Oh well, there is a Z80 heaven for all of us. ;)
A bit late, but: welcome mate, thanks for joining the community!!
Curious to see where this might take me :D
I really used to love the CPC back in the day, I will certainly try to score a development set up and have a noodle about with it. I'm kinda hoping there is some momentum to get a game written again.
Welcome!
Brian, I have a few questions which I would appreciate if you would answer :)
1. You mention Rockford 2. I don't see this on CPC-POWER, sauvegarde du patrimoine de l'Amstrad CPC (http://www.cpc-power.com) . Was it released for CPC?
2. With DJ Puff's Volcantic Erruption I see that the "Rupture" demo technique is used. This technique uses CRTC's register 4 (vertical total) and CRTC's register 7 (vertical sync position) to split the screen into multiple sections allowing R12 and R13 (start address) to be re-loaded and allows, for example, hardware scrolling at the top and a static status panel at the bottom. How did you find out about this technique and how did you cope with the compatibility of various CRTC types (HD6845, UM6845, UM6845R and MC6845)?
I think this technique was also used on Rockford and Rastan. (Mission Genocide uses it really well giving very smooth pixel by pixel vertical scrolling using CRTC register R5).
It's interesting for me because very few games used it. It often involves precise timing, but it allows good flexibility and the ability to scroll the screen vertically pixel by pixel in combination with hardware scrolling. Horizontally, R3 can be used for smoother movement.
3. How did you find CPC's hardware scrolling?
Not many games use it. If you scroll a lot you also need to cope with the wrap around address, meaning sprite drawing can be slower, and often many games don't use it well and makes things worse (here I talk about ghosts and goblins where the scrolling is hardware based, but a small bit at a time - could be improved with some tweaking I believe).
I am really interested in your view.
Quote from: arnoldemu on 10:47, 09 August 15
Brian, I have a few questions which I would appreciate if you would answer :)
1. You mention Rockford 2. I don't see this on CPC-POWER, sauvegarde du patrimoine de l'Amstrad CPC (http://www.cpc-power.com) . Was it released for CPC?
2. With DJ Puff's Volcantic Erruption I see that the "Rupture" demo technique is used. This technique uses CRTC's register 4 (vertical total) and CRTC's register 7 (vertical sync position) to split the screen into multiple sections allowing R12 and R13 (start address) to be re-loaded and allows, for example, hardware scrolling at the top and a static status panel at the bottom. How did you find out about this technique and how did you cope with the compatibility of various CRTC types (HD6845, UM6845, UM6845R and MC6845)?
I think this technique was also used on Rockford and Rastan. (Mission Genocide uses it really well giving very smooth pixel by pixel vertical scrolling using CRTC register R5).
It's interesting for me because very few games used it. It often involves precise timing, but it allows good flexibility and the ability to scroll the screen vertically pixel by pixel in combination with hardware scrolling. Horizontally, R3 can be used for smoother movement.
3. How did you find CPC's hardware scrolling?
Not many games use it. If you scroll a lot you also need to cope with the wrap around address, meaning sprite drawing can be slower, and often many games don't use it well and makes things worse (here I talk about ghosts and goblins where the scrolling is hardware based, but a small bit at a time - could be improved with some tweaking I believe).
I am really interested in your view.
1. as far as I know it was released...Rockford was intended to be 1 game, but due to the amount of levels and graphics for those levels it made the overall size of the data very large, a decision was made to split it into 2 separate versions. Exactly the same code but new maps and graphics.. I honestly don't recall if it was released. But I do remember the decision and making 2 masters. I think there were 5 in each???
2 Ah that's a good question, it was actually a colleague, we nicknamed Orange Prof, I sadly don't recall his real name, he was very technically minded, (another colleague Paul Windett was nicknamed Prof due to his wild hair and beard hiding his eccentric intellect, and Orange Prof also had a wild bearded appearance but he was a redhead), anyway it was he who noted that it was possible to generate 2 or more vsyncs, and using interrupts which occurred at fixed points on the screen refresh cycle, we could time the Vsync and changes of the mode and screen offsets. It took a bit of experimentations since the new syncs also altered the timing of the interrupts, but we managed to produce a stable split and resetting the screen to a non scrolling base. This in theory allowed us to have a much more stable scrolling screen with a fixed panel as you point out, using the screen registers to let me do a dregree of hardware scrolling and then updating only the edges/sprite damaged areas for faster updates.
I think I did it 1st on Rastan, though it might have been Rockford, I can't remember...but I do recall there was a problem with we sent a demo down to Ocean of a 1st level play through of Rastan, they called us up and were angry that the game was rolling on the screen... This was a mystery to us. So myself and a manager went down to Oceans Central Street office to see for ourselves, sure enough it was rolling, or not syncing properly...
It turned out that not all CRC devices were synced quite the same, there was a screwdriver hole in the back you could adjust to ensure the timing was correct, but Ocean were far from happy with that solution, I think someone quipped, we can't supply a screwdriver with every copy.. But it was basically a hardware issue we could not resolve in software, so they accepted that the majority of devices would be fine, and would offer a customer who had problems the info on how to adjust or give a refund. I never heard of any issues with Rockford or DJ Puff, I don't know why only Ocean's test machines seemed to consistently show a problem.
3 it was ok, it meant I didn't have to dump a whole screen of pixels, only the edges and the area where a sprite was moving... But that could actually be slower to calculate than dumping the whole screen, it would depend on the game, and you had to keep track of the offset which in turn made the sprite draws much slower...you often gained one thing but paid for it with another. It also had the benefit of freeing up some of the screen RAM if you were careful, you could avoid the double buffer on the panel, and make use of the back buffer panel area as extra volatile storage. I think that happened in Rastan, every single byte was used and I spent several weeks trying to squeeze more and more in...it was genuinely a nightmare trying to get it all in.
Hope that answers things...my memory of those days is a little foggy but its nice to recall some of the people and events that shaped me.
Thanks man, so nice to have an old coder answering questions... :)
Thankyou :)
Very interesting :)
I'll check Rastan, it probably needs a slight timing fix.
The rolling may be down to the frame that was generated being less than or greater than 312 scanlines. Some monitors are tolerant, and depending on vhold, will latch onto it and make a stable display. I'm guessing the code has less lines output.
EDIT: Confirmed, timing is not good :( Concerning Rastan, you had 42 char lines per screen giving 336 lines per screen; making the frame a bit less than 1/50th for a frame. So the screen would roll.
I modified it here with the following pokes:
2fba=&10
301e=&10 (17-1)
306e=&15 (22-1)
22+17 = 39 char lines, 8 lines per char -> 312 lines
now you have 312 lines per screen, each frame takes 1/50th of a second and should not have any rolling. I would need to check it on real hardware to know if it's a good fix or not.
EDIT2: Rockman has 37 char lines per frame, so is a bit short. The screen should roll with this, but it may just be in tolerance. I've not found the appropiate pokes yet. I can make a stable display but the mode change is wrong because of the altered interrupt timing. I'll take a look tomorrow on how to fix this.
I think almost all games that use rupture have incorrect frame timing. I think because it wasn't so understood as it is now. So I believe you were not alone. Some games such as Octoplex only work on one CRTC type because the register writes are responded to in a different way between CRTC types.
It is a shame, more games could have benefitted from this method. We would probably have a lot more vertical scrolling games and CPC would have much less of a bad reputation concerning scrolling.
yea it was try it and see method of coding we didn't really know the maths then, we just tried twiddling different numbers till we got it right... I'm pleased to know there is a way to actually work it out...
Yepp, the pioneer years. The CPC was still a mystery and it was lots of fun to find out new possibilities. Maybe even today it hides one or two secrets. ;) :)
I was thinking of writing a game that uses more than 312 scan lines per frame just so I can fit all the stuff I want to do in one (slightly larger) frame, not sure what most monitors will tolerate though!
For Giana Sisters I use 288 scanlines to display the picture. I assume that not more than 294 can be seen on a regular color monitor (only 272 on a green monitor!). Hope that helps.
QuoteI was thinking of writing a game that uses more than 312 scan lines
then try good old EGA in 640x350x16...
PAL overscan is 384x288. More is not handled on standard TV/Monitor.
Writing a game with a so big screen resolution will only waste time for displaying things that nobody will see...
By the way, 312 lines should mean that you no more have VSync. :-\
[attach=2]
Picture from documentations:devices:crtc [Grimware] (http://www.grimware.org/doku.php/documentations/devices/crtc)
LOL. I think Executioner means he wants to extend the frame time, not the visible size, and he will still have a vsync.
e.g. just set r4 to 40 for example. You get 8 more lines for a frame, and if the monitor can sync to it (and some people may have to turn the v-hold to do that), you get more cpu time per frame (although the frame is longer; so it's not more cpu cycles in the same time ;) ).
OK! ;D
Flickering like on Amiga... igittigittt! (means that's yucki!). I would rather move on to 60 Hz to have a more eye-saving picture. But when ever I suggest that, then people start to throw GT64's at me. :laugh:
I don't get any flicker on my CTM with values up to about 42, that's almost 45Hz, significantly slower than 50Hz. No idea how that would look on various other converters/monitors though. Just do out &bc00,4:out &bd00,42
Wished I could! My US CTM died, the Sony Black Trinitron is just not a CTM and I bought two 12 V adaptors from amazon to power my 3" drive - neither now works. Rotten luck!
Quote from: Executioner on 23:16, 16 August 15
I don't get any flicker on my CTM with values up to about 42, that's almost 45Hz, significantly slower than 50Hz. No idea how that would look on various other converters/monitors though. Just do out &bc00,4:out &bd00,42
On of the demos on "The Demo" it stretches the timing; the monitor then shows thicker scan lines at the top on my monitor.
Can't remember which part.
one of these two I think:
Demo 2 : Lobotomia (Slash, Pict)
Demo 7 : Mega Demo (Fred Crazy, Hightower)
I think more demo 7.
EDIT: It is demo 7. The frame is not synced and the top part, on my monitor, would show additional "scanlines" because the monitor had trouble syncing to it although it did. Same can be seen by setting the vsync short. I think extra lines at the top appear.
Quote from: Executioner on 23:16, 16 August 15
Just do out &bc00,4:out &bd00,42
You fried my CPC >:(
No just joking, but it makes my screen rolling.
Quote from: remax on 21:39, 17 August 15
You fried my CPC >:(
No just joking, but it makes my screen rolling.
No roll on any of mine... That's 2x CPC 6128's (CTM 644) 4xPlus machines (2x mm12 2x CM14) and 1x JustCPC 128k (21" Generic CRT telly - Badged as Wharfdale, but as they primarily made speakers I suspect not)
I think 42 is probably pushing the boundaries a bit much. I was considering using a value of 40 for an extra 1024us per frame :)
Quote from: Executioner on 12:00, 18 August 15
I think 42 is probably pushing the boundaries a bit much. I was considering using a value of 40 for an extra 1024us per frame :)
But 42 is the answer to the ultimate question of life, the universe and everything. You have to use it.
Quote from: EgoTrip on 13:48, 18 August 15
But 42 is the answer to the ultimate question of life, the universe and everything. You have to use it.
So the question is CPC-related. Good information. For me 464 is showing up whenever something important happens. Maybe 42 and 464 can be used together as a clue to find the question?