Fabrizio-Caruso / CROSS-LIB

CROSS LIB - A universal 8-bit library and some games built with it
314 stars 30 forks source link

Tools sources #29

Closed mozgwar closed 5 years ago

mozgwar commented 6 years ago

Hi, Can you put a README in tools that says where we can find the source for them?

Fabrizio-Caruso commented 6 years ago

Hi! Yes, it is a good idea. Do you mean the source code or their official pages? Maybe I should just put links... instead of copying the binaries.

mozgwar commented 6 years ago

the link to the page will be good enough for me

cpcitor commented 6 years ago

Hi Fabrizio.

I played you game, the Amstrad CPC build. I expected portability to affect performance given the context, and the result was actually quite good. The list of target machines is impressive!

Maybe I should just put links... instead of copying the binaries.

This stroke me in an open-source context where source is king and binary is slave.

Suggestion: going full source

There is another approach that you might want to consider: going full source, no binary in git repository.

Example

I did that for cpc-dev-tool-chain. The only binary files are in documentation (PNG images and font). A full checkout is 1.3Mbytes source text plus 880k documentation.

It fetches (from official pages when they are stable, else stable mirror repositories) and builds all from the source:

It was not very easy to write the makefiles, but the result works pretty well! Here is a complete automatic build log.

Benefits

Besides lightweight repository and elegance, this configuration allows people to build the software with other configurations: 32 or 64 bit, Linux or other OS, even non-PC architecture (Raspberry Pi etc).

Projects benefit, too

Also, projects using cpc-dev-tool-chain can leverage the same workflow, for example build instructions for color-flood-for-amstrad-cpc.

Have you already tried color-flood-for-amstrad-cpc?

git clone https://github.com/cpcitor/color-flood-for-amstrad-cpc
cd color-flood-for-amstrad-cpc
./configure_cdtc_build_tree.sh
make run # on Linux, builds and runs emulator, too.
Fabrizio-Caruso commented 6 years ago

@cpcitor for the moment I would just provide links and credits to the creators of the tools I need to build the executables for various systems. Going full source, would also imply providing and building the full source of the compilers. This would take very long. The tools are not really part of my project and my project would survive without them. I only depend on the compilers and their devkits. It would be nice to build the full tool-chain, though. It is not so simple. Maybe I should just point to the instructions on how each tool and compiler can be built.

I may remove some of the all binaries but I will always keep some binaries because some of my audience just wants a link to the game for their system.

Fabrizio-Caruso commented 6 years ago

@cpcitor Thanks for your words on the game speed. First of all the merit should go to the authors of SCCZ80, Z88Dk and CPCRSLIB, which is quite fast. I have also made a huge effort at optimizing both the game and CrossLib (my own library that provides the abstraction layer).

I had to slow the game down because otherwise it would be too fast and unplayable. It is compiled with SCCZ80 for convenience but it could also be compiled with ZSDCC (optimized SDCC) and gain speed significantly. Therefore there is room for improving the graphics and keeping the same smoothness.

Fabrizio-Caruso commented 6 years ago

@mozgwar many 3rd tools are being replaced by code in Z88DK that does the necessary conversions. I need to understand which 3rd tools are going to rest in my tool chain.

Fabrizio-Caruso commented 5 years ago

@mozgwar I have added a README.txt in the tools directory: https://github.com/Fabrizio-Caruso/CROSS-CHASE/blob/master/tools/README.txt This files provides links to the original pages of the used tools. A few cases are still missing. I will soon remove unused tools from my repo.

I hope this is good for you.

mozgwar commented 5 years ago

good for me