Jump to content



1

CCI3 - Alpha version


12 replies to this topic

#1 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Wed Aug 31, 2011 1:53 PM

Hello,

After modifying my devkit, I've noticed that some CCI2.exe files wasn't properly made for the new SDCC version, and even worst may add unwanted slowdown to execute the NMI routine.

To solve both problems, and let the compile do its job properly, I've programmed a new CCI.

First, you can use both CCI2 and CCI3, specially if you want to compare both versions.

Second, CCI3 don't go into each of your project folders, which are subfolders of "z80", but right in the main folder "z80".

This is what the ICON looks like
cci3exe.gif

This is what the interface looks like
cci3screenshot.gif

And this is the actual EXE file
Attached File  CCI3.zip   190.3K   28 downloads

As is, this program works fine on my computer and should works fine too on your computer, unless your OS isn't Windows, Java is not well installed, or simply this program is not in the right folder.

This is probably my last effort on Coleco projects from my part this summer. I still have other obligations like sounds to work on so I'm not gonna take too much time developing this project... unless there is a huge demand to complete it.

Edited by newcoleco, Wed Aug 31, 2011 1:54 PM.


#2 youki OFFLINE  

youki

    Stargunner

  • 1,077 posts

Posted Thu Sep 1, 2011 7:31 AM

Thanks Daniel,

I will try that new version as soon as possible.

#3 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Thu Sep 1, 2011 1:26 PM

There is an interest on this product? Good because I've made an update which fix a few things.

+ Added RUN button
+ Added auto-scroll for the output text box
+ Fixed bug when clicking on compile while no file is selected

I've also changed the Java wraper program, so now the EXE file is way smaller as it should be.

Instead of adding files constantly on this forum, this is a direct link to the zip file inside my DropBox virtual drive account.

Note : There is an advert before accessing the zip file, just ignore it and click on the button (upper-right) to access the file.

http://adf.ly/2WiAL

#4 youki OFFLINE  

youki

    Stargunner

  • 1,077 posts

Posted Thu Sep 1, 2011 1:54 PM

Does it work only with your last version of your Devkit?

Becauce i tried, the tool runs , i choose my project , select a .C file, click compile... it display the command it runs (cd, sdcc... , cd..)

But nothing is compiled. :(

#5 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Thu Sep 1, 2011 4:46 PM

View Postyouki, on Thu Sep 1, 2011 1:54 PM, said:

Does it work only with your last version of your Devkit?

Becauce i tried, the tool runs , i choose my project , select a .C file, click compile... it display the command it runs (cd, sdcc... , cd..)

But nothing is compiled. :(

If your version of SDCC doesn't include the possibility to specify --max-allocs-per-node parameter then it's normal. CCI3 is based on CCI2 but uses the advantage of the updated SDCC version by using this parameter, and the value is kinda specified by the slider "FAST ... SLOW" you've noticed in the new interface. I can add a checkbox right before the slider to enable it, and if it's disabled then you'll be able to compile without specifying any --max-allocs-per-node parameter and use older SDCC versions.

There is also an issue with the textbox that only shows commands, not the error and warning messages the compile and linker provides. It's the way CCI3 coded at the moment and I'm working on this.

#6 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Thu Sep 1, 2011 7:54 PM

Update (see the adf.ly link in previous post)

+ Colored ouput text
+ Code Clean up
+ Checkbox to enable/disable "--max-allocs-per-node" parameter (and slider).

#7 youki OFFLINE  

youki

    Stargunner

  • 1,077 posts

Posted Fri Sep 2, 2011 1:37 AM

Thanks Daniel, i will try the new checkbox. :)

#8 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Fri Sep 2, 2011 8:37 AM

Update 2 September 2011

+ Added selection (rabio buttons) for optimization focus : speed or size
+ Added refresh button to refresh the entire projects list : so if you made a new source file or new project folder, you'll need to click this button to see the changes

This software seems stable enough even if it's still a work in progress project. I can't promise anything but I'll be able to adjust and improve this project with your feedback.

What is missing?

  • Button "Compile All"
  • List of available libraries

Without any objection I'll totally replace CCI2 by CCI3 in my devkit, because to me this version seems stable enough and allow to perform a better optimization overall.

screenshot_2sep2011.png

Edited by newcoleco, Fri Sep 2, 2011 9:07 AM.


#9 youki OFFLINE  

youki

    Stargunner

  • 1,077 posts

Posted Fri Sep 2, 2011 2:37 PM

It does not really work for me. :(

Ok , now i can compile and link and the rom works.... but ...

using CCI2 , i got a rom size of : 4 901 bytes

using CCI3 with size optimization , i got a rom of : 30 212 bytes!! with speed optimization i got : 30 215 !

May be because i use a old version of SDCC. :?

And 2 remarks :

- you should add a message or something that say the compile or the link is completed.

and when i link using CCI3 , i got a huge bunch of message "Multiple definition of.... <function> or <variable>" (that could explain the final size of the rom) ... but i have absolutly no error using CCI2.

Anyway don't worry about my problems if it works for others. I use CCI2 and my old kit , i'm very happy with that! :)

#10 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Fri Sep 2, 2011 4:40 PM

This is what you are experiencing : you've extra *.rel files in your project folder. The link button see all these *.rel files and try to compile them all. No wonder why you got a huge rom file and multiple messages of multiple definition.

Clean up your project folders first and then try again.

Edited by newcoleco, Fri Sep 2, 2011 4:43 PM.


#11 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Mon Sep 5, 2011 9:17 PM

My late tests are interesting... I've tried to recompile some projects and just to show you, here is an example with Diamond Dash:


2003
DIAMOND DASH - 4K MINIGAME, SUBMITTED TO THE MINIGAMECOMPO

SIZE : 4066 bytes, filled up to 4096 bytes by the compiler (HI-TECH C FOR CP/M)

2011

DIAMOND DASH RECOMPILED WITH SDCC version 3.0.2 (I think) AND EVEN MORE OPTIMIZED COLECO LIBRARIES

SIZE : 3858 bytes

For a ColecoVision homebrewer, freeing more than 1KB in a 32KB project can means making a good game even better. For the case of Diamond Dash it's more than 5% space saved just by using a different compiler and the updated (optimized) libraries. Can this project be reduced even more? Of course, by coding by hand some parts in ASM, but that's not the idea of the tests I was doing.


Just in case you want to see it by yourself, here are the 2 different ROM files of Diamond Dash.
Attached File  diamond dash original (2003) and recompiled (2011).zip   5.62K   34 downloads

#12 youki OFFLINE  

youki

    Stargunner

  • 1,077 posts

Posted Fri Sep 23, 2011 5:37 AM

Very interresting. I will surely use you new version of the kit and compiler for my current project when size will become critical!

Thanks !

#13 newcoleco OFFLINE  

newcoleco

    Stargunner

  • 1,053 posts

Posted Wed Oct 12, 2011 11:05 PM

I really can't leave the forums more than a month, can I? I've received a message from RK telling me that he can't install the devkit, and now that I've tried too, I can see why and I'm about to fix the part I can fix.

SDCC changed, the compiler code and also the installation process. The default path was, for me and many others, "program files (x86)" but it's now "program files" with the new installer, making my batch file not working properly... which I can fix somehow if eventually the user/programmer realise that there is left an old and incomplete SDCC folder in "program files (x86)". An updated (patched) version adapted to the new SDCC installer will be uploaded in the next hours.

But actually, there is another problem... the SDCC version I've just tested can't compile a simple C program if it uses a routine with parameters like "(char, char)" or "(unsigned char, unsigned char")... giving a segmentation fault issue for no good reason. So it's impossible to compile any lines like "vdp_out(1,2);" because the funtion is (in coleco.h) "vdp_out(char a, char b);" if it was simply vdp_out(char a); or even vdp_out(int ba); it will have worked. So, I'm really confused and I hope this issue will be solved.

Edited by newcoleco, Wed Oct 12, 2011 11:09 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users