i start this thread for questions and comments about 8BP programming
8BP - CPCWiki (http://cpcwiki.eu/index.php/8BP)
GitHub - jjaranda13/8BP: 8 bits de poder ( 8 bits of power) (https://github.com/jjaranda13/8BP)
8 bits de poder (http://8bitsdepoder.blogspot.com.es/)
https://www.youtube.com/channel/UCThvesOT-jLU_s8a5ZOjBFA (https://www.youtube.com/channel/UCThvesOT-jLU_s8a5ZOjBFA)
welcome to 8BP !!
Great work done! :)
hi 8bp friends
new game "nibiru" available at https://github.com/jjaranda13/8BP (https://github.com/jjaranda13/8BP) made in BASIC, using 8BP v26b
info at http://8bitsdepoder.blogspot.com.es/ (http://8bitsdepoder.blogspot.com.es/)
video at https://github.com/jjaranda13/8BP (https://github.com/jjaranda13/8BP)
That's very, very impressive.
The scrolling in nibiru is excellent, considering that the whole screen(!) is being used.
This is just amazing!
Well done @jjaranda13 (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1880) , looking good!
I am starting to get the game making bug again and have a few ideas and would love to use 8bp to do it.
Request: The sprite flip ability you have in your to do list would be very useful :D
The 8BP library is amazing!
I was playing Parodius on the PC Engine yesterday, & this is easily comparable!
new available game: mini-pong ( a simple version of classic "pong")
it is quite simple, and suitable as introduction for begginers in 8BP. The BASIC program is very short and understandable
i have the intention ti create some "short games" for help others to make their own games
This could be quite handy for anyone coding with CPC BASIC 3. Have you tried anything out between your library and CPC BASIC 3? It should produce some interesting results. :D
Ccz80 ++ is more and faster with the sprite and the other bases.
Greeting
Quote from: cpcuser on 23:01, 23 December 16
Ccz80 ++ is more and faster with the sprite and the other bases.
Greeting
Which is why I think CPC BASIC 3 combined with 8BP will produce an interesting result
It could be interesting to take a basic program which uses 8BP and compile it using BASIC3. I will test it
.
new available game: mini-invaders ( a simple version of classic "space invaders").it is quite simple, and suitable as introduction for begginers in 8BP. The BASIC program is very short and understandable for beginners
https://www.youtube.com/watch?v=6OcB_hjuYiU (https://www.youtube.com/watch?v=6OcB_hjuYiU)
Very impressive examples. Especially "Nibiru".
I reckon that with the stars in the background, could it work by using palette swaps to make it smoother?
andycadley suggested this idea for the scrolling of the white lines on my football game.
It's bascially having 2 pixels - 1 white and the other black next to each other, then swapping the colours around while you scroll it. It gives a very smooth feeling of scrolling.
Quote from: sigh on 16:47, 02 January 17
Very impressive examples. Especially "Nibiru".
I reckon that with the stars in the background, could it work by using palette swaps to make it smoother?
andycadley suggested this idea for the scrolling of the white lines on my football game.
It's bascially having 2 pixels - 1 white and the other black next to each other, then swapping the colours around while you scroll it. It gives a very smooth feeling of scrolling.
Hi Sigh
Thanks, It is possible to create animation effects using inks. In fact 8BP provides the command |RINK to create "rotation ink" animation effects, such as the road effect or the scroll of bricks effect which is shown in this video: https://youtu.be/LYkxSuNfYeI (https://youtu.be/LYkxSuNfYeI) (check at second 1:05)
The same "trick" can be used for scroll of stars. However, in "Nibiru" and "mini-invaders", the stars effect is created using the command |STARS, which can provide up to 40 stars in movement at different planes of speed. For example in "Anunnaki" the initial screen uses |STARS command to create a depth effect (video at https://www.youtube.com/watch?v=8x2g_t4-lCU)
i have tested CPC BASIC Compiler using 8BP
concretely, i have compiled mini-invaders
my conclusions:
- around 50% faster
- difficult to debug (it is machine code)
- no 100% compatible with locomotive basic
- useful for programmers which want more speed or hide their code
https://www.youtube.com/watch?v=0ifIjdjgkEc
Does it compile with FaBaCom, too ?
People could develop and test/debug with normal 8BP/Basic and deliver the final work compiled.
Quote from: SRS on 22:01, 03 January 17
Does it compile with FaBaCom, too ?
People could develop and test/debug with normal 8BP/Basic and deliver the final work compiled.
Yes, the problem with fabacom is the RAM usage. A BASIC game that consumes 10KB, after compiling with fabacom takes 20KB. In fact, CPC Basic compiler takes also certain overload. I have compiler nibiru (17KB) and the compiled version takes 22KB (5KB extra).
I believe that although fabacom and CPC BASIC compiler are good friends....they have advantages and disadvantages (extra RAM usage, not 100% compatibility...) and for the moment i prefer locomotive BASIC, because the speed with 8BP is enough for most games.
When there is needed an extra speed...we can :
- eliminate all REM instructions from logic <-- always it is a good practice !
- replace RSX commands by CALL XXXX <--- less understandable code but faster!
These two recommendations provide an extra speed, and only if you need more speed , the compilation is justified, because takes more RAM and have compatibility problems. For example, in mini-invaders, the sound command doesnt work properly in the compiled version
Quote from: jjaranda13 on 14:44, 03 January 17
i have tested CPC BASIC Compiler using 8BP
concretely, i have compiled mini-invaders
my conclusions:
- around 50% faster
- difficult to debug (it is machine code)
- no 100% compatible with locomotive basic
- useful for programmers which want more speed or hide their code
Yeah unfortunately after suggesting CPC BASIC 3, I recalled there being some differences with Locomotive BASIC and CPC BASIC 3. Subtracting of numbers and making sure they don't become negative is one of the main differences. CPC BASIC 3 the default type is Integer or Byte (I cannot remember which) & decimal numbers operate through a series of RSXs. INT becomes invalid and MOD is used instead. I think the trick to subtracting was to add instead, so depending on what subtracting by, you can add &FFFF decrementing those amounts.
Quote from: SRS on 22:01, 03 January 17
Does it compile with FaBaCom, too ?
People could develop and test/debug with normal 8BP/Basic and deliver the final work compiled.
Sadly yes, once you start using the CPC Compilers space becomes a concern, which was why I raised it's use with CPC BASIC 3. I'm unsure if it's still being developed to make it more compatible with Locomotive BASIC, but that may have some setbacks in terms of the Assembly code generated. Some people have said here that the code produced from the CPC BASIC 3 is quite difficult to optimize.
Quote from: jjaranda13 on 22:28, 03 January 17
Yes, the problem with fabacom is the RAM usage. A BASIC game that consumes 10KB, after compiling with fabacom takes 20KB. In fact, CPC Basic compiler takes also certain overload. I have compiler nibiru (17KB) and the compiled version takes 22KB (5KB extra).
Unsure if you're referring to the generated .ASM file or the final BINary program. A compiled program will always be larger than its Interpreted counterpart as a fully compiled program must be present for execution, the Interpreted counterpart is tokenized which can condense the size of the program, but what's interesting in your case is RSXs aren't tokenized.
QuoteWhen there is needed an extra speed...we can :
- eliminate all REM instructions from logic <-- always is a good practice !
- change RSX commands by CALL XXXX <--- less understandable code but faster!
Unlike RSXs, using CALL will be tokenized and from BASIC what you can do is setup some variables and assign some addresses to them for those routines, the RSX could be removed to create some more space and it may even improve the performance of your BASIC programs. So if you assign meaningful names like stars%=&xxxx and so on and just use CALL stars%, it should be clear enough to everyone.
QuoteThese two recommendations provide an extra speed, and only if you need more speed , the compilation is justified, because takes more RAM and have compatibility problems. For example, in mini-invaders, the sound command doesnt work properly in the compiled version
Yes unfortunately the SOUND command in Locomotive BASIC (both versions) is actually in a different order from anywhere else. I don't know the reason why, so if you're using it in Assembly or another Compiled Language (CPC BASIC 3/Fabacom possibly or Hisoft Pascal), it looks like this:
Channel Status Byte,
Volume Envelope,
Tone Envelope,
Tone Period (1),
Tone Period (2),
Noise Period,
Volume,
Duration of Sound (1),
Duration of Sound (2)
So that would throw anyone off if you're used to the BASIC SOUND command, which looks like this:
channel status,
tone period,
duration,
volume,
volume envelope,
tone envelope,
noise period
At a guess, BASIC is ordering them in a logical order with optional parts following in a mostly descending order of priority. The firmware, however, is probably leaking an internal ordering which is based around the order the CPU needs information in order to execute the command. Third party languages, like Pascal, are then exposing that ordering directly to ease the process of mapping parameters onto the firmware call.
I am so impressed by this program.
The ink rotation in your brick example - I'm really interested to see what that would look like if it was compiled, as the differences in speed in your last demonstration was insane! :D . That 50 % increase made an incredible visual difference.
Quote from: sigh on 19:30, 07 January 17
I am so impressed by this program.
The ink rotation in your brick example - I'm really interested to see what that would look like if it was compiled, as the differences in speed in your last demonstration was insane! :D . That 50 % increase made an incredible visual difference.
Hi Sigh
You are right!!! the visual difference is really good. When I say that 50% is not too much is because i compare the usual ratios between BASIC and compiled , but this case is special because invocations to 8BP make a lot of work in machine code
i am working in a scrolling game with platforms made of bricks. my initial tests works fine, i move 5 big platforms very fast across the screen using |RINK, and a special animation sequence based on different inks. The result is amazing and i will upload a video very soon
bricks compiled
the bird doest work properly, neither music, but gives you an idea
video .flv is inside zip file
Quote from: jjaranda13 on 00:18, 08 January 17
bricks compiled
the bird doest work properly, neither music, but gives you an idea
video .flv is inside zip file
The forward motion looks so smooth especially with the background graphic of the house and tree! That's really impressive and a great demonstration.
When he moves in the opposite direction, the tiles start to speed up and has a strange strobing effect? What is making the tile do that? Is there anyway to stop it from happening?
Nevertheless, the speed and smoothness makes it outstanding for a demo created in Basic.
hi guys
new game "fresh fruits & vegetables" :P [size=78%]based on 8BP library, programmed in 100% locomotive BASIC[/size]
It is a platform style game with horizontal scroll
https://www.youtube.com/watch?v=rhqLdkYjXxU
ME LIKE IT!
Well done, great looking game.
Your 8BP library is really coming together!
Impressive for a BASIC game !
Would have been a decent commercial game at the time ! :)
Has this been compiled?
Good work! Very smooth for basic.
Quote from: sigh on 10:28, 06 May 17
Has this been compiled?
Good work! Very smooth for basic.
not at all. Not compiled. It is interpreted by CPC directly
Wonderful ! Thank you !
Quote from: jjaranda13 on 11:03, 06 May 17
not at all. Not compiled. It is interpreted by CPC directly
Again - that's very impressive for it to move at that speed.
As in some of your youtube vids, you've compiled some of your programs to make them move faster, will you compile this one too?
It would be great to see the speed difference. :)
Quote from: sigh on 17:13, 06 May 17
Again - that's very impressive for it to move at that speed.
As in some of your youtube vids, you've compiled some of your programs to make them move faster, will you compile this one too?
It would be great to see the speed difference. :)
probably not. I have compiled "mini invaders" only for testing purposes. The gain is around 50%. This extra speed is very good for some games. However, if you consider that the program is made in locomotive basic, an increment from 100% to 150% is not so impresive. Normally a compilation should speed up a program around 1000% or even 10000%. The reason is obvious : 8BP has already done the "hard work". sprite printing, scrolling, collision detection, music...is done by 8BP in machine code. The rest of the program is the game logic, which normally is the lightest part of the program. Additionally, if you program BASIC using "massive logics" philosophy (described in 8BP manual) you can obtain a really good performance of that game logic in basic.
In a nutshell: my goal is to provide the best tool to enable programmers to develop games in locomotive basic, interpreted. I want professional quality in BASIC, and this challenge can be reached using 8BP and massive logics.
compilation is a good choice for programmers which want 50% extra speed ( but in that case you also can move to C language) or programmers who want to "hide" their code. In fact 8BP can be used from BASIC, from C, from assembler...whatever you want. 8BP are a bunch of routines accesible at concrete memory addresses , combined with an "structure" of CPC464 memory block assignments (certain area for sprite table, certain area for sprite drawings, certain area for music, etc)
Quote from: jjaranda13 on 21:38, 06 May 17
probably not. I have compiled "mini invaders" only for testing purposes. The gain is around 50%. This extra speed is very good for some games. However, if you consider that the program is made in locomotive basic, an increment from 100% to 150% is not so impresive. Normally a compilation should speed up a program around 1000% or even 10000%. The reason is obvious : 8BP has already done the "hard work". sprite printing, scrolling, collision detection, music...is done by 8BP in machine code. The rest of the program is the game logic, which normally is the lightest part of the program. Additionally, if you program BASIC using "massive logics" philosophy (described in 8BP manual) you can obtain a really good performance of that game logic in basic.
In a nutshell: my goal is to provide the best tool to enable programmers to develop games in locomotive basic, interpreted. I want professional quality in BASIC, and this challenge can be reached using 8BP and massive logics.
compilation is a good choice for programmers which want 50% extra speed ( but in that case you also can move to C language) or programmers who want to "hide" their code. In fact 8BP can be used from BASIC, from C, from assembler...whatever you want. 8BP are a bunch of routines accesible at concrete memory addresses , combined with an "structure" of CPC464 memory block assignments (certain area for sprite table, certain area for sprite drawings, certain area for music, etc)
I can only assume that perhaps with you posting pictures of your new game in this thread in the programming section, people are assuming you're going to work on it further. Usually what people do is announce the new game in the Games or News Section :)
Quote from: jjaranda13 on 21:38, 06 May 17
probably not. I have compiled "mini invaders" only for testing purposes. The gain is around 50%. This extra speed is very good for some games. However, if you consider that the program is made in locomotive basic, an increment from 100% to 150% is not so impresive. Normally a compilation should speed up a program around 1000% or even 10000%. The reason is obvious : 8BP has already done the "hard work". sprite printing, scrolling, collision detection, music...is done by 8BP in machine code. The rest of the program is the game logic, which normally is the lightest part of the program. Additionally, if you program BASIC using "massive logics" philosophy (described in 8BP manual) you can obtain a really good performance of that game logic in basic.
In a nutshell: my goal is to provide the best tool to enable programmers to develop games in locomotive basic, interpreted. I want professional quality in BASIC, and this challenge can be reached using 8BP and massive logics.
compilation is a good choice for programmers which want 50% extra speed ( but in that case you also can move to C language) or programmers who want to "hide" their code. In fact 8BP can be used from BASIC, from C, from assembler...whatever you want. 8BP are a bunch of routines accesible at concrete memory addresses , combined with an "structure" of CPC464 memory block assignments (certain area for sprite table, certain area for sprite drawings, certain area for music, etc)
Thank you for your answer.
One more question:
Did you try your ink rotation technique on the bricks? It was extremely impressive on your last demo.
Quote from: sigh on 00:48, 07 May 17
Thank you for your answer.
One more question:
Did you try your ink rotation technique on the bricks? It was extremely impressive on your last demo.
Exactly! The ink rotation is used at the beggining, in the wall made of blue bricks and also in the floor of the first stage "fruity castle"
Quote from: jjaranda13 on 00:52, 07 May 17
Exactly! The ink rotation is used at the beggining, in the wall made of blue bricks and also in the floor of the first stage "fruity castle"
Yes - I noticed it was used on the blue bricks, but I didn't notice it being used in game? So the red bricks on the ground on the first level, is using the ink rotation method?
Quote from: sigh on 01:27, 07 May 17
Yes - I noticed it was used on the blue bricks, but I didn't notice it being used in game? So the red bricks on the ground on the first level, is using the ink rotation method?
yes. Only the ground. The rest of platforms are being moved by CPU, using 8bp scrolling mechanism (command |MAP2SP)
I was playing platoon which has horizontal scrolling but it looks quite chunky, definitely not single pixel scrolling more like 2 or 4 pixels by the looks of it. I guess it will just be some sort of software scroll. Can anyone tell?
Quote from: jjaranda13 on 08:14, 07 May 17
yes. Only the ground. The rest of platforms are being moved by CPU, using 8bp scrolling mechanism (command |MAP2SP)
Is there a reason why the blue bricks move much more smoothly than the red bricks in the game?
Quote from: sigh on 11:01, 07 May 17
Is there a reason why the blue bricks move much more smoothly than the red bricks in the game?
yes, you are very good observer
blue Bricks at presentation use synchronized sprite printing (|PRINTSP,0,0,1), while during game sprite printing is not synchronized (|PRINTSP,0,0,0). The effect of sync sprites at presentation is that everything is synchronized, including ink rotation command(blue bricks). This provides a smooth scrolling effect.
In my opinion , during game, it is not recommended to use sync sprite printing because although movements are more smooth, the speed becomes lower. Depending of the type of game may be interesting to synchronize or not
Quote from: jjaranda13 on 13:14, 07 May 17
yes, you are very good observer
blue Bricks at presentation use synchronized sprite printing (|PRINTSP,0,0,1), while during game sprite printing is not synchronized (|PRINTSP,0,0,0). The effect of sync sprites at presentation is that everything is synchronized, including ink rotation command(blue bricks). This provides a smooth scrolling effect.
In my opinion , during game, it is not recommended to use sync sprite printing because although movements are more smooth, the speed becomes lower. Depending of the type of game may be interesting to synchronize or not
So if you were to compile the game, the red bricks bricks would move 50% faster, offsetting the slower speed when using synchronized sprint printing? Would the 50% speed increase be noticeable and worth it?
Quote from: sigh on 17:40, 07 May 17
So if you were to compile the game, the red bricks bricks would move 50% faster, offsetting the slower speed when using synchronized sprint printing? Would the 50% speed increase be noticeable and worth it?
Extact! if you compile the game then the best is to use synchronous sprite printing during the game. The slower speed of sync is compensated by the game logic compilation and the result is quite good. I have tested it some time ago with "mutante montoya". When i created this game, at the beggining was very very slow. Then I compiled it and it was too fast. Then I sync it and result was perfect.
After This experience i began to create "massive logics" technic to program games in basic. Now, 8BP is faster and if you combine massive logics with 8BP the result is quite good. However synchronization continues being heavy for interpreted BASIC programs. If you compile it, synchronization is the best, even some times too fast, and it is needed for an suitable speed.
Quote from: jjaranda13 on 08:07, 08 May 17
However synchronization continues being heavy for interpreted BASIC programs. If you compile it, synchronization is the best, even some times too fast, and it is needed for an suitable speed.
Awww man! Now I
really want to see a compiled version of "Fresh fruit and Vegetables" :P
News from 8BP!
available new game "3D racing one" a pseudo 3D racing game based on 8BP v32
https://www.youtube.com/watch?v=vwiPe--Z6RA&feature=youtu.be (https://www.youtube.com/watch?v=vwiPe--Z6RA&feature=youtu.be)
(https://3.bp.blogspot.com/-uYJnaahJrBU/WtOwUu7djhI/AAAAAAAACk0/CQ5T6OBUbAohiUdQNzpuiN_hzBtjXjQQQCLcBGAs/s1600/3dro01.PNG)
This looks cute and wonderfully retro :)
hi guys
8BP V33 is just now available at https://github.com/jjaranda13/8BP (https://github.com/jjaranda13/8BP)
this new version includes:
- sprite flipping ( allows save RAM )
- overwrite with 1 or 2 bits for backgrounds ( 2 or 4 colour backgrounds)
- pseudo 3d improved with capacity for segments with overwrite
- improved ink rotation command (RINK) with any number of inks to rotate
- 1.400 bytes for music, 8.4KB for graphics, 24.5 KB for Basic
- improved manual
https://www.youtube.com/watch?v=SjnOJOM8qmM (https://www.youtube.com/watch?v=SjnOJOM8qmM)
enjoy it!
That's extremely impressive in regards to the pseudo 3D. Is the pseudo 3D compiled?
Quote from: sigh on 13:44, 27 June 18
That's extremely impressive in regards to the pseudo 3D. Is the pseudo 3D compiled?
The pseudo-3D is not compiled. All my games and demos run using interpreted Locomotive BASIC. They are BASIC programs using 8BP RSX library, but fully pure interpreted BASIC
Quote from: jjaranda13 on 16:01, 27 June 18
The pseudo-3D is not compiled. All my games and demos run using interpreted Locomotive BASIC. They are BASIC programs using 8BP RSX library, but fully pure interpreted BASIC
:o It's not compiled and it already moves that smoothly and fast! Very nice indeed.
Is there any chance creating a compiled version as it would be interesting to see the results?
I think an F-Zero type game would be possible as that particular game focuses on the speed of the road and doesn't have scaling objects (trees,buildings etc).
Fantastic indeed!
Why go with fzero when you can make a 3d river raid :P
8BP V35 is available and also the new videogame "Space Phantom"
https://www.youtube.com/watch?v=8adNXl3K7qw (https://www.youtube.com/watch?v=8adNXl3K7qw)
https://youtu.be/SI7FrCIi-S0
https://youtu.be/nyxVv06MF7Y
https://youtu.be/9_U8K5QVQ0A
(https://pbs.twimg.com/media/D6mLY3ZWkAAq1gL?format=jpg&name=medium)
https://youtu.be/yY0PYmcGBhY (https://youtu.be/yY0PYmcGBhY)
That looks quite impressive
Thanks for all the work you are doing, José Javier!
All progress in the library is appreciated :)
Quotenew v37 version of the 8BP library available. Faster and with the improved COLAY command. In addition, the manual has been completely revised and the chapter on mass logic improved.
(https://pbs.twimg.com/media/EGI2wRFXUAE7V59?format=jpg&name=900x900)
https://youtu.be/VsbpeDARTPY
VERY VERY impressive!!!
Quote11/12/2019 UPDATE V38 (backward compatible)
I have updated the repository the following changes
library: 8bitsdepoder_v38_001.asm is now included with the following improvements:
command | COLSPALL more powerful. no collision limitations with sprites located in negative coordinates
command | MUSIC: now accepts a new parameter that allows you to choose between playing the music in a loop or once.
command | MUSICOFF: no longer exists, has been replaced by an invocation to MUSIC without parameters
manual: I have updated the manual reflecting the changes in the library and I have included a chapter of first paos at the beginning
Demos: all demos are collected in a menu and are made with v38
games: the game "happy monty" is included
This is the demo menu at 8BP v38. All demos are adapted to run in v38
English Translation:
8BP v38
Choose a demo
1. Simple game with music
2. Simple game with jump and shoot
3. Test sprite collision
4. Test layout with overwrite
5. Test animation inks
6. Test overwrite in Mode 1
7. Test sorting sprites
8. Test mini alphabet
9. Test sprite routing
10. Multi-directional scroll test
11. Pseudo 3D test
12. Test stars
https://youtu.be/34Hys8mK8yM
hi guys
thanks everybody for the warm interest in 8BP
I promise to translate the manual to english very soon. It is important to do it. Thanks for your patience
" ...
From AUA we present the FIRST COVER CREATION CONTEST, for which on this occasion we selected the Eridu game: the Space Port of José Javier García Aranda, 8 Power Bits ... "
(https://auamstrad.es/wp-content/uploads/2019/11/certamen-portadas-780x470.jpg)
info here: https://auamstrad.es/retroescena/certamen-portadas-eridu/ (https://auamstrad.es/retroescena/certamen-portadas-eridu/)
This is a nice initiative and apart of the chance of participate in the creation of the physical edition, there are good prices:
1 st : Dandanator CPC + Eridu game
2 nd Eridu game
3 rd: Eridu game
more info at AUA web page https://auamstrad.es/retroescena/certamen-portadas-eridu/
and 8bp http://8bitsdepoder.blogspot.com/2019/11/concurso-de-creacion-de-portada-del.html
https://twitter.com/8bitsdepoder/status/1199782767212584960
new version: V39Quotelibrary:8bitsdepoder_v39_001.asm is now included with the following improvements:
command | COLSPALL, id: now scan from collider id + 1
command | MUSIC: now accepts a new parameter that allows the sound channel C to be released while the music is playing for use in sound effects with BASIC SOUND
command PRINTSPALL : now first print and then animate, so that the first frame of an explosion will be printed. So far when an animation sequence was assigned, the first frame was not printed because it first animated and then printed
Now the PRINTSP and PRINTSPALL commands can use images located in any memory area, even outside the space allocated by the 8BP library for sprites.
Fixed a minibug detected in a specific case of overwriting manual:
I have updated the manual reflecting the changes in the library
Demos: all demos are collected in a menu and made with v39. now there is a new demo to try music and FX at the same time
https://github.com/jjaranda13/8BP (https://github.com/jjaranda13/8BP)
https://youtu.be/SBvkoLRrwo0 (https://youtu.be/SBvkoLRrwo0)
https://twitter.com/8bitsdepoder/status/1230914994050674688
I guess the BASIC interpreter overhead is a real killer even with fast RSXs!
Just need a decent BASIC compiler that can support RSXs now... or just use C.
Quote from: Sykobee (Briggsy) on 23:56, 25 February 20
I guess the BASIC interpreter overhead is a real killer even with fast RSXs!
Just need a decent BASIC compiler that can support RSXs now... or just use C.
The speed is amazing when they are compiled:
https://www.youtube.com/watch?v=0ifIjdjgkEc&feature=emb_logo (https://www.youtube.com/watch?v=0ifIjdjgkEc&feature=emb_logo)
Quote from: Sykobee (Briggsy) on 23:56, 25 February 20
I guess the BASIC interpreter overhead is a real killer even with fast RSXs!
Just need a decent BASIC compiler that can support RSXs now... or just use C.
Actually, José Javer has announced that there will be a C wrapper in the next version
QuotePor último, a los que deseáis programar con 8BP en C, os diré que el wrapper de C ( un 8bp.h) lo tengo a medias y funciona perfectamente, de modo que podréis disfrutar de esta capacidad en la próxima versión V40
https://www.youtube.com/watch?v=SBvkoLRrwo0
https://youtu.be/YPQaANI5nUM
https://twitter.com/8bitsdepoder/status/1248965359912312834
Will there be a decent english translation soon ? love to get into 8bp but google translation is a bit ..... weird :o :P
Quote from: SkulleateR on 00:00, 28 April 20
Will there be a decent english translation soon ? love to get into 8bp but google translation is a bit ..... weird :o :P
for sure. I am preparing 8BP V40 with C support. in coming weeks, 8BP will be accessible through BASIC , C and mix both (making a C routine for the game cycle will accelerate a lot your games, keeping simplicity for the rest of the game code). I am finishing it , and after I will start working on a REAL and QUALITY translation of the full manual, including a new chapter for 8BP programming using C
Since I'm not into C I will only use the Basic Part ....
Anyway awesome work when I look at the demos 8) 8) 8)
Quote from: SkulleateR on 22:16, 28 April 20
Since I'm not into C I will only use the Basic Part ....
Anyway awesome work when I look at the demos 8) 8) 8)
The alternative here for you would be CPC BASIC 3.
It isn't Locomotive BASIC, since it compiles into a very optimised assembly, the differences outlined on the website:
I'm unsure why @Sykobee (Briggsy) (https://www.cpcwiki.eu/forum/index.php?action=profile;u=100) is saying there are no decent BASIC compilers which don't handle RSXes. CPC BASIC 3 handles them very well and earlier in this thread 8BP was tested with CPC BASIC 3 to produce a Mini Invaders game along with Video. I don't know if the source was released.
There was discussion about CPC BASIC 3 having limited memory space and I've noticed CPC BASIC 3 reserves area below &4000 for something else, I can't remember though what it was for. :(
CPC BASIC 3 is limited to Windows, though I think others have used it using a Windows Emulation on Linux and MacOS systems.
I created a number of samples and posted them on the CPC BASIC 3 Forum
https://cpcbasic.activo.mx/f1-cpc-basic
Quote from: AMSDOS on 07:03, 29 April 20
The alternative here for you would be CPC BASIC 3.
No it isn´t ... I´m on Mac here ;)
Besides that, I´m programming on real hardware here and I don´t need speed in particular since I won´t code action games :laugh:
8BP's function is for coding action games...
Quote from: AMSDOS on 09:41, 29 April 20
8BP's function is for coding action games...
Since I allready did some google translations ... yes it is but you can code a lot of other things with it ;D
I wasn't aware of CPC BASIC 3.
Quote from: Sykobee (Briggsy) on 10:57, 29 April 20
I wasn't aware of CPC BASIC 3.
It's one of the lesser known Cross Compiler Languages which has been around since 2012 I think. @Morri (https://www.cpcwiki.eu/forum/index.php?action=profile;u=95) wrote Let's Go with it and Sean McManus' Easi Sprite Driver Advance which is a great example of what can be produced with it. The earlier CPC BASIC has been documented on CPC Wiki with a Link to CPC BASIC 3 which has the frontend editor.
Here's the original thread for it:
https://www.cpcwiki.eu/forum/programming/cpc-basic-3/ (https://www.cpcwiki.eu/forum/programming/cpc-basic-3/)
The problem with CPC BASIC 3 is that:
- CPC BASIC 3 uses 5KB extra (apart from your program) for your code
- additionally ,CPC BASIC 3 uses 16KB extra for work area
in total, a program of 5KB is converted into a 26 KB !!!! This is the reason why i don't recommend the use of BASIC 3
8BP uses only 8KB . And the news: in 8BP v40 you can mix BASIC and C only consuming 2KB extra, including all 8BP commands which are available now in C and a reduced set of BASIC commands available from C (such as INKEY, PRINT, LOCATE, PLOT, DRAW ,SOUND etc). These 2KB includes all 8BP and this mini BASIC. Your programs have 22 KB free for your code + 8.5 KB for graphics + 1.4 KB for music. You can develop a game in BASIC and when it is finished translate directly (very very easy) the "game cycle" (only the game cycle) into C , compile it and obtain a great & fast professional game. This game is a mix between LOCOMOTIVE BASIC and C (only for game cycle)
in 8BP v40 if you want to use only BASIC, you continue having 24 KB free for your BASIC code, like in V39
Back the day when German company Vortex released their 512 KB RAM expansion for CPC464 (1985 IIRC), it was already possible to use 256 KB for BASIC programs. Ok, you had to divide them into parts of 32 KB max. but there were RSX commands like !goto and !gosub and so on.
Now today, we're back to 20 or 30 KB? Come on, lets start to use expansion RAM too. :)
Quote from: jjaranda13 on 17:54, 09 May 20
The problem with CPC BASIC 3 is that:
- CPC BASIC 3 uses 5KB extra (apart from your program) for your code
- additionally ,CPC BASIC 3 uses 16KB extra for work area
in total, a program of 5KB is converted into a 26 KB !!!! This is the reason why i don't recommend the use of BASIC 3
8BP uses only 8KB . And the news: in 8BP v40 you can mix BASIC and C only consuming 2KB extra, including all 8BP commands which are available now in C and a reduced set of BASIC commands available from C (such as INKEY, PRINT, LOCATE, PLOT, DRAW ,SOUND etc). These 2KB includes all 8BP and this mini BASIC. Your programs have 22 KB free for your code + 8.5 KB for graphics + 1.4 KB for music. You can develop a game in BASIC and when it is finished translate directly (very very easy) the "game cycle" (only the game cycle) into C , compile it and obtain a great & fast professional game. This game is a mix between LOCOMOTIVE BASIC and C (only for game cycle)
in 8BP v40 if you want to use only BASIC, you continue having 24 KB free for your BASIC code, like in V39
Sounds like you should be writing your own language? Make it available on the web so there's no memory limitations and no systems prejudices or problematic installations or lack of documentation to deal with and watch the ASM games come pouring in. ;D
New game created with 8bp:
https://youtu.be/cFEr7KAiLTQ
info / download ( in spanish ) - https://auamstrad.es/videojuegos/zampa-manzana-divertimento-asegurado/
(https://pbs.twimg.com/media/EZgTL3YWAAAEEBu?format=jpg&name=large)
if someone wants a cassette, fill in the form: https://auamstrad.es/retroescena/edicion-fisica-eridu/
New game: Dogfight
https://youtu.be/JhZ3kUnTlT0 (https://youtu.be/JhZ3kUnTlT0)
https://amstrad.es/doku.php?id=juegos:dogfight (https://amstrad.es/doku.php?id=juegos:dogfight)
8BP includes a 8BP wrapper (8bp.h) and a "minibasic" (minibasic.h) to make easier (like basic) develop games using C
https://www.youtube.com/watch?v=7Svxl4Gqzng (https://www.youtube.com/watch?v=7Svxl4Gqzng)
I was looking for the draft version of the documentation but I can't find it. It says in the ZIP, but where can I find this?
I would love to try this for my next game but my Spanish is too bad to understand the docs.
Quote from: eto on 17:58, 18 June 20
I was looking for the draft version of the documentation but I can't find it. It says in the ZIP, but where can I find this?
I would love to try this for my next game but my Spanish is too bad to understand the docs.
I am afraid José Javier has forgotten it in the latest version, and past versions are not in GIT. If he does not mind I share the manual of an older version of 8bp in English. Of course, quite outdated but @eto (https://www.cpcwiki.eu/forum/index.php?action=profile;u=3625) may try the basics, until last version manual is available in English.
To me it is a very good documentation. In most of the chapters you can learn a lot of CPC development even if you are not going to use 8bp... A very good job.
Hi All, does anyone know if a newer version of the English manual is available and what has changed since the English manual was created, Spanish is completely alien to me, while I did a tiny bit of French at school I never had a single Spanish lesson :( and I feel like having a go at creating a new game using 8bp.
Hi good afternoon.
the inventions for the cpc don't stop there.
thank you.
i have a cpc6128.
how can you use your programs if i want to have the range 0x4000 to 0x7fff myself?
So if the sdcc programs start at 0x8000?
does your basic also work with 0x8000?
greeting
Quote from: funkheld on 08:23, 26 July 20
Hi good afternoon.
the inventions for the cpc don't stop there.
thank you.
i have a cpc6128.
how can you use your programs if i want to have the range 0x4000 to 0x7fff myself?
So if the sdcc programs start at 0x8000?
does your basic also work with 0x8000?
greeting
well...not easy question. 8BP starts at 24000, and you want to use up to 32000. Therefore you have an overlap of 8KB. It is possible to move these 8KB from 24000 to another memory position. However it must be done carefully. It is completelly possible but imply to select the bunch of functions from 24000 to 32000 and assemble them in another address. If there is a function that part of it falls into 32000 and other part falls on another memory area, you can solve it by a simple JP assembler instruction.
in summary: it is possible, and simple to get what you want, but must be done carefully.
thank you.
I don't want to influence the program in a very complicated way.
that should be built by the inventor in such a way that only the start address has to be entered differently than is usual with other programs: sdcc, ccz80 ++, cpctelera etc.
Quote from: funkheld on 08:00, 27 July 20
thank you.
I don't want to influence the program in a very complicated way.
that should be built by the inventor in such a way that only the start address has to be entered differently than is usual with other programs: sdcc, ccz80 ++, cpctelera etc.
yes, it could be an option for C programmers. In 8BP, the start address is the maximum possible (24000) in order to allow BASIC programmers to have 24KB of BASIC and the rest for 8BP library and music and images and layout or scroll map. But of course, for c programmers it could be possible another arrangement of the memory. Other tools like cpctelera are not ready for BASIC programmers. Regarding sdcc, it is a compiler which in fact is used in 8BP for C programming. Anyway, you are right, it could be possible but it is not a disadvantage to "force" programmers to use the first 24KB to allocate their code.
I will think on the easiest way to give this additional degree of freedom to c programmers
this is a bank switch for expansion memory after $4000- $7fff
greeting
https://twitter.com/8bitsdepoder/status/1309598723429855232
https://twitter.com/8bitsdepoder/status/1319014117513089024
Looks very nice for BASIC of course, but I'm waiting to see what happens when the end of level 1 approaches :D
https://twitter.com/8bitsdepoder/status/1343320741337591808
hello, good job.
i would like more extensions for c and some interesting examples to learn with c.
spagetticocde in this way should go away.
another type of programming without lines in basic
---------------------------
340 l=0:naut[l*6+0]=100:naut[l*6+1]=160:naut[l*6+2]=220:naut[l*6+3]=-60:naut[l*6+4]=-90:naut[l*6+5]=-40:'level 0
350 l=1:naut[l*6+0]=400:naut[l*6+1]=200:naut[l*6+2]=300:naut[l*6+3]=250:naut[l*6+4]=-300:naut[l*6+5]=-300:'level 1
351 l=2:naut[l*6+0]=400:naut[l*6+1]=200:naut[l*6+2]=300:naut[l*6+3]=-400:naut[l*6+4]=0:naut[l*6+5]=-100:'level 2
352 l=3:naut[l*6+0]=400:naut[l*6+1]=400:naut[l*6+2]=50:naut[l*6+3]=50:naut[l*6+4]=-200:naut[l*6+5]=-200:'level 3
353 l=4:naut[l*6+0]=400:naut[l*6+1]=200:naut[l*6+2]=50:naut[l*6+3]=-300:naut[l*6+4]=-200:naut[l*6+5]=-400:'level 4
355 l=5:naut[l*6+0]=-500:naut[l*6+1]=-500:naut[l*6+2]=550:naut[l*6+3]=0:naut[l*6+4]=-300:naut[l*6+5]=550:'level 5
--------------------------
greeting
hello,
echo "* LOAD "ciclo.bin", 20000 *"
LOAD "ciclo.bin",20000
is error.
greeting---------------------------------
echo.
echo.
echo "***********************************************************"
echo "* FIN DEL PROCESO *"
echo "* ASEGURATE DE QUE NO EXCEDES LA DIRECCION 24000 *"
echo "* es la (highest address) de la transformacion ihx en bin *"
echo "* *"
echo "* se ha generado ciclo.dsk y dentro esta ciclo.bin *"
echo "* *"
echo "* Pasos para cargarlo en el amstrad *"
echo "* 1) carga o ensambla 8BP, con tus graficos, musica etc *"
echo "* 2) carga tu juego BASIC *"
echo "* 3) ejecuta LOAD "ciclo.bin", 20000 *"
echo "* para invocar a tu programa o rutina simplemente: *"
echo "* call <direccion de main en fichero ciclo.map> *"
echo "* *"
echo "* Para mover ciclo.bin de ciclo.dsk a otro disco debes *"
echo "* conocer su longitud: *"
echo "* longitud=Highest address - Lowest address *"
echo "* lo cargas desde ciclo.dsk *"
echo "* LOAD "ciclo.bin", 20000 *"
echo "* Y salvas en el disco donde esta tu juego *"
echo "* SAVE "ciclo.bin",b,20000,longitud *"
echo "***********************************************************"
--------------------------------------
Quote from: funkheld on 09:31, 07 January 21
hello, good job.
i would like more extensions for c and some interesting examples to learn with c.
spagetticocde in this way should go away.
another type of programming without lines in basic
---------------------------
340 l=0:naut[l*6+0]=100:naut[l*6+1]=160:naut[l*6+2]=220:naut[l*6+3]=-60:naut[l*6+4]=-90:naut[l*6+5]=-40:'level 0
350 l=1:naut[l*6+0]=400:naut[l*6+1]=200:naut[l*6+2]=300:naut[l*6+3]=250:naut[l*6+4]=-300:naut[l*6+5]=-300:'level 1
351 l=2:naut[l*6+0]=400:naut[l*6+1]=200:naut[l*6+2]=300:naut[l*6+3]=-400:naut[l*6+4]=0:naut[l*6+5]=-100:'level 2
352 l=3:naut[l*6+0]=400:naut[l*6+1]=400:naut[l*6+2]=50:naut[l*6+3]=50:naut[l*6+4]=-200:naut[l*6+5]=-200:'level 3
353 l=4:naut[l*6+0]=400:naut[l*6+1]=200:naut[l*6+2]=50:naut[l*6+3]=-300:naut[l*6+4]=-200:naut[l*6+5]=-400:'level 4
355 l=5:naut[l*6+0]=-500:naut[l*6+1]=-500:naut[l*6+2]=550:naut[l*6+3]=0:naut[l*6+4]=-300:naut[l*6+5]=550:'level 5
--------------------------
greeting
hi funkheld
you are right, these lines are difucult to understand but they are only data. They are the data of position of each astronaut at each level. The coordinates x,y of each astronaut. Therefore 2 values x 3 astronauts= 6 values per level. Thats all.
regarding C examples, I take note, and I will do it in coming videotutorials and next updates of manual. Good point
Quote from: funkheld on 09:50, 07 January 21
hello,
echo "* LOAD "ciclo.bin", 20000 *"
LOAD "ciclo.bin",20000
is error.
Have you copy the ciclo.bin to the .dsk? after the creation of ciclo.bin you must copy the file into the .dsk where is located the loader.bas
hello thanks for the help.
greeting.
hello, why do the asm only start with winape?
winape is out of date, javacpc is the program.
they should also be easily adaptable to pasmo etc.
greeting
If would be great to be able to use WinApe and JavaCPC indeed.
Hi good afternoon.
In almost all 8bp demos there are many identical poke / peek that are responsible for the graphics.
it would be nice if this poke / peek could be explained.
the confusion starts with the long lines of poke / peek.
It's not the amount of graphics games that is decisive, but the clear explanation of the poke / peek.
There is a proverb:
less is more.
"weniger ist mehr"
thanks.
greeting
Is there a current version of the documentation in English?
If not, would it make sense to have the documentation as a Wiki/Website rather than a PDF? Then we could at least easily use Google Translate.
how big(byte) can a C-program be from sdcc for 8bp?
thanks.
Hi good afternoon.
is basic 3 "ccz80 ++" and "ccz80" ???
greeting
Hi good afternoon.
at the moment i am having a hard time with the asm programs that are active in a game. the asm programs for this are written in a confusing manner and are difficult to follow.
I hope that the shortage will be remedied soon.
small complete programs should also be created soon.
you don't feel like 8bp because there are no experiences that work for us.
greeting
cpc basic 3 uses this ccz80 to compile. there is the successor ccz80 ++ if you use the cpc basic3, you can also familiarize yourself with the ccz80.it's not difficult.
greeting
Quote from: funkheld on 18:42, 10 January 21
how big(byte) can a C-program be from sdcc for 8bp?
thanks.
hi funkheld
The same as Basic, you can use the free 24kB for C code and the rest for graphics, music, etc in the same way as BASIC
However, you need the 2KB wrapper which takes around 2kB, therefore you have 22KB free for your code + 8.5KB for graphics +1.4KB for music
Quote from: funkheld on 23:55, 12 January 21
cpc basic 3 uses this ccz80 to compile. there is the successor ccz80 ++ if you use the cpc basic3, you can also familiarize yourself with the ccz80.it's not difficult.
greeting
I dont recommend basic3 because takes 16KB for internal things. The compiled program also is bigger in size than BASIC version (around 5kB) and therefore you lose around 20KB
I also advise against using basic3.if you use this ccz80 or ccz80 ++ alone, the programs have few bytes and the start address can also be relocated when compiling. ccz80 and ccz80 ++ can be expanded as required with your own asm commands and you can also change the ccz80 and ccz80 ++ own asm commands.
greeting
you can enlarge this ciclo.c as you like, eg up to 10k compiled code?
greeting
Quote from: funkheld on 19:35, 13 January 21
you can enlarge this ciclo.c as you like, eg up to 10k compiled code?
greeting
of course. You can create a full "C" program that takes 22KB compiled, or a mix BASIC + C program , sharing the 22KB between C and BASIC, for example 12KB "C" and 10 KB BASIC
https://twitter.com/8bitsdepoder/status/1361020124233400323
the sprite are not transparent, but rather square blocks are visible. 8)
greeting
Quote from: funkheld on 15:38, 15 February 21the sprite are not transparent, but rather square blocks are visible.
Really informative.
That's a well known sprites rendering thecnique very usefull when dealing with updating various sprites on screen.
That way you save a bunch of cycles, and your ass beign caught by the beam.
Did you ever played original 'Commando' or 'Gauntlet'?
They used this approach, despite being programmed on assembly.
Regarding 8BP (https://github.com/jjaranda13/8BP) the result is just impressive
what will be new in the future at 8bp?
greeting
Quote from: eto on 13:04, 10 January 21
Is there a current version of the documentation in English?
I would also love to see that ....
https://youtu.be/SaS3FCUkPpo (https://youtu.be/SaS3FCUkPpo)
https://twitter.com/8bitsdepoder/status/1422249048887726106?
https://youtu.be/8FA1oB7Xm0o
Really amazing that this is possible in Basic :-)
Quote from: funkheld on 22:42, 15 February 21
what will be new in the future at 8bp?
greeting
I will continue evolving the library, trying to build different game styles. I am thinking on my next game. Every game motivates me to improve the library
https://youtu.be/nbP9wOcpSII
https://youtu.be/qU-uAlCSz_A
https://youtu.be/N0KK9FpO8d0
@jjaranda13 (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1880) I have just scanned through the manual (in Spanish) and it is simply impressive in extension, detail and thoroughness.
It should be used as base manual to teach programming.
Wonderful job. It would have a far deeper impact on the CPC community if a complete English version were available. You may not be having the credit you deserve for such a great contribution.
I would be happy to help with translation.
Quote from: m0rtadelo on 13:40, 19 November 21I would be happy to help with translation.
That would really be a welcomed addition. Unfortunately, not being able to read Spanish has prevented me from using 8BP. Looking forward to the English version of the manual.
Thanks
Or put it on a website, so we can use Google Translate... While not perfect, it's usually close enough to properly understand it.
I was just wondering, how a Green Beret remake would be, using this engine...
Quote from: jjaranda13 on 18:15, 05 May 17
hi guys
new game "fresh fruits & vegetables" :P [size=78%]based on 8BP library, programmed in 100% locomotive BASIC[/size]
It is a platform style game with horizontal scroll
https://www.youtube.com/watch?v=rhqLdkYjXxU (https://www.youtube.com/watch?v=rhqLdkYjXxU)
For instance - this looks good and it is not even optimized! Imagine Green Beret.
Quote from: eto on 14:25, 19 November 21
Or put it on a website, so we can use Google Translate... While not perfect, it's usually close enough to properly understand it.
I would use deepl.com It is far better and provides a better translation given the context of the sentence most of the times.
https://youtu.be/7qCOgfNXBjM
New versión !!!
http://8bitsdepoder.blogspot.com/2023/06/disponible-nueva-version-v42-de-la.html
Sadly it's all in Spanish, it would be nice to put up an English translation too. :)
I just started a trial month on DeepL and ran the Spanish manual through the English, German and French translator.
No idea about the French one, but the English version is very serviceable.
German has a few glitches, but used together with the English one in case of ambiguities, it's perfectly OK.
I've written to Javier to see if he wants to host them (and if not, if he minds me sharing them).
Quote from: TheElectricMonk on 00:40, 08 March 24I just started a trial month on DeepL and ran the Spanish manual through the English, German and French translator.
No idea about the French one, but the English version is very serviceable.
German has a few glitches, but used together with the English one in case of ambiguities, it's perfectly OK.
I've written to Javier to see if he wants to host them (and if not, if he minds me sharing them).
While the DeepL trial is still going: Any other languages that are interesting for users?
I did a Greek version since there is a Greek CPC scene, and an Italian one, although I don't think I've ever seen an Italian CPC game.
Anything else I'm missing?
Quote from: TheElectricMonk on 00:40, 08 March 24I've written to Javier to see if he wants to host them (and if not, if he minds me sharing them).
Lets hope Javier approves this as I've always wanted to try this library. Looking forward to it!
Quote from: TheElectricMonk on 13:18, 08 March 24Quote from: TheElectricMonk on 00:40, 08 March 24I just started a trial month on DeepL and ran the Spanish manual through the English, German and French translator.
No idea about the French one, but the English version is very serviceable.
German has a few glitches, but used together with the English one in case of ambiguities, it's perfectly OK.
I've written to Javier to see if he wants to host them (and if not, if he minds me sharing them).
While the DeepL trial is still going: Any other languages that are interesting for users?
I did a Greek version since there is a Greek CPC scene, and an Italian one, although I don't think I've ever seen an Italian CPC game.
Anything else I'm missing?
of course! send me the link to download your english version of the manual and i will upload to 8BP github. For sure a lot of people will love it!
PD: i have not receive your message (which account have you used?)
Private message sent, let me know if you got it :)
hi guys
just available the manual in 5 languages in the repo
(ES, DE, EN,FR,GR) at https://github.com/jjaranda13/8BP (https://github.com/jjaranda13/8BP)
Also I have posted it in the 8bp blog (https://8bitsdepoder.blogspot.com/ (https://8bitsdepoder.blogspot.com/)) and twitter:
https://twitter.com/8bitsdepoder/status/1774393509530701832 (https://twitter.com/8bitsdepoder/status/1774393509530701832)
Thanks electric monk!