CPCWiki forum

General Category => Programming => Topic started by: LTronic on 14:54, 04 August 19

Title: Nicky Boom for CPC ?
Post by: LTronic on 14:54, 04 August 19
Hello,

I got my hands over a CPC 6128 Plus I have restored succesfully + ordered a Gotek drive.
As a programmer myself I am trying to put together something on it :)


I hacked a bit around this weekend with SDCC, ConvImgCPC and Arkos Tracker 2 and tried to see what could Nicky Boom look on CPC.

Right now nothing fancy, just some packed still images and intro song I have converted using AT2 (C + assembly) but I am thinking of switching to CPCTelera (would need to integrate Arkos Tracker 2 support into it).


The music is not yet played under interrupts sadly.

Do you think it's possible to achieve a port of Nicky Boom on CPC (using CPCTelera or another framework or raw C/ASM) or not ?
Would some people be interested in this project ?

Don't judge too hard, this is my first try on CPC programming and I'm neither a graphist nor musician.

Youtube link : https://www.youtube.com/watch?v=LmyWfy3PQiE (https://www.youtube.com/watch?v=LmyWfy3PQiE)

Title: Re: Nicky Boom for CPC ?
Post by: Skunkfish on 15:21, 04 August 19
I'd not heard of this game before but after watching a couple a couple of Youtube vids it looks a little terrifying (the main character sprite at least).
The main issue that you will have in porting this to the CPC is replicating the smooth scrolling of the original - targeting the Plus machines would help to resolve that issue.
P.S. Your test looks good, are you using the Plus palette or regular CPC?
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 17:29, 04 August 19
I'd not heard of this game before but after watching a couple a couple of Youtube vids it looks a little terrifying (the main character sprite at least).
The main issue that you will have in porting this to the CPC is replicating the smooth scrolling of the original - targeting the Plus machines would help to resolve that issue.
P.S. Your test looks good, are you using the Plus palette or regular CPC?


Hello,


I am targeting regular CPC so far. I did some tests on the tilemap meanwhile and yes targeting CPC+ would offer a huge improvement regarding color fidelity.
The Atari ST version does not provide smooth scrolling and is still very playable, so this might be a solution to target "old" CPC.
Also I am not sure CPCTelera framework makes use of Plus features...



Title: Re: Nicky Boom for CPC ?
Post by: teopl on 17:54, 04 August 19
I hacked a bit around this weekend with SDCC, ConvImgCPC and Arkos Tracker 2 and tried to see what could Nicky Boom look on CPC.
Right now nothing fancy, just some packed still images and intro song I have converted using AT2 (C + assembly) but I am thinking of switching to CPCTelera (would need to integrate Arkos Tracker 2 support into it)

There is example cpctelera project which uses Arkos2 player here http://www.cpcwiki.eu/forum/programming/cpctelera-arkos-2-conversion-problem/

Search for "arkos2_forum_akg.zip" attachment. I tested it with latest Arkos2 version (at the time) and works great!
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 18:15, 04 August 19
There is example cpctelera project which uses Arkos2 player here http://www.cpcwiki.eu/forum/programming/cpctelera-arkos-2-conversion-problem/ (http://www.cpcwiki.eu/forum/programming/cpctelera-arkos-2-conversion-problem/)

Search for "arkos2_forum_akg.zip" attachment. I tested it with latest Arkos2 version (at the time) and works great!


Amazing, thanks :)
Do you plan to make pull request it to integrate AT2 support to CPCTelera project ?
Title: Re: Nicky Boom for CPC ?
Post by: teopl on 18:52, 04 August 19
Well basically no :) I mean I just made automatic what was already in the Arkos2 tutorial so I guess this will be an easy job for the cpctelera maintainers if they want to do the same.

Also, you can try latest Arkos2 players since new release was in July. (I should probably update myself also)

And you can check - LW (light weight) player instead of AKG which is in the example project.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 19:48, 08 August 19
Hello,


I made progress, I have the whole intro working fine with music played under interrupts with CpcTelera + AT2 thanks to your help :)


I need a bit of advice from the gurus, I am working from the game engine rewritten in C by Gregory Montoir a decage ago.
I managed to get everything compiling fine with SDCC but sadly it's way too big, around 50 KB of code.


I'm sure there is room for improvement, the generated Z80 assembly looks really fat especially due to pointer arithmetic and 16-bit calculations.

I already use --opt-code-size and played around with --max-alloc-per-node SDCC options.



Any tip ?
Should I rewrite routine per routine in Z80 assembly ? If so, do you think it will bring enough improvement to make it "loadable" ?


Thanks a lot :)


Title: Re: Nicky Boom for CPC ?
Post by: Sykobee (Briggsy) on 19:52, 08 August 19
Certainly you will want to optimise the inner loops, if only to reduce the size of the code and unnecessary use of 16-bit values, and so on.


Also, does that code have per-level code, or is it one big engine? There's always multi-load if there is a lot of per-level code.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 20:06, 08 August 19
Certainly you will want to optimise the inner loops, if only to reduce the size of the code and unnecessary use of 16-bit values, and so on.


Also, does that code have per-level code, or is it one big engine? There's always multi-load if there is a lot of per-level code.


Okay thanks a lot.
Sadly it's a one-engine for everything. I removed "Nicky Boom 2" specific code which enables to hardcode a simplify a bunch of things but it still feels a loooot of code.
My idea was to split the "intro" (logos + main screen + intro) into one binary and the core game in another one, loaded when you start the game.
The intro binary is already OK and functional, but I need to remove the bloat from the core game binary one.

Title: Re: Nicky Boom for CPC ?
Post by: Sykobee (Briggsy) on 14:26, 09 August 19
Well, you could do it as a plus cart - there's 512KB there between code and assets :)


You might need to see what code paths are 'hot' - i.e., ran every game loop, and which ones are run outside of the game loop, which can maybe be treated differently.


You might need to cut down features, e.g., if each enemy has its own code path for its "AI" then maybe you'll have to drop some of the variants.



Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 15:44, 09 August 19
Well, you could do it as a plus cart - there's 512KB there between code and assets :)


You might need to see what code paths are 'hot' - i.e., ran every game loop, and which ones are run outside of the game loop, which can maybe be treated differently.


You might need to cut down features, e.g., if each enemy has its own code path for its "AI" then maybe you'll have to drop some of the variants.


Targeting a cartridge is a really good idea. I was already hesitating to target CPC plus or regular CPC.
I will continue "regular" optimization and 8-bit specific tweaks to make sure I start on a sane basis then might move to CPC+ / .CPR target.


Will keep reporting progress on this thread for sure and thanks for the wise advices ;)
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 20:07, 10 August 19
Hello,
first of all, using existing game C code from another platform to convert to CPC is really an interesting project.

I managed to get everything compiling fine with SDCC but sadly it's way too big, around 50 KB of code.
I already use --opt-code-size and played around with --max-alloc-per-node SDCC options.

About compiler options you can use peepholes optimizations (gain about 400kb) :
Code: [Select]
Z80CCFLAGS    :=  --peep-file ${CPCT_PATH}/tools/sdcc-3.6.8-r9946/peep/z88dk_speculative_peepholes.def --max-allocs-per-node 8000 --opt-code-size
About manual code optimization, try to use u8 variables if possible, and when using pointer member or global variable several time in function, copy it to local variable :

Code: [Select]
u8 counter = (u8)object->_counter;

if (timer != counter)
object->_spriteInfo._sprite = spritesState[index + (counter < timer ? 0 : 1)];

And of course you can compress data with zx7


Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 20:51, 10 August 19
Hello,
first of all, using existing game C code from another platform to convert to CPC is really an interesting project.

About compiler options you can use peepholes optimizations (gain about 400kb) :
Code: [Select]
Z80CCFLAGS    :=  --peep-file ${CPCT_PATH}/tools/sdcc-3.6.8-r9946/peep/z88dk_speculative_peepholes.def --max-allocs-per-node 8000 --opt-code-size
About manual code optimization, try to use u8 variables if possible, and when using pointer member or global variable several time in function, copy it to local variable :

Code: [Select]
u8 counter = (u8)object->_counter;

if (timer != counter)
   object->_spriteInfo._sprite = spritesState[index + (counter < timer ? 0 : 1)];

And of course you can compress data with zx7


Thanks a lot !
Yes indeed, I think it is an interesting challenge.
Using
Code: [Select]
--opt-code-size --max-allocs-per-node 200000 it does generate a 42 KB binary file fitting into memory space, but the code needs then to load a lot of data.
I tried the peephole optimizations, sadly it did not work, I add to disable one of them (was causing addressing error on "ld l, 0" mnemonic).
Rebuild and now the linker fails with a lot of
Code: [Select]
?ASlink-Warning-Undefined Global popping on what looks like every exported symbol (C functions not being static..).


Any idea ? I looked at the peephole file and it looks very interesting indeed...
Meanwhile I will try your manual optimizations tricks. I am used to the C compiler doing this kind of optimization for me  ;D
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 21:04, 10 August 19
I tried the peephole optimizations, sadly it did not work, I add to disable one of them (was causing addressing error on "ld l, 0" mnemonic).
Well, no ready-made solution.
Rarely peephole generate error, in this case i try to modify my C code until it works (sorry no example in mind to help you).
If peep-hole optimization doesn't work, try manual optimization first.

And i forgot, ternary operator can also do good optimizations

Rebuild and now the linker fails with a lot of
Code: [Select]
?ASlink-Warning-Undefined Global popping on what looks like every exported symbol (C functions not being static..).

try :
make cleanall all


Meanwhile I will try your manual optimizations tricks. I am used to the C compiler doing this kind of optimization for me  ;D

You could have important gain, but you have to modify code, compile, compare with previous compilation, and so on.

Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 17:08, 11 August 19
I am refactoring game into 16KB modules in order to accomodate the memory limits and layout.
Here is the current state of my thoughts, let me know if I am on the right track (or not).
Any idea is welcome.


Though stuff :
- Tilemap is currently 20000 bytes per level, I will need to get it down to 16384 bytes. I am in touch with a guy who wrote a level editor so it might ease the pain.
- Can I use all the RAM in BANK 2 ? I know there is firmware / AMSDOS stuff in.... Once I am into a level it's fine, but I will need to load next level and resort to firmware for disc loading, right ? Any way to restore it ?
- TILES already fit in 16 KB. GAMEOPS too. KERNEL should be okay. Not SPRITES, neither GLOBALS, neither GAME, but I should be able to do it by simplifying the game code a bit.

Code: [Select]


-----------
- Objects -
-----------
KERNEL : system code (sound, render, syscalls, bankswitching)
GAME : game "main" code
GAMEOPS : game "logic" code
GLOBALS : global variables
TILES : tile bitmap data
TILEMAP : tilemap data
SPRITES : sprite bitmap data


---------------
- Bank Layout -
---------------
BANK0 : KERNEL
BANK1 : USER
BANK2 : DATA
BANK3 : VRAM


-------------
- RAM banks -
-------------
RAM0 : KERNEL (CODE)
RAM1 : GAME (CODE)
RAM2 : GLOBALS (DATA)
RAM3 : VRAM
RAM4 : GAMEOPS (CODE)
RAM5 : TILES (BITMAP)
RAM6 : SPRITES (BITMAP)
RAM7 : TILEMAP (DATA)


---------------------------------------------------------------------
- Code States                                                       -
---------------------------------------------------------------------
-                           BANK 0  BANK 1      BANK 2      BANK 3  -
---------------------------------------------------------------------
BOOT            (0 1 2 3) : KERNEL ?    ?     VRAM
GAME            (0 1 2 3) : KERNEL  GAME        GLOBALS     VRAM
GAMEOPS         (0 4 2 3) : KERNEL  GAMEOPS     GLOBALS     VRAM
COPY_TILEMAP    (0 7 2 3) : KERNEL  TILEMAP     GLOBALS     VRAM
RENDER_TILEMAP  (0 5 2 3) : KERNEL  TILES       GLOBALS     VRAM
RENDER_SPRITES  (0 6 2 3) : KERNEL  SPRITES     GLOBALS     VRAM


-------------------
- State switching -
-------------------
BOOT           -> GAME
GAME           -> GAMEOPS
GAMEOPS        -> GAME
GAME           -> COPY_TILEMAP
COPY_TILEMAP   -> GAME
GAME           -> RENDER_TILEMAP
RENDER_TILEMAP -> GAME
GAME           -> RENDER_SPRITES
RENDER_SPRITES -> GAME


Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 17:22, 11 August 19
double post sorry
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 10:38, 12 August 19
Hi,
are your tilemaps and graphics already compressed ?

You can disable firmware and reenable it just for loading level,
but you have to keep this area [0xA67C .. 0xAC00] (AMSDOS reserved area) free.

Code: [Select]
u16 fwRomPtr= cpct_disableFirmware();
cpct_setInterruptHandler(myInterruptFunction);

// Read Level on disc
cpct_reenableFirmware(fwRomPtr);

ReadLevelOnDiscFunction();

fwRomPtr = cpct_disableFirmware();
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 15:31, 12 August 19
Hi,
are your tilemaps and graphics already compressed ?

You can disable firmware and reenable it just for loading level,
but you have to keep this area [0xA67C .. 0xAC00] (AMSDOS reserved area) free.

Code: [Select]
u16 fwRomPtr= cpct_disableFirmware();
cpct_setInterruptHandler(myInterruptFunction);

// Read Level on disc
cpct_reenableFirmware(fwRomPtr);

ReadLevelOnDiscFunction();

fwRomPtr = cpct_disableFirmware();


Thanks a lot for the clarification on the AMSDOS area. Makes a lot of sense.


The tilemap is not compressed, I started yesterday writing a tool to reprocess most of the game data to squeeze out the most possible of the limited RAM.
I splitted each 400x50 tilemap level data into 40x50 tilemaps compressed with ZX7B which is large enough since one screen will be a sub-portion of 20x10. The problem so far is that game does modify tilemaps at runtime (you can "create" bridge using wood bonus to progress, destroy platforms and so on...). I have no solution so far except of course recrunching the modified tilemap at runtime, and add some padding between sub-sections of tilemaps since I do not how know 100% for sure how much bytes the crunching process will end up.


Another approach would be to have kind of "delta table" to apply to original tilemap but it could quickly become complicated and costy in terms of CPU usage when rendering tilemaps to check this delta table.


Do you think it is "viable" to crunch tiles data and sprites data (bitmap) and uncrunch at runtime or is it too much ?
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 15:32, 12 August 19
double post again...

Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 16:00, 12 August 19
Is the game not linear ?
Can we go back to previous levels or just to special places like store or bonus stage ?
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 16:38, 12 August 19
You can't go back to a previous level but the tilemap is 400x50 tilemap per level, coded on 8 bits.
I ran some heuristics and while each tiles bitmap is made of 256 tiles, between 177 and 233 tiles are used, so no way to reduce the 8-bit coding to 7-bit of something else.
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 21:12, 12 August 19
Well,
i think the easier solution in first time is to make a version for 128k.
You won't need firmware anymore and you'll have 64k more to store all levels.

And once it works, you can try to load levels from disk.

Title: Re: Nicky Boom for CPC ?
Post by: Sykobee (Briggsy) on 11:43, 13 August 19
If 233 tiles are used, then maybe the spare tiles can be used for the mutable tiles, depending on the number of mutable blocks.


A bridge, for example, could be allocated tile 255. There can also be a flag set or unset, depending on bridge visibility. When rendering, check the flag. If unset, render 'air', if set, render 'bridge'. Sure, this might only mean you can have 20-70 bridges, destructable blocks, etc, in a level, and I don't know if that's enough.


Also whilst you might want *all* the graphics, it may be prudent to selectively eradicate some that don't add value. But this is probably not going to gain much except reduce the tileset size (not a massive worry on a cart or multiload 128KB), and allow more mutable blocks. And possibly aid compressibility.


Another option is to analyse the level layout, and see if there are any 'bottlenecks' (single route between map areas) in the layout, where you can split a level into two or more levels. If the map is very open (like Turrican) this won't be an option.


And finally, if you are happy to do some map editing, instead of having 1 byte = 1 tile, consider 1 byte = 2x2 tiles (5KB level, not 20KB), and have a lookup table of those tiles. A common way to save map data on 8-bits. Also on a cart/multi-load 128KB the large level size isn't an issue, although nice to fit it into 16KB.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 18:44, 13 August 19
If 233 tiles are used, then maybe the spare tiles can be used for the mutable tiles, depending on the number of mutable blocks.


A bridge, for example, could be allocated tile 255. There can also be a flag set or unset, depending on bridge visibility. When rendering, check the flag. If unset, render 'air', if set, render 'bridge'. Sure, this might only mean you can have 20-70 bridges, destructable blocks, etc, in a level, and I don't know if that's enough.


Also whilst you might want *all* the graphics, it may be prudent to selectively eradicate some that don't add value. But this is probably not going to gain much except reduce the tileset size (not a massive worry on a cart or multiload 128KB), and allow more mutable blocks. And possibly aid compressibility.


Another option is to analyse the level layout, and see if there are any 'bottlenecks' (single route between map areas) in the layout, where you can split a level into two or more levels. If the map is very open (like Turrican) this won't be an option.


And finally, if you are happy to do some map editing, instead of having 1 byte = 1 tile, consider 1 byte = 2x2 tiles (5KB level, not 20KB), and have a lookup table of those tiles. A common way to save map data on 8-bits. Also on a cart/multi-load 128KB the large level size isn't an issue, although nice to fit it into 16KB.


Thanks a lot !


I am into the process of making some tools to optimize / edit the game data, saving every possible byte.


I am more and more considering targeting a cart... Is there any tutorial / instructions regarding building a cart (.CPR) using SDCC toolchain ?
Title: Re: Nicky Boom for CPC ?
Post by: NiNxPe on 01:11, 18 August 19
Level 1 Old :
(http://www.cpcwiki.eu/forum/programming/nicky-boom-for-cpc/?action=dlattach;attach=29353;image)

Level 1 Plus :
(http://www.cpcwiki.eu/forum/programming/nicky-boom-for-cpc/?action=dlattach;attach=29355;image)
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 01:55, 18 August 19
Level 1 Old :
(http://www.cpcwiki.eu/forum/programming/nicky-boom-for-cpc/?action=dlattach;attach=29353;image)

Level 1 Plus :
(http://www.cpcwiki.eu/forum/programming/nicky-boom-for-cpc/?action=dlattach;attach=29355;image)


Yes, you're right.
I am preparing a tech demo DSK with intro screens, a small portion (10%) of the level 1 tilemap being scrollable and music.
What are your thoughts guys ? Go "Plus" or Go "Old" ?


Pros for "Old" :
- It would work everywhere (if I can manage to reduce data and code enough).
- I can work with CPCTelera without hacking building scripts


Cons for "Old" :
- It will be less close to original game.
- I will have to fight for months to fit the game into it, if even possible...
- No smooth scrolling


Pros for "Plus" :
- I am 100% sure I can fit it in 512K CPR file for Plus
- Graphics would be exactly like the tilemap you attached (I ran same tests)


Cons for "Plus" :
- Is there any interest in a "Plus" only release ?
- I will have to deal with custom scripts to build CPR file
- I will need to learn how to use Plus specific features (pixel scrolling at least)


Let me know :)
Title: Re: Nicky Boom for CPC ?
Post by: robcfg on 02:16, 18 August 19
Actually, if you use a DanDanator for the CPC old, you'll have the benefits of the cartridge for it.


I voted for Plus, as I think it's time to see more games for it.
Title: Re: Nicky Boom for CPC ?
Post by: jesusdelmas on 05:22, 18 August 19
You should do it for the normal cpc, 99% of this comunitty will thank you, and also with the cpc dandanator you wont have many problems fitting the game :)
Title: Re: Nicky Boom for CPC ?
Post by: XeNoMoRPH on 09:23, 18 August 19
i don't have cpc+ at the moment , so i voted for old cpc hehe , i have dandanator too  :P
Title: Re: Nicky Boom for CPC ?
Post by: andycadley on 13:05, 18 August 19
The Plus really needs a title to show off just what it is capable of and this would be a great fit. The extra features aren't particularly hard to use and making it look better than the ST version with smooth scrolling would be the icing on the cake.


Choosing the Plus hardware for a cartridge is also arguably less esoteric than something like a Dandanator, so more people would get to play the end product.
Title: Re: Nicky Boom for CPC ?
Post by: robcfg on 13:14, 18 August 19
The DanDanator works very similar to the Plus cartridge, so it is not esoteric at all. The great advantage is that it works on regular CPC machines.


In my eyes, the Plus series deserve a little love despite its flaws.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 00:26, 19 August 19
Am I missing something or there is no "firmware friendly" code for Arkos Tracker 2 playback ?


I can see the code it's using heavily the Z80 alt registers.


In AT1 code bundled with CPCTelera there is a PLY_SystemFriendly value use to generate such code..


Once I have started music even if I stop properly using PLY_AKG_Stop and restoring firmware I can't do anymore loading (which kinda sucks).

Title: Re: Nicky Boom for CPC ?
Post by: Targhan on 00:43, 19 August 19
You have to do it yourself, as most of time, you don't need to do it. It is specific to your use case, and it's not hard to do.
You may need to save all the registers, or only the ones used by the system (AF', BC', IX, IY). Simply use the snippet from AT1 if you want to.

There is also a Basic wrapper in the latest version, which does that (in the AKG/testers), you can extract the code from it.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 02:09, 19 August 19
You have to do it yourself, as most of time, you don't need to do it. It is specific to your use case, and it's not hard to do.
You may need to save all the registers, or only the ones used by the system (AF', BC', IX, IY). Simply use the snippet from AT1 if you want to.

There is also a Basic wrapper in the latest version, which does that (in the AKG/testers), you can extract the code from it.


Thank you so much it works !!!
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 02:20, 19 August 19
Hi guys,


Here is attached a demo of my current status of this project.
As you will see I do not know how to keep mode 0 active while loading (firmware active).. If possible, I can guess I should hook firmware interrupt handler ?


Hope you enjoy it, took me a lot of labour.

Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 12:43, 19 August 19
Hi,
good start, finally how memory takes the level ?


As you will see I do not know how to keep mode 0 active while loading (firmware active).. If possible, I can guess I should hook firmware interrupt handler ?

You have also to set the Mode for firmware (and palette is you want)

Here assembly file :
Code: [Select]
void SetFWMode(u8 border)


Title: Re: Nicky Boom for CPC ?
Post by: Shining on 13:08, 19 August 19

Thanks a lot !


I am into the process of making some tools to optimize / edit the game data, saving every possible byte.


I am more and more considering targeting a cart... Is there any tutorial / instructions regarding building a cart (.CPR) using SDCC toolchain ?


Are you developing under windows? For my schnapps demo I've written a tool, to build a cart together. And I use also SDCC for some parts...
You can give the tool a bin-file and say in which cart-page the file should put in. Also you can add an offset to include more than one file per page.
If a file is bigger than 16kb it will be put in several pages...
Title: Re: Nicky Boom for CPC ?
Post by: Shining on 13:11, 19 August 19
And keep in mind, that you start up from scratch on a cart. Normally there is no operating system...
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 13:20, 19 August 19
I started on Windows, switched to Linux since I use SDDC 3.9 snapshot which give better compilation results (and working peepholes file) but do not work for some reason with Cygwin, probably an environment problem.

I am interested in your tool if you can share it.


Regarding memory, the tiles fit in 16K page, the tilemap is split from (400x50) to ten (40x50) subzones so far.
I will start looking at making a simple cart from this, and I think I should then be able to move forward.
Title: Re: Nicky Boom for CPC ?
Post by: andycadley on 15:13, 19 August 19
And keep in mind, that you start up from scratch on a cart. Normally there is no operating system...


Honestly that typically makes it a lot easier though. You stop having to worry about the firmware getting in the way and, since everything is in ROM somewhere, don't need to faff about with loading routines.
Title: Re: Nicky Boom for CPC ?
Post by: Shining on 15:38, 19 August 19
Put it in the wiki:


http://www.cpcwiki.eu/index.php/Bin2cart (http://www.cpcwiki.eu/index.php/Bin2cart)


I've also written a tool to convert a sprite, wich was converted with convimgcpc to a plus-sprite.


It works like this:


Convimgcpc-output:


Code: [Select]

        DB      #C0, #C0, #C0, #D0, #E4, #40, #C0, #C4
        DB      #C0, #C0, #C0, #F0, #F0, #CC, #C0, #D8
        DB      #C0, #C0, #B4, #B4, #F0, #E4, #CC, #F0
        DB      #C0, #D0, #78, #3C, #78, #8C, #8C, #CC
        DB      #C0, #50, #3C, #3C, #F0, #18, #30, #0C
        DB      #80, #D8, #3C, #78, #F0, #0C, #30, #24
        DB      #80, #D8, #F0, #F0, #D8, #4C, #64, #64
        DB      #80, #CC, #CC, #CC, #8C, #4C, #64, #CC
        DB      #80, #30, #10, #24, #0C, #64, #8C, #30
        DB      #80, #00, #04, #0C, #0C, #64, #18, #30
        DB      #C0, #00, #10, #CC, #0C, #24, #08, #18
        DB      #C0, #80, #00, #4C, #18, #18, #20, #24
        DB      #C0, #C0, #80, #00, #30, #20, #00, #30
        DB      #C0, #C0, #C0, #00, #00, #00, #10, #30
        DB      #C0, #C0, #C0, #C0, #80, #10, #30, #20
        DB      #C0, #C0, #C0, #C0, #C0, #80, #00, #00


gets converted to:


Code: [Select]
        DB      #01,#01, #01,#01, #01,#01, #01,#05, #05,#03, #00,#01, #01,#01, #01,#03
        DB      #01,#01, #01,#01, #01,#01, #05,#05, #05,#05, #03,#03, #01,#01, #03,#05
        DB      #01,#01, #01,#01, #05,#06, #05,#06, #05,#05, #05,#03, #03,#03, #05,#05
        DB      #01,#01, #01,#05, #06,#05, #06,#06, #06,#05, #03,#02, #03,#02, #03,#03
        DB      #01,#01, #00,#05, #06,#06, #06,#06, #05,#05, #02,#04, #04,#04, #02,#02
        DB      #01,#00, #03,#05, #06,#06, #06,#05, #05,#05, #02,#02, #04,#04, #04,#02
        DB      #01,#00, #03,#05, #05,#05, #05,#05, #03,#05, #02,#03, #04,#03, #04,#03
        DB      #01,#00, #03,#03, #03,#03, #03,#03, #03,#02, #02,#03, #04,#03, #03,#03
        DB      #01,#00, #04,#04, #00,#04, #04,#02, #02,#02, #04,#03, #03,#02, #04,#04
        DB      #01,#00, #00,#00, #00,#02, #02,#02, #02,#02, #04,#03, #02,#04, #04,#04
        DB      #01,#01, #00,#00, #00,#04, #03,#03, #02,#02, #04,#02, #02,#00, #02,#04
        DB      #01,#01, #01,#00, #00,#00, #02,#03, #02,#04, #02,#04, #04,#00, #04,#02
        DB      #01,#01, #01,#01, #01,#00, #00,#00, #04,#04, #04,#00, #00,#00, #04,#04
        DB      #01,#01, #01,#01, #01,#01, #00,#00, #00,#00, #00,#00, #00,#04, #04,#04
        DB      #01,#01, #01,#01, #01,#01, #01,#01, #01,#00, #00,#04, #04,#04, #04,#00
        DB      #01,#01, #01,#01, #01,#01, #01,#01, #01,#01, #01,#00, #00,#00, #00,#00


Where colour 0 from the original gets trasparent on sprite.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 01:41, 20 August 19
Thanks to everyone :)

I will go to the plus / CPR route.
Firmware is indeed PITA to deal with.
Title: Re: Nicky Boom for CPC ?
Post by: jesusdelmas on 06:09, 20 August 19
Oh.. you go for the plus series, sad news for 3000 people of this forum :'(  but 3 people will be very happy hehe.


Anyway you are the programer so you can do what you want do and its perfect, i just liked the game for the real amstrad hehe.
Title: Re: Nicky Boom for CPC ?
Post by: robcfg on 07:47, 20 August 19
If you want it so badly on regular CPCs, you can port it yourself  :P
Title: Re: Nicky Boom for CPC ?
Post by: Shining on 08:00, 20 August 19
Oh.. you go for the plus series, sad news for 3000 people of this forum :'(  but 3 people will be very happy hehe.


Anyway you are the programer so you can do what you want do and its perfect, i just liked the game for the real amstrad hehe.
I don't think so:there are much more plusses that 3.
Think only about those >50 gx4000 an uk seller sold 2-3 years ago over ebay.co.uk....I bought mine there and it was priced 50€ and was mint.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 16:23, 20 August 19
Oh.. you go for the plus series, sad news for 3000 people of this forum :'(  but 3 people will be very happy hehe.


Anyway you are the programer so you can do what you want do and its perfect, i just liked the game for the real amstrad hehe.


If possible I can do both but right now I am not sure.
Title: Re: Nicky Boom for CPC ?
Post by: jesusdelmas on 19:35, 20 August 19
If you want it so badly on regular CPCs, you can port it yourself  :P


Im not saying nothing bad about the game being develop for the plus series, the programes has the right of doing what he want to and its fine, i just said that more than 90% of the amstrad comunitty prefer games on the clasic amstrad, and thats a fact. Anyway im happy for the plus series too, forgotten machine with lots of capabilities
Title: Re: Nicky Boom for CPC ?
Post by: Sykobee (Briggsy) on 15:48, 21 August 19
I'm happy for a cart / c4cpc image :)


Indeed it may indeed be possible to refactor the game for the original CPCs as well - with the limitations of scrolling and software sprites - but I'd love to see a good plus platformer.
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 16:12, 21 August 19
I instinctively voted for 'old' but then changed my vote. I'd really love a title to show off the Plus capabilities!
Title: Re: Nicky Boom for CPC ?
Post by: trocoloco on 18:21, 21 August 19
I voted for old CPC but I was really looking for a "Both" button. In any case it's all good, Plus machines deserve some love too and as others forum members, I also think that this game would really shine in it and perhaps even using the possiblity of samples for music or fx.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 12:09, 22 August 19
I have both game rendering and partial game logic working right now but it needs some debug (buggy character / tilemap collision right now).Hopefully next step should be the demo map playable with main character but no enemies.


I need to refactor / shrink the data structures of the game which are the main culprit.
Each object is 39 bytes in memory, up to 453 of them.Each animation is 43 bytes in memory, up to 282 of them.


I will probably need to decimate maximum amount of animations to 256 so I can use 8-bit index instead of 16-bit index or pointer to save memory on these "live" structures.
This would also help optimize the code making far too much use of 16-bit and pointer calculation leading to huge generate code size, even if I mitigated in a lot meanwhile).
I think I will need to write an animation editor in order to do this and "relink" each animation frame properly (Original game use kind of linked list).

So I'm working on the codebase and tools for conversion :
=> Tool to batch process and shrink all the original data (called convcpc) including tileset, tilemap, tile flags, monster data, various helper data
=> Tool to dump all sprites and automatically resize and convert to CPC format


Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 12:17, 22 August 19
(removed formatting to make it more readable and get rid of some text tags)
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 23:59, 23 August 19
Hello,


I have converted all the original Amiga MODs using Arkos Tracker 2, my basic knowledge of soundtracking software and well... trial and error.
I'm no musician sadly, so I am a bit stuck.
The current result is sometimes good, sometimes ugly.

I am 200% sure it could be waaaay better even if I understand the 3 channels limit and the AY chip is nothing compared to Amiga sample playback capabilities.
All the original MODs share the same 15 instruments so I think it's basically finding / building the right ones and adjusting (I transposed everything by -24 so 2 octaves down if I am right and it seems to sound not too bad most of the time).

If anyone is willing to have a look at it, I have attached my current AKS file (AT2 latest build) and original MOD files.
Of course any people helping on this will be credited properly.


Thank you for any good will :)

Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 00:33, 29 August 19
Sorry, but I need help again.
I got the whole game code fitting, I have a small kernel and the game code splitted into two 32KB banks with a system of trampolines for calling routines between modules.
I am relinking the 3 modules with a little bash magic by parsing the symbols table / map table files and generating header files with addresses.


It seems to work fine but my efforts are plagued by some bug in iDSK tool.


I tried iDSK-013 from CPCTelera 1.4.2, I tried latest GitHub iDSK from cpcsdk GitHub compiled from source, but the behaviour of it is not consistent, it seems to randomly fail to add a file to DSK (I can see the error message Cannot open nicky.dsk) and/or to provide corrupt DSK files.

Has anyone encountered the issue ?
I already had the issue on Windows 10 with Cygwin64, switched to an Ubuntu 18.04 x64 VM, same issue...
Any other tool to circumvent the issue ?


Also I'm having hard time debugging the code (I have some random crashes at game startup, hard to reproduce). I am using RetroVM but is there any better option to debug a SDCC / CPCTelera project ?


I am considering opening my GitHub private repo as soon as I have something stable.
I can provide source code meanwhile if you want to have a look it's fairly documented and easy to build.


PS : Anyone interested for help on the music side ? I would not also mind some graphic help at a later stage.
Title: Re: Nicky Boom for CPC ?
Post by: Targhan on 00:54, 29 August 19
I don't have time to help on the music side (but I can help on the use of AT2), sorry.
However, my advice is to convert the music from scratch, don't try to use/emulate the original sound, it is only a loss of time in my opinion, and the result will not be optimum for the PSG. Any good musician can convert the song from ear or from the original music on the side, and will create the right sounds directly in AT2 (for example). If the musician can not... Then don't bother with him, and ask for another one :).
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 06:46, 29 August 19
I don't have time to help on the music side (but I can help on the use of AT2), sorry.
However, my advice is to convert the music from scratch, don't try to use/emulate the original sound, it is only a loss of time in my opinion, and the result will not be optimum for the PSG. Any good musician can convert the song from ear or from the original music on the side, and will create the right sounds directly in AT2 (for example). If the musician can not... Then don't bother with him, and ask for another one :) .


No problem and thanks for your help. I know some pro chiptuners (so they would probably charge) but no one with AT2/AY experience so I will try to sort that later.
Title: Re: Nicky Boom for CPC ?
Post by: TotO on 11:02, 29 August 19
I have voted for "Plus machines on a 512K cart" because you have a PLUS, so do for your computer first.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 23:34, 01 September 19
Hello,

Here is attached a current DSK of the project.
Please bear the pink background and intentional "crash" if going far right of the map limit (40x50, I have space to extend to 50x50 easily, maybe 80x50).


I have some issues using transparency sprites with cpctelera cpct_drawSpriteMaskedAlignedTable, I don't know why, my table alignment is correct (checked map file) and I tried every pen possible.


I am happy to give access to my GitHub to anyone interested in, just drop me a PM.


Any feedback welcome as usual ;)
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 20:04, 02 September 19
Hi,
nice to see your project process but i wasn't able to run your game.

I use winape (with cpc+ configuration) and run"nicky"

For cpct_drawSpriteMaskedAlignedTable the transparency colour must be only 0
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 20:12, 02 September 19
Hi,
nice to see your project process but i wasn't able to run your game.

I use winape (with cpc+ configuration) and run"nicky"

For cpct_drawSpriteMaskedAlignedTable the transparency colour must be only 0


Oh.. I will try tonight on WinAPE to fix it.


So if only transparence color 0 why can we generate tables for every pen ?
Title: Re: Nicky Boom for CPC ?
Post by: Xifos on 20:19, 02 September 19
Hello Ltronic,
Can you tell how you are performing the scrolling ?
Are you drawing each background tiles at every frame ?
And then drawing the sprite without saving/restoring background ?
 :) 
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 20:21, 02 September 19
So if only transparence color 0 why can we generate tables for every pen ?

If you create your own transparency tables for another color it should work.
The tables provided by cpctelera are done for only color 0.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 22:54, 02 September 19
If you create your own transparency tables for another color it should work.
The tables provided by cpctelera are done for only color 0.


I don't really got it I think.
For me color 0 = pen 0 and is the same as palette index 0, am I wrong ?


Regarding the DSK it's working for me on WinAPE 2.0b2 (using wine on OS X but should not matter).
There's a long back screen at startup doing multi load then a second big loading sequence at game startup.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 22:58, 02 September 19
Hello Ltronic,
Can you tell how you are performing the scrolling ?
Are you drawing each background tiles at every frame ?
And then drawing the sprite without saving/restoring background ?
 :)


Hello Xifos,
It's really barebones so far, and yes I am re-rendering the whole tilemap (each tile) at each frame because I am too short on memory to do some double buffering. And there's no real "scrolling" now I don't have into account X/Y scrolling [0-15] values the game passes back to the CPC engine (kernel) and just take into account the origin X/Y tile offsets.


I am aware of both soft scroll and hard scroll (video memory offset) methods but so far my tries were plagued :)


Any tip is welcome as I'm still learning.
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 23:02, 02 September 19
I don't really got it I think.
For me color 0 = pen 0 and is the same as palette index 0, am I wrong ?
Yes, it's right

Regarding the DSK it's working for me on WinAPE 2.0b2 (using wine on OS X but should not matter).
There's a long back screen at startup doing multi load then a second big loading sequence at game startup.
Just tried again, i have got Microid logo, i wait then either reboot or stuck.



Title: Re: Nicky Boom for CPC ?
Post by: Xifos on 00:13, 03 September 19

Hello Xifos,
It's really barebones so far, and yes I am re-rendering the whole tilemap (each tile) at each frame because I am too short on memory to do some double buffering. And there's no real "scrolling" now I don't have into account X/Y scrolling [0-15] values the game passes back to the CPC engine (kernel) and just take into account the origin X/Y tile offsets.


I am aware of both soft scroll and hard scroll (video memory offset) methods but so far my tries were plagued :)


Any tip is welcome as I'm still learning.
On cpc old (i mean not the plus), that is not easy to answer.
 :(
Hardware scrolling for a game like nicky boom would be at best like the one in prehistorik 2 and super cauldron (it is very hard to do, drawing sprite becomes complicated, you have to do split screen, use crtc register 5, crtc register 3...).
Software scrolling would be like the ones in batman the movie, robocop, stormlord.
But very hard to have such frame rates with software scrolling (i never understood how they could do such good software scrollings in these games).
But it is more like what you are doing : draw background tiles (with a byte offset for horizontal scrolling), and sprites.
And they managed to have double buffer (even with 64 k), which is hard to avoid in this situation...
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 00:39, 03 September 19
Just tried again, i have got Microid logo, i wait then either reboot or stuck.


Wow that's strange. Can you share more information your your WinAPE version ?
I am using 2.0b2 with default configuration (Plus and ParaDOS right ?)
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 20:11, 03 September 19
Wow that's strange. Can you share more information your your WinAPE version ?
I am using 2.0b2 with default configuration (Plus and ParaDOS right ?)
It works ! I don't why my winape was configured with 64k.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 21:36, 03 September 19
It works ! I don't why my winape was configured with 64k.


Great :)
I reworked my tile and sprite data to make sure they share the same palette with pen 0 (ugly pink) as transparent color (palette index 0), still transparency does not work.
Really weird I traced the assembly code with RetroVM + breakpoint and I can't find the issue.
Using cpctelera 1.5.
The example provided works fine still...

I also reworked the tilemap rendering to redo the job only when necessary, big speed boost :)
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 21:51, 03 September 19
I reworked my tile and sprite data to make sure they share the same palette with pen 0 (ugly pink) as transparent color (palette index 0), still transparency does not work.
Really weird I traced the assembly code with RetroVM + breakpoint and I can't find the issue.
Using cpctelera 1.5.
The example provided works fine still...
Take one of your sprites generated and use it in the cpctelera example. You'll see if it's your sprites or your code who is causing the problem.

I also reworked the tilemap rendering to redo the job only when necessary, big speed boost :)
:)
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 00:28, 04 September 19
Take one of your sprites generated and use it in the cpctelera example. You'll see if it's your sprites or your code who is causing the problem.
 :)


It works. Turned out I was corrupting the mask table by a stupid memset..
Implemented preliminary dirty rect system, updated demo attached.


Thanks for your help again :)
Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 19:56, 04 September 19
It really better, the game is playable at this speed and Nicky is recognizable.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 20:31, 04 September 19
It really better, the game is playable at this speed and Nicky is recognizable.


Thanks a lot !
Any advice for crunching tiles and sprites ? I am planning on using LZ48.
Also a lot of sprites in original game are duplicated because flipped horizontally, I was thinking of remapping them and use cpctelera 1.5 drawHFlipSprite functions right or would it be too slow ?

Title: Re: Nicky Boom for CPC ?
Post by: Arnaud on 21:15, 04 September 19
Thanks a lot !
Any advice for crunching tiles and sprites ? I am planning on using LZ48.
LZ48 is really faster than ZX7 and was coded for this kind of purpose.

Also a lot of sprites in original game are duplicated because flipped horizontally, I was thinking of remapping them and use cpctelera 1.5 drawHFlipSprite functions right or would it be too slow ?
No it works very well, i flipped all player sprites when changing direction to reduce the feel of slow down.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 12:03, 29 September 19
Quick update :
Project is not dead, far from it.
I managed to fit 90% of the data into the 6128 "old" RAM, currently fighting with the game objects logic code debugging which is thougher than expected.


SuTeKH/Epyteor (http://www.cpcwiki.eu/forum/profile/?u=466) offered help making some awesome musics, I hope to be able to make another playable build in the forthcoming weeks/days.
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 12:28, 29 September 19
Sweet! Thanks for the update :)
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 15:51, 22 March 20
There hasn't been an update in SIX MONTHS... so... here are the music files I did last year!
It's trying to use/emulate the original sound!

https://soundcloud.com/user-744608534-557897601/sets/nicky-boum-amstrad-cpc

Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 14:22, 27 March 20
Listening to it during my lunch. Thanks :)
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 11:18, 02 April 20
Is there a reason why Soundcloud links only show the first tune in an album?
It looks like I've been lazy and only converted one of the eight tunes! ^_^
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 11:29, 02 April 20
Let's see...

https://soundcloud.com/user-744608534-557897601/sets/nicky-boum-amstrad-cpc (https://soundcloud.com/user-744608534-557897601/sets/nicky-boum-amstrad-cpc)


Hm indeed even if you post the album link, like
Code: [Select]
https://soundcloud.com/user-744608534-557897601/sets/nicky-boum-amstrad-cpc


it only pulls the first one. They must have changed something over at Soundcloud...
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 11:53, 02 April 20
I noticed it when I posted the PINBALL DREAMS CPC soundtrack a while back, but kinda forgot to tell you! SORRY! ^_^

EDIT: It IS the tune that appears on the webpage when you click on the link... so maybe remove the embedded part from Soundcloud?
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 12:18, 02 April 20
Well, even a single tune is better than nothing though?

Let me try another random link...

https://soundcloud.com/ultrasyd/sets/chiptunes-18 (https://soundcloud.com/ultrasyd/sets/chiptunes-18)

I just noticed "sets" or playlists are different from Albums, maybe that's why?


PS Huh! That worked! What gives?
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 12:26, 02 April 20
WEIRD!!! The only difference I can see is that mine has a "release date" and Ultrasyd's doesn't!
I have tried changing the "type" to Playlist but that didn't work! *confused*
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 13:05, 02 April 20
Hmmm... can you try making it into an album?
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 13:18, 02 April 20
Changing it to EP, Single, Album or Playlist seems to make no difference! Maybe it's an account-type issue! The full album is only available to those with Soundcloud Pro? I dunno!

https://soundcloud.com/raftc/sets/cpc-vs-virgill-music-disk (https://soundcloud.com/raftc/sets/cpc-vs-virgill-music-disk)

EDIT: NO! Scrub that theory!

https://soundcloud.com/user-744608534-557897601/sets/test-playlist
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 13:26, 02 April 20
Hahahaha :D
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 14:58, 02 April 20
The embedded code seems to work (see image). Is it possible to check the code (below) with what you have in the forum?

Code: [Select]
<iframe width="100%" height="450" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/1023876061&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true"></iframe>
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 15:15, 02 April 20
Ctrl+U? :D

Sorry, not sure exactly what you mean!
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 15:29, 02 April 20
Ah-ha! CTRL+U ... perfect! Nice one!


RaFT's playlist;
Code: [Select]
<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/238282917" style="border:0;height:450px;max-width:900px;width:100%"></iframe>
My crappy rubbish;
Code: [Select]
<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/780869128&amp;secret_token=" style="border:0;height:450px;max-width:900px;width:100%"></iframe>
For some reason my playlist links to "tracks" where RaFT's playlist links to "playlists". I have no idea why or how to change it! Time to start an intense HTML course! ^_^

Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 15:37, 02 April 20
This is weeeeird! I'll have a look at the code to see how it's done...
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 15:54, 02 April 20
Ah damn. I updated the code but same happens... so weird.
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 16:11, 02 April 20
It's a long shot, but I have created a trouble ticket with Soundcloud.
I guess no-one will answer due to COVID-19, but you never know!
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 16:15, 02 April 20
I updated some code (paid for a renewed license for the mod we're using) and looking into it... might take a while.
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 16:17, 02 April 20
Whoa! Don't spend money sorting out my crappy stuff!
There's always a link under the player to the full playlist on Soundcloud, anyway!


EDIT: It seems to work in twitter - https://twitter.com/X360SaroneTC/status/1245703576049106944
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 16:50, 02 April 20
Eh, that's one of the more useful mods and one of the handful I'm spending money on; for the most part it works ok so it's worth having it up to date...
Title: Re: Nicky Boom for CPC ?
Post by: Gryzor on 11:12, 03 April 20
So I talked to the developer, it appears it's something that Soundcloud does... maybe it's got to do with account status??
Title: Re: Nicky Boom for CPC ?
Post by: SuTeKH/Epyteor on 13:53, 03 April 20
Possibly! It works when shared on Twitter, but I don't think it's the same embedded code.
I haven't heard back from Soundcloud yet, but I wasn't really expecting to!
Title: Re: Nicky Boom for CPC ?
Post by: Fmtrx on 12:12, 05 April 20
hey LTronic, i recognize you put a lot of effort in this game as you wrote your own engine for tile scrolling.
Is there a specific reason that you avoided to utilize the easytilemap functionality of cpctelera ?
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 20:23, 06 April 20
Hey,


First apologies for the lack of update especially for amazing SuTeKH/Epyetor amazing work on this.
Sorry for the lack of answer man, I feel ashamed.
I've been through personal mess I won't detail here (it's not the place to) and then the covid-19 happened, though times...  :(


I hope to resume work on this, I've got a somehow barely playable build on my GitHub. Anyone interested in can PM me to request access if they want to have a look to.
I'm unsure it's still doable on "old" CPC or I should move to a "plus" range strategy because of memory issues.


I'm not using cpctelera easytilemap stuff because (and this is one of the major problems in this project) is the tilemap is dynamic and can be modified by game items like bomb or megabomb.
If easytilemap supports that maybe I should consider switching to, but I think it's a lot of effort as I basically converted that every original game tile (16x16 px on ST or Amiga) is splitted into 2 tiles on CPC (8x16 px aka two 8x8 px tiles aka two 4x8 bytes). Well, if my memories are good as it's been a while.


Any help/interest is welcome.

Stay safe and talk to you soon.
Title: Re: Nicky Boom for CPC ?
Post by: Sykobee (Briggsy) on 16:33, 07 April 20
I'm sure you can still mutate the map data underneath the easytilemap - but you'll still have to do that logic yourself as that engine won't support it.


You've done a lot of work so far, so well worth getting down into it again, if you have time - no need to be ashamed of not having time for any reason.


Do what you can - Plus will give you free scrolling, sprites and better palette, and you can target a cart format (512KB), standard CPC is a bit more difficult but you can still target 128KB (no shame in that, being an Amiga game originally) if that works.
Title: Re: Nicky Boom for CPC ?
Post by: LTronic on 17:51, 12 April 20
Here some concrete stuff, a current debug build from the project.
I am just getting back into it, upgraded my custom toolchain and rebuild the "current" debug code from scratch to a somehow playable DSK.


Scrolling is well, a mess.....
Bottom bar is a mess too... (palette issue, not a big deal)
Collisions are not working, can't remember why until I got back deeper into the code, and projectiles neither (that was the blocking issue I somehow paused the project).


Enjoy.