Genesis8 - Remake of Slap Fight (Alcon) by Abalore W.I.P.

Started by NewsBot, 18:00, 20 October 16

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

NewsBot

This content has been fetched from a third-party page feed.

Gryzor


XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

genesis8

____________
Amstrad news site at Genesis8 Amstrad Page

GUNHED

Very nice! Looking forward to see the final result.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

andycadley

Ooh, nice. I was always a big fan of Slap Fight. :-)

norecess


XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

ervin

This is so impressive.
I've been chatting with the dev on youtube about the sprite routines.
I'd love to have a look at some of the code.
:D

abalore

Quote from: ervin on 10:46, 29 March 19
This is so impressive.
I've been chatting with the dev on youtube about the sprite routines.
I'd love to have a look at some of the code.
:D


Here is one of the sprites in the game:



macro newline:pop hl:ld a,l:add c:ld l,a:mend
macro putv value:ld (hl),value:mend
macro tr_l value:ld a,(hl):and e:or value:ld(hl),a:mend
macro tr_r value:ld a,(hl):and d:or value:ld(hl),a:mend


; Draws an outer Wing "odd" sprite
; Input HL=pointer to screen row in look-up table
;   C=horizontal offset


__Wing_2_0_1
ld (sp_save),sp
di
ld sp,hl
ld de,&55AA
ld b,#40
inc c
newline:tr_l b:inc l:tr_l #41
newline:tr_l b:inc l:tr_l #41
newline:tr_l b:inc l:putv #C1
dec c
newline:tr_l b:inc l:tr_l #40:inc l:putv #4B:inc l:tr_l #41
newline:tr_l b:inc l:tr_l #40:inc l:putv #C1:inc l:tr_l #41
newline:tr_l b:inc l:putv #C2:inc l:putv #C1:inc l:putv #4B
newline:tr_l b:inc l:putv #C2:inc l:putv #C1:inc l:putv #4B
newline:tr_l b:inc l:putv #C3:inc l:putv #85:inc l:putv #4B
newline:tr_l b:inc l:putv #C1:inc l:putv #85:inc l:putv #C3
newline:tr_l b:inc l:putv #C0:inc l:putv #C1:inc l:putv #C3
newline:inc l:putv #D0:inc l:putv #F0:inc l:tr_r #82
newline:inc l:tr_r #80:inc l:inc l:tr_r #82
ld sp,(sp_save)
ei
ret         




ervin


fgbrain

Apart from printing sprites ... For such a game with many bullets on screen
how do you handle sprites collision?? :P
_____

6128 (UK keyboard, Crtc type 0/2), 6128+ (UK keyboard), 3.5" and 5.25" drives, Reset switch and Digiblaster (selfmade), Inicron Romram box, Bryce Megaflash, SVideo & PS/2 mouse, , Magnum Lightgun, X-MEM, X4 Board, C4CPC, Multiface2 X4, RTC X4 and Gotek USB Floppy emulator.

abalore

Quote from: fgbrain on 22:19, 31 March 19
Apart from printing sprites ... For such a game with many bullets on screen
how do you handle sprites collision?? :P


Using a collision matrix.

zhulien

one of my favourite games of all time, makes the wonder though...


could a TATE mode work well on the CPC?  You could then leverage off the horizontal hardware scroll, potentially full screen

abalore

Quote from: zhulien on 17:42, 01 April 19
one of my favourite games of all time, makes the wonder though...


could a TATE mode work well on the CPC?  You could then leverage off the horizontal hardware scroll, potentially full screen


Problem with TATE on the CPC is that, while pixel precision vertical scrolling is "easily" achievable, pixel precision horizontal scrolling isn't. At least not in a universal way for all CRTCs, as far as I know. In horizontal you must rely on character scrolling, which is only apropiate for very fast scrolling games or "push scrolling" like GnG.

GUNHED

Pixel precise horizontal scrolling on all CRTCs is also very easy. Use two screens, like shown here:

https://www.youtube.com/watch?v=twCwbe1IgMo

http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

abalore

Quote from: GUNHED on 23:13, 02 April 19
Pixel precise horizontal scrolling on all CRTCs is also very easy. Use two screens, like shown here:



Yeah, it's probably combining the R3 trick with two sets of tiles (displaced by one pixel). It doesn't seem to have a big tile variety at all. In my case I just can't afford that technique, I can barely fit in memory the 256 different tiles per level in my game (I already use 3 screen buffers, tilemap, sprites, soundtrack...) . It would require to double the tile memory, which is out of consideration.


A plain R3 technique would give us a 2 mode 0 pixel precision, but take into account that a mode 0 pixel is double size in horizontal than in vertical, so a 2 horitonzal pixel scroll will be visually equivalent a 4 pixel vertical scroll. I'm not saying it's impossible, just not "easy". Having to double the tile memory fits the definition of "not easy" in my opinion. You can argue that the tile displacement can be done real-time, but then you'll waste a lot of precious CPU cycles.

Axelay

Quote from: abalore on 01:26, 03 April 19

Yeah, it's probably combining the R3 trick with two sets of tiles (displaced by one pixel). It doesn't seem to have a big tile variety at all. In my case I just can't afford that technique, I can barely fit in memory the 256 different tiles per level in my game (I already use 3 screen buffers, tilemap, sprites, soundtrack...) . It would require to double the tile memory, which is out of consideration.


A further consideration with using preshifted tiles like that is that the leading edge column of pixels of a tile needs to be identical to the trailing edge column of pixels of the preceding tile, so that needs to be dealt with in some way, and is likely to either cost cpu or limit tile arrangement or design.


Quote from: zhulien on 17:42, 01 April 19
could a TATE mode work well on the CPC?  You could then leverage off the horizontal hardware scroll, potentially full screen


I think there are a couple of other things working against a TATE mode as well.


Primarily it's that with a standard orientation vertical scrolling screen sized to 32 characters wide, you have pretty much the ideal for fast screen addressing, with each line being an even 64 bytes long with no concerns about memory page changing in a pixel line, let alone screen address reset.  With a horizontal scroll it's the opposite, not only do you need to worry about a line of pixels having page changes, but also dealing with the position where the screen address resets and goes backwards by 2kb.  So it would complicate and slow screen addressing.


A small secondary possible issue, depending on your point of view, is that a score line is relatively easy to maintain as a screen split in the standard orientation below the play area, where if you were using a horizontal scroll, your only easy option would be a 'vertical' score line along the left or right side of the play area, which I suspect would not really achieve the 'arcade feel' I imagine a TATE mode would be aiming for.  There's options you could use for putting a score at the top or bottom of the screen, but the ones I can think of at the moment would use up more cpu time than a 'vertical column to the side' style score panel.


As abalore says, that doesnt mean it's impossible, but I think there is a lot more going for using a vertical scroll in standard orientation on CPC.

GUNHED

@abalore : Yes, "wasting" 32 KB for screens is a lot. However, one should take into account that lots of games use that anyway (even without pixel precise scrolling) to omit flicker und to build up a screen properly.
The "Burning Wheels" game runs in 64 KB. You could move to 128 KB to have 64 KB more for tiles. Today everybody has an X-MEM or RAM expansion anyway.  :)


Good luck with your projects!!!  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Carnivius

Quote from: GUNHED on 16:31, 03 April 19
Today everybody has an X-MEM or RAM expansion anyway.  :)
Not everybody.  :-[
Favorite CPC games: SwitchBlade, Stryker in the Crypts of Trogan, Turrican II, UN Squadron, Oh Mummy

zhulien

I think perhaps resolutions using the entire width, but 13 characters high (around 8kb RAM) gives a nice approx 16x9 aspect ratio too.  Games like slapfight ideally are in 3:4 aspect ratio, but honestly this remake of Slap Fight looks awesome!


Actually, i wonder how many TVs these days have a zoom option?  With the right resolution and using the TV's Zoom, we might 'almost' get a full screen game.

GUNHED

http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

abalore

Quote from: GUNHED on 16:31, 03 April 19
You could move to 128 KB to have 64 KB more for tiles.


The game requires 128K already. A cartridge version compatible with 64K machines is also planned, probably based on a Dandanator device.

GUNHED

http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

XeNoMoRPH


https://youtu.be/MpPWc3VHE70
Slap Fight WIP , in Retro Pixel 2019 event ( Málaga - Spain )
your amstrad news source in spanish language : https://auamstrad.es

Powered by SMFPacks Menu Editor Mod