News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Recent posts

#1
avatar_lightforce6128
Games / Re: WIP Transversion
Last post by lightforce6128 - Today at 01:51
I always liked this game on the Atari 2600:

https://youtu.be/sk3resNu1kA?feature=shared&t=186

I'm looking forward to your CPC version.
#2
avatar_lightforce6128
Programming / Re: Interruptions
Last post by lightforce6128 - Today at 01:42
This reminds me on something: Without knowing about IM2 and under some very special conditions, I developed another possibility to "move" the interrupt address out of the way.

Four conditions: If you need the memory at #0038 because of e.g. an overscan screen, cannot spend 256 bytes for an interrupt table, you know that the pixels at #0038 to #003A will always show the same thing, e.g. background, and the screen is presented in mode 0, it is possible to use the following trick:

Command 'JP nnnn' has opcode #C3. Interpreted as mode 0 colors, these are two pixels drawn with pen 9. This means that command 'JP #C3C3' will forward the interrupt call to another address and will be visible as six pixels with pen 9. If pen 9 is used e.g. as background, the command itself will be invisible.

Now it is questionable, if address #0038 should not create clutter in the visible image, whether address #C3C3 is an improvement. In some special cases this might be. If not, one can sacrifice one other pen (set to the same ink as pen 9) to create a bunch of different addresses as target for the interrupt.

Of course, a similar result can be achieved by other techniques, e.g. color rasters or screen splitting, that have all their own pros and cons.
#3
avatar_lightforce6128
Programming / Re: Interruptions
Last post by lightforce6128 - Today at 01:33
Quote from: McArti0 on Yesterday at 21:01org #8001


Why is it #8001 and not #8000? What happens if by chance #00 is used to calculate the table entry?
#4
avatar_Narkhos
Games / Re: Le Dernier Serment (The La...
Last post by Narkhos - Yesterday at 22:26
I just added save/load feature to the game. I tested it extensively and it seems I did not break anything in the process  :D

If any of you give it a try, let me know if it works for you or if you experience any problem  :) 
#5
M
Games / Re: WIP Transversion
Last post by menegator - Yesterday at 22:20
Nice. An idea, if it's not to late, make the tiles like bombjack, if you take them at a certain order to get higher score.
#6
A
Programming / Re: triple buffering
Last post by Anthony Flack - Yesterday at 21:26
Dragon Attack is a beautiful example of updating the player directly onto the front buffer at 50hz, with the bullets updating every third frame. It works very well. You can get away with jerky enemies if the player is smooth and responsive. 

You could try other things like only drawing half your enemies every other frame, or even go as far as the old Space Invaders trick of moving only one enemy each frame. On the Plus, updating sprite graphics takes time, so you can stick all your animation frame change requests into a buffer and only process a few each frame, or stagger them so that a quarter of the sprites update regularly every 4th frame for eg. 

You can buffer other changes, too. It doesn't matter if the score panel or some of the numbers and other widgets change a frame or two later, so I make score panel updates happen over several frames rather than all at once. 
#7
avatar_McArti0
Programming / Re: Interruptions
Last post by McArti0 - Yesterday at 21:01
Quote from: Longshot on Yesterday at 19:55This routine can crash
This routine must crash.

because readed low byte from D0-D7 is FF and jump address readed is 80FF(8100)

org #8001
REPEAT 128
DW #B941
REND
.L8101
DI
LD A,#80 ;00.
LD I,A
IM 2
RET

CALL &8101
#8
S
CPCWiki Discussion / Re: Possible spam uptick
Last post by St-BeidE(DE/GB) - Yesterday at 20:41
It wasn't me  ;D ...
#9
avatar_Longshot
Programming / Re: Interruptions
Last post by Longshot - Yesterday at 19:55
Quote from: McArti0 on 19:42, 14 April 24org #8000
REPEAT 128
DW #B941
REND
.L8100
DI
LD A,#80 ;00.
LD I,A
IM 2
RET

CALL &8100
This routine can crash because the value of bit 0 of the address is not always 0.

You can identify the value of this bit beforehand to set a non-specific interrupt vector.

The most used is to create a table with 257 times the same value.
So if the value is #B9, for example, the interrupt will always occur at #B9B9 whatever the value of bit 0.
#10
avatar_dragon
Games / Re: Converted GX4000 .cpr - Th...
Last post by dragon - Yesterday at 17:57
So try deleting this(00): 

org #772e    
res 4,(ix+#03)
set 5,(ix+#03)
res 6,(ix+#03)

So he don't delete the dynamites from the 4e32 table where he found one, with lucky it work.
Powered by SMFPacks Menu Editor Mod