Author Topic: ghouls'n goblins gx4000  (Read 22799 times)

0 Members and 1 Guest are viewing this topic.

Offline andycadley

  • Supporter
  • 6128 Plus
  • *
  • Posts: 898
  • Liked: 430
  • Likes Given: 72
Re: ghouls'n goblins gx4000
« Reply #50 on: 09:39, 26 February 16 »
I have considered the scoreboard at the top.
But it's more complicated, because of R9 at 1 and the pri.
I don't know if i can set a pri at line 0...
You can't because a value of 0 switches it off. You have to set up the first part of the display and then use the PRI to fiddle with it on subsequent parts. Can't say I've ever tried doing it with an R9=1 bit at the top of the display....

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.335
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2264
  • Likes Given: 3478
Re: ghouls'n goblins gx4000
« Reply #51 on: 10:19, 26 February 16 »
You can't because a value of 0 switches it off. You have to set up the first part of the display and then use the PRI to fiddle with it on subsequent parts. Can't say I've ever tried doing it with an R9=1 bit at the top of the display....
With PRI being limited to 255 and because it doesn't wrap, the answer probably lies with using a traditional split. Then you can cause a PRI to trigger on the last scanline (1 line before the top panel). delay slightly, set R9=0, now set a PRI to trigger at the end. Now set R9=7. It will be a lot easier on Plus.
There may be an alternative way, I'll work out some code that will do it.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline Executioner

  • Supporter
  • 6128 Plus
  • *
  • Posts: 783
  • Country: au
  • WinAPE Developer
    • WinAPE
  • Liked: 391
  • Likes Given: 60
Re: ghouls'n goblins gx4000
« Reply #52 on: 12:29, 26 February 16 »
You shouldn't need an interrupt on scan line 0 to change CRTC/MODE/Palette/Soft-scroll for a static screen at the top, just set them all up on a PRI after the end of the pervious displayed frame, or a standard VSYNC interrupt, then set a PRI for a scan line above the bottom of the static display and set soft-scroll during the border area (it can be changed every character!). Frogger uses a Plus Split-Screen and Soft-Scroll change every 16 scan lines for the river/road.

Offline Xifos

  • CPC6128
  • ****
  • Posts: 176
  • Country: fr
  • Liked: 236
  • Likes Given: 230
Re: ghouls'n goblins gx4000
« Reply #53 on: 13:28, 26 February 16 »
You shouldn't need an interrupt on scan line 0 to change CRTC/MODE/Palette/Soft-scroll for a static screen at the top, just set them all up on a PRI after the end of the pervious displayed frame, or a standard VSYNC interrupt, then set a PRI for a scan line above the bottom of the static display and set soft-scroll during the border area (it can be changed every character!). Frogger uses a Plus Split-Screen and Soft-Scroll change every 16 scan lines for the river/road.

What about R9 set to 1 for the panel score ?

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.335
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2264
  • Likes Given: 3478
Re: ghouls'n goblins gx4000
« Reply #54 on: 15:37, 26 February 16 »
What about R9 set to 1 for the panel score ?
Executioner is saying to use split screen or scroll to do this.

My idea works different. I will write some code to do it because I need to test it.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline dragon

  • 6128 Plus
  • ******
  • Posts: 1.430
  • Country: es
  • Liked: 590
  • Likes Given: 488
Re: ghouls'n goblins gx4000
« Reply #55 on: 17:34, 27 February 16 »
About the music ├Čts a shame  the plus range don't have a utility to transform the music easily in to a dma plus compatible mode.

 

Offline Executioner

  • Supporter
  • 6128 Plus
  • *
  • Posts: 783
  • Country: au
  • WinAPE Developer
    • WinAPE
  • Liked: 391
  • Likes Given: 60
Re: ghouls'n goblins gx4000
« Reply #56 on: 23:46, 27 February 16 »
What about R9 set to 1 for the panel score ?

Do you want it set to 1 (2 scan lines per character) or 0 (1 scan line per character)? You can still do this, but you'd probably want to use normal interrupts for the VSYNC and the first Raster 52 interrupt. I assume you're setting R9 to a low value to use only a contiguous block of memory for it.

Offline Xifos

  • CPC6128
  • ****
  • Posts: 176
  • Country: fr
  • Liked: 236
  • Likes Given: 230
Re: ghouls'n goblins gx4000
« Reply #57 on: 10:01, 28 February 16 »
That's right, at this point, R9 is set to 1.
But i could try to use the cartridge pages better, and stop changing R9 and forget about the ram used by the screen.
It would be easier to have a good score board.

What annoys me is that the hardware sprites are affected if there is a split screen at the top, because of the scanline counter.
They are shifted to the up.

Offline Executioner

  • Supporter
  • 6128 Plus
  • *
  • Posts: 783
  • Country: au
  • WinAPE Developer
    • WinAPE
  • Liked: 391
  • Likes Given: 60
Re: ghouls'n goblins gx4000
« Reply #58 on: 12:46, 28 February 16 »
What annoys me is that the hardware sprites are affected if there is a split screen at the top, because of the scanline counter.
They are shifted to the up.

They could appear on both screens if you're using a CRTC based hardware split, but with ASIC Split-Screen they're not, the scan-line doesn't reset.

Offline TotO

  • 6128 Plus
  • ******
  • Posts: 3.688
  • Country: fr
    • ?area=showdonations;u=4
  • Liked: 2808
  • Likes Given: 1687
Re: ghouls'n goblins gx4000
« Reply #59 on: 17:19, 28 February 16 »
A 32x4 HUD with all the game informations, using:

- 4 colour CPC palette
- No special feature

[attachimg=3]

- Ink updates on the first char line
- Hard sprite for the selected weapon

[attachimg=1]

- Ink updates on each char line
- Hard sprite with more colours

[attachimg=2]
« Last Edit: 22:20, 28 February 16 by TotO »
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 612
Re: ghouls'n goblins gx4000
« Reply #60 on: 10:53, 29 February 16 »
you can add different color per line for text  ;D
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 612
Re: ghouls'n goblins gx4000
« Reply #61 on: 10:59, 29 February 16 »
Btw (sorry for double post) i read a lot of references to PRI.But PRI is limited to visible screen, why not using DMA list to generated interrupt on any of the 312 lines of the screen.Maybe i miss some major drawback about this, did some already try ?
« Last Edit: 11:03, 29 February 16 by fano »
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline TotO

  • 6128 Plus
  • ******
  • Posts: 3.688
  • Country: fr
    • ?area=showdonations;u=4
  • Liked: 2808
  • Likes Given: 1687
Re: ghouls'n goblins gx4000
« Reply #62 on: 11:06, 29 February 16 »
you can add different color per line for text  ;D
I don't want to scare him!  ;D
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 612
Re: ghouls'n goblins gx4000
« Reply #63 on: 11:16, 29 February 16 »
I don't want to scare him!  ;D
:laugh:
F**k that, make us a pretty sexy mockup, we need all dreams to progress  :-*
Anyway, if the mockup is sexy enough, i'll be glad to write him int handler and hud code  ;)
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline TotO

  • 6128 Plus
  • ******
  • Posts: 3.688
  • Country: fr
    • ?area=showdonations;u=4
  • Liked: 2808
  • Likes Given: 1687
Re: ghouls'n goblins gx4000
« Reply #64 on: 11:50, 29 February 16 »
Hehe!
By the way, its look must remain coherent with the game itseft.
« Last Edit: 14:16, 29 February 16 by TotO »
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Offline Guy0me

  • CPC664
  • ***
  • Posts: 144
  • Country: fr
  • Liked: 51
  • Likes Given: 243
Re: ghouls'n goblins gx4000
« Reply #65 on: 13:05, 29 February 16 »
Hi everyone !
So you noticed.
I'm the one behind this try to have a ghosts'n goblins on Gx4000/Cpc+ cartridge.

That's a very good idea to make a remake with plus abilities excellente work so far , do you know there is a Ghost'n Goblins Arcade released on C64 ?

https://www.youtube.com/watch?v=WNfS5NUohtM
[CSDb] - Ghosts'n Goblins Arcade by Nostalgia (2015)
[CSDb] - Ghosts'n Goblins Arcade by Nostalgia (2015)
the previous 1986 version was graphically quite ugly compared to the Amstrad release although the gameplay was ok ..
 In the new arcade C64 version they took the Ghost'n goblins out on CPC as example i guess, but there's anyway some good ideas for inspiration I think.
« Last Edit: 14:23, 29 February 16 by Guy0me »

Offline andycadley

  • Supporter
  • 6128 Plus
  • *
  • Posts: 898
  • Liked: 430
  • Likes Given: 72
Re: ghouls'n goblins gx4000
« Reply #66 on: 14:25, 29 February 16 »
Btw (sorry for double post) i read a lot of references to PRI.But PRI is limited to visible screen, why not using DMA list to generated interrupt on any of the 312 lines of the screen.Maybe i miss some major drawback about this, did some already try ?

I think @arnoldemu and I have both done this before and it works quit well. It's a good idea to use the PRI to set up the DMA timing so that you get it just where you want it.

Downside is that you can't use that DMA list for audio and you can't rely on self clearing of the interrupt because that's buggy, but otherwise it's very flexible.

Offline Ast

  • 6128 Plus
  • ******
  • Posts: 1.077
  • Country: fr
    • Amstrad cpc Website of Ast/iMPACT
  • Liked: 957
  • Likes Given: 726
Re: ghouls'n goblins gx4000
« Reply #67 on: 14:35, 29 February 16 »
No need to use the Dma... Only use the Pri and make your raster, and so on...
_____________________

Ast/iMP4CT. "By the power of Grayskull, i've the power"


Amstrad Plus French Forum

All friends are welcomed !

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 612
Re: ghouls'n goblins gx4000
« Reply #68 on: 14:54, 29 February 16 »
No need to use the Dma... Only use the Pri and make your raster, and so on...
But what when you need to manipulate border or your interrupt needs to be on line 0 or off visible screen ?
« Last Edit: 14:56, 29 February 16 by fano »
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.335
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2264
  • Likes Given: 3478
Re: ghouls'n goblins gx4000
« Reply #69 on: 15:00, 29 February 16 »
But what when you need to manipulate border or your interrupt needs to be on line 0 or off visible screen ?
PRI is not only for visible area. It is based on char line counter (VC) and raster line counter (RC) in CRTC. VC=0,RC=0 is normally start of visible area.

If I have normal height screen and set PRI to 255 it will trigger in the border.

It's limit is 256 lines and it doesn't wrap (so you can't set e.g. 32 and get it to repeat two times - doesn't happen) so if you want to interrupt in the upper border you have two choices.
1. use traditional split AND PRI. Now VCC=0 more than once and you can use PRI in each part. Traditional split is much easier when using PRI to help :)

2. use standard interrupt and waste some cpu time (like on CPC).

3. use DMA interrupt.

4. Or use them ALL  :P

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 612
Re: ghouls'n goblins gx4000
« Reply #70 on: 15:21, 29 February 16 »
PRI is not only for visible area. It is based on char line counter (VC) and raster line counter (RC) in CRTC. VC=0,RC=0 is normally start of visible area.
Sorry , i misformuled the question as i see (consider?imagine?) the line 0 as the one where the hsync occurs.So my question (as it was not really a question but an assertion) , is is possible to cause PRI interrupt on/before the first line that generate pixels from screen memory ? but i think your post contains the reply , more , you came with another solution i didn't think thx ;)
« Last Edit: 15:23, 29 February 16 by fano »
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline andycadley

  • Supporter
  • 6128 Plus
  • *
  • Posts: 898
  • Liked: 430
  • Likes Given: 72
Re: ghouls'n goblins gx4000
« Reply #71 on: 15:29, 29 February 16 »
One nice thing about using the DMA lists is that you can easily define unusual spacings of interrupts.

Also, by making the list slightly too short or long, you can make the positioning move up or down the display automatically. Which might make for some nice demo raster effects.

Offline Ast

  • 6128 Plus
  • ******
  • Posts: 1.077
  • Country: fr
    • Amstrad cpc Website of Ast/iMPACT
  • Liked: 957
  • Likes Given: 726
Re: ghouls'n goblins gx4000
« Reply #72 on: 15:33, 29 February 16 »
One nice thing about using the DMA lists is that you can easily define unusual spacings of interrupts.

Also, by making the list slightly too short or long, you can make the positioning move up or down the display automatically. Which might make for some nice demo raster effects.
I don't understand how you do... Please give us an example coz i'm a little bit curious about that.
_____________________

Ast/iMP4CT. "By the power of Grayskull, i've the power"


Amstrad Plus French Forum

All friends are welcomed !

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.335
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2264
  • Likes Given: 3478
Re: ghouls'n goblins gx4000
« Reply #73 on: 15:35, 29 February 16 »
Sorry , i misformuled the question as i see (consider?imagine?) the line 0 as the one where the hsync occurs.So my question (as it was not really a question but an assertion) , is is possible to cause PRI interrupt on/before the first line that generate pixels from screen memory ? but i think your post contains the reply , more , you came with another solution i didn't think thx ;)
If PRI=1, then interrupt happens at the hsync on line 1. So result is effectively line 2.

If you want to have a PRI interrupt happen on line 0, do it on the final line of the display ;)

But, normal display without split has 312 lines. So we can't get that close.

Use traditional split and now we can get close :)

For SPLT it is different, it does wrap. If you set SPLT so that it wraps you can change line 1 (not line 0 because you can't make SPLT ever happen on this line, MA is taken from R12/R13 and not SPLT address).
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline andycadley

  • Supporter
  • 6128 Plus
  • *
  • Posts: 898
  • Liked: 430
  • Likes Given: 72
Re: ghouls'n goblins gx4000
« Reply #74 on: 15:39, 29 February 16 »
I don't understand how you do... Please give us an example coz i'm a little bit curious about that.
I'll try and knock up a sample later. Basically, the idea is you write a self maintaining DMA list that is, for example, 311 lines long. Each time it repeats, therefore, interrupts will occur 1 scanline earlier than the previous frame (since there are 312 lines). Change colours on the dma interrupt and it appears to move "up" the screen.