Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > CSDb Entries > Release id #220685 : Krill's Loader, Repository Version 192
2022-08-18 16:23
Smasher

Registered: Feb 2003
Posts: 510
Release id #220685 : Krill's Loader, Repository Version 192

first of all a big THANK-YOU Krill for the (long-awaited) release!!!
a question about the new feature "PREFER_SPEED_OVER_SIZE":
with this setting disabled loader fits in my ideal place $0200-$03ff (no stack, no screen area, yuppy!), while if I enable it it gets bigger and it doesn't fit.
so based on your testings, how fast is the "potentially faster decompression routine" compared to the default one?
 
... 34 posts hidden. Click here to view all posts....
 
2022-10-04 19:49
map

Registered: Feb 2002
Posts: 27
Quoting DeMOSic
oh alright! ill try that

edit: it worked but i get this error now
ca65 --cpu 6502X  -g  -t c64 -D PLATFORM=64 -I ./. -I ./../../shared -I ./../include -D RESIADDR=0x0400 -o ../build/intermediate/loader-nonreloc-c64.o resident.s
ca65 --cpu 6502X  -g  -t c64 -D PLATFORM=64 -I ./. -I ./../../shared -I ./../include --cpu 6502X -D INSTADDR=0x4000 -o ../build/intermediate/install-nonreloc-c64.o install.s
perl -e 'printf "MEMORY\
        {\
         ZPRAM: start = \$10, size = \$%x;\
         ZPRAM2: start = \$10, size = \$%x;\
         INSTALLRAM: start = \$%x, size = \$%x, file = \"../build/install-c64.prg\";\
         RESIDENTRAM: start = \$%x, size = \$%x, file = \"../build/loader-c64.prg\";\
         TRANSIENTRAM: start = \$%x, size = \$%x, file = \"../build/transient-c64.prg\";\
        }\
        \
        SEGMENTS\
        {\
         DISKIO_ZP: load = ZPRAM, type = zp;\
         DISKIO_PLUGIN_ZP: load = ZPRAM2, type = zp, optional = yes;\
         DISKIO: load = RESIDENTRAM;\
         DISKIO_PLUGIN: load = TRANSIENTRAM, optional = yes;\
         DISKIO_INSTALL: load = INSTALLRAM;\
        }\
        ", 0x0100 - 0x10, 0x0100 - 0x10, 0x4000 - 2, 0x10002 - 0x4000, 0x0400 - 2, 0x10002 - 0x0400, 0x4000 - 2, 0x10002 - 0x4000' > ../build/intermediate/binary.link
Can't find string terminator "'" anywhere before EOF at -e line 1.
make: *** [../build/intermediate/binary.link] Fel 255

First of all, I agree, that the best choice to build Krills Loader is to use Linux directly or WSL in case of Windows.
The pdf, which I created some years ago is also now obsolete from my point of view having WSL available, not sure if an update makes much sense.
Although I never tried WSL so far, since I'm meanwhile using Ubuntu mainly from my dual boot setup.

Nevertheless two years ago I made v184 of the loader build working with Windows cmd as some evening exercise.
Combined with Strawberry Perl and Windows binaries of make.exe and CC65 it is completely portable, running even from an USB stick without installation needs.

Regarding the Linkerfile creation issue, this was the biggest change if iirc.
Indeed the quoting in BASH and CMD are very different. Therefore the easiest solution for the problem of the linker file creation was to move the Perl oneliner from /loader/src/Makefile to an extra Perl script (eg.create_linkerfile.pl).
In the makefile the script can be called in the same place like this, exporting all necessary parameters:

$(PERL) create_linkerfile.pl $@ $(_PLATFORM_) $(ZP) $(INSTALL) $(RESIDENT) $(TRANSIENT)

The Content of create_linkerfile.pl would look like:

#!/usr/bin/perl -w

open(FILE, ">$ARGV[0]") or die "Cannot open file";

printf ("MEMORY
{
ZPRAM: start = \$$ARGV[2], size = \$$%x;
ZPRAM2: start = \$$ARGV[2], size = \$$%x;
INSTALLRAM: start = \$$%x, size = \$$%x, file = \"../build/install-$ARGV[1].prg\";
RESIDENTRAM: start = \$$%x, size = \$$%x, file = \"../build/loader-$ARGV[1].prg\";
TRANSIENTRAM: start = \$$%x, size = \$$%x, file = \"../build/transient-$ARGV[1].prg\";
}

SEGMENTS
{
DISKIO_ZP: load = ZPRAM, type = zp;
DISKIO_PLUGIN_ZP: load = ZPRAM2, type = zp, optional = yes;
DISKIO: load = RESIDENTRAM;
DISKIO_PLUGIN: load = TRANSIENTRAM, optional = yes;
DISKIO_INSTALL: load = INSTALLRAM;
}
", 0x0100 - 0x$ARGV[2], 0x0100 - 0x$ARGV[2], 0x$ARGV[3] - 2, 0x10002 - 0x$ARGV[3], 0x$ARGV[4] - 2, 0x10002 - 0x$ARGV[4], 0x$ARGV[5] - 2, 0x10002 - 0x$ARGV[5]);
close (FILE);

This is based on the version which i had created back then for v184 and is not tested.
Have fun.
2022-10-04 20:13
DeMOSic

Registered: Aug 2021
Posts: 124
Quote: Quoting DeMOSic
oh alright! ill try that

edit: it worked but i get this error now
ca65 --cpu 6502X  -g  -t c64 -D PLATFORM=64 -I ./. -I ./../../shared -I ./../include -D RESIADDR=0x0400 -o ../build/intermediate/loader-nonreloc-c64.o resident.s
ca65 --cpu 6502X  -g  -t c64 -D PLATFORM=64 -I ./. -I ./../../shared -I ./../include --cpu 6502X -D INSTADDR=0x4000 -o ../build/intermediate/install-nonreloc-c64.o install.s
perl -e 'printf "MEMORY\
        {\
         ZPRAM: start = \$10, size = \$%x;\
         ZPRAM2: start = \$10, size = \$%x;\
         INSTALLRAM: start = \$%x, size = \$%x, file = \"../build/install-c64.prg\";\
         RESIDENTRAM: start = \$%x, size = \$%x, file = \"../build/loader-c64.prg\";\
         TRANSIENTRAM: start = \$%x, size = \$%x, file = \"../build/transient-c64.prg\";\
        }\
        \
        SEGMENTS\
        {\
         DISKIO_ZP: load = ZPRAM, type = zp;\
         DISKIO_PLUGIN_ZP: load = ZPRAM2, type = zp, optional = yes;\
         DISKIO: load = RESIDENTRAM;\
         DISKIO_PLUGIN: load = TRANSIENTRAM, optional = yes;\
         DISKIO_INSTALL: load = INSTALLRAM;\
        }\
        ", 0x0100 - 0x10, 0x0100 - 0x10, 0x4000 - 2, 0x10002 - 0x4000, 0x0400 - 2, 0x10002 - 0x0400, 0x4000 - 2, 0x10002 - 0x4000' > ../build/intermediate/binary.link
Can't find string terminator "'" anywhere before EOF at -e line 1.
make: *** [../build/intermediate/binary.link] Fel 255

First of all, I agree, that the best choice to build Krills Loader is to use Linux directly or WSL in case of Windows.
The pdf, which I created some years ago is also now obsolete from my point of view having WSL available, not sure if an update makes much sense.
Although I never tried WSL so far, since I'm meanwhile using Ubuntu mainly from my dual boot setup.

Nevertheless two years ago I made v184 of the loader build working with Windows cmd as some evening exercise.
Combined with Strawberry Perl and Windows binaries of make.exe and CC65 it is completely portable, running even from an USB stick without installation needs.

Regarding the Linkerfile creation issue, this was the biggest change if iirc.
Indeed the quoting in BASH and CMD are very different. Therefore the easiest solution for the problem of the linker file creation was to move the Perl oneliner from /loader/src/Makefile to an extra Perl script (eg.create_linkerfile.pl).
In the makefile the script can be called in the same place like this, exporting all necessary parameters:

$(PERL) create_linkerfile.pl $@ $(_PLATFORM_) $(ZP) $(INSTALL) $(RESIDENT) $(TRANSIENT)

The Content of create_linkerfile.pl would look like:

#!/usr/bin/perl -w

open(FILE, ">$ARGV[0]") or die "Cannot open file";

printf ("MEMORY
{
ZPRAM: start = \$$ARGV[2], size = \$$%x;
ZPRAM2: start = \$$ARGV[2], size = \$$%x;
INSTALLRAM: start = \$$%x, size = \$$%x, file = \"../build/install-$ARGV[1].prg\";
RESIDENTRAM: start = \$$%x, size = \$$%x, file = \"../build/loader-$ARGV[1].prg\";
TRANSIENTRAM: start = \$$%x, size = \$$%x, file = \"../build/transient-$ARGV[1].prg\";
}

SEGMENTS
{
DISKIO_ZP: load = ZPRAM, type = zp;
DISKIO_PLUGIN_ZP: load = ZPRAM2, type = zp, optional = yes;
DISKIO: load = RESIDENTRAM;
DISKIO_PLUGIN: load = TRANSIENTRAM, optional = yes;
DISKIO_INSTALL: load = INSTALLRAM;
}
", 0x0100 - 0x$ARGV[2], 0x0100 - 0x$ARGV[2], 0x$ARGV[3] - 2, 0x10002 - 0x$ARGV[3], 0x$ARGV[4] - 2, 0x10002 - 0x$ARGV[4], 0x$ARGV[5] - 2, 0x10002 - 0x$ARGV[5]);
close (FILE);

This is based on the version which i had created back then for v184 and is not tested.
Have fun.


oh alright! i will try that
2022-10-04 20:51
Krill

Registered: Apr 2002
Posts: 2800
Quoting map
Regarding the Linkerfile creation issue, this was the biggest change if iirc.
Indeed the quoting in BASH and CMD are very different. Therefore the easiest solution for the problem of the linker file creation was to move the Perl oneliner from /loader/src/Makefile to an extra Perl script (eg.create_linkerfile.pl).
In the makefile the script can be called in the same place like this, exporting all necessary parameters:

$(PERL) create_linkerfile.pl $@ $(_PLATFORM_) $(ZP) $(INSTALL) $(RESIDENT) $(TRANSIENT)
Ah, very good idea. =)

Will do it like that for the upcoming patch release.
2022-10-04 22:04
JackAsser

Registered: Jun 2002
Posts: 1981
Quote: Quoting map
Regarding the Linkerfile creation issue, this was the biggest change if iirc.
Indeed the quoting in BASH and CMD are very different. Therefore the easiest solution for the problem of the linker file creation was to move the Perl oneliner from /loader/src/Makefile to an extra Perl script (eg.create_linkerfile.pl).
In the makefile the script can be called in the same place like this, exporting all necessary parameters:

$(PERL) create_linkerfile.pl $@ $(_PLATFORM_) $(ZP) $(INSTALL) $(RESIDENT) $(TRANSIENT)
Ah, very good idea. =)

Will do it like that for the upcoming patch release.


Not sure if you already support it, but from a CA65 power user like myself I much rather have just a .lib file and define the needed segments myself in my own link file and just ld65 in the .lib. .prg files belongs to the past. :D
2022-10-04 22:27
Krill

Registered: Apr 2002
Posts: 2800
Quoting JackAsser
Not sure if you already support it, but from a CA65 power user like myself I much rather have just a .lib file and define the needed segments myself in my own link file and just ld65 in the .lib. .prg files belongs to the past. :D
Been doing this all along, just check loader/samples/test. =)

There is "make lib", and this is a snippet from the test application's link file:
    DISKIO_ZP:        load = LOADERZP, type  = zp,    define = yes;
    DISKIO_PLUGIN_ZP: load = LOADERZP, type  = zp,    define = yes, optional = yes;
    DISKIO:           load = RAM,      start = $3000, define = yes;
    DISKIO_PLUGIN:    load = RAM,                     define = yes, optional = yes;
    DISKIO_INSTALL:   load = RAM,      start = $4000, define = yes; # fire and forget
The "make prg" target is there as a default because some people use to port 3rd party libraries to their own assemblers of fancy, for some weird reason. =)
2022-10-05 09:23
Perplex

Registered: Feb 2009
Posts: 254
Quoting Oswald
rumours say that you need to be top level genius to make a build yourself of your loader :D


As a merely mid-level genius who has had no problems building Krill's loader, I hereby refute these rumours. ;)
2022-10-05 09:27
Krill

Registered: Apr 2002
Posts: 2800
Quoting DeMOSic
For some reason whenever i try compiling loader/src makefile [...]
Build problems aside, have you noticed that there are prebuilt binaries using default settings in the archive? =)

These should cover most regular use-cases.

If not for you, which particular non-default option are you aiming at?
2022-10-05 10:01
Krill

Registered: Apr 2002
Posts: 2800
Quoting Krill
Quoting jcompton
For testing purposes on this fork, can anybody please name a few known-good-on-NTSC Krill loader titles? So far I've only been able to narrow it down to Avatar PSI-5 as a title which "should work, but doesn't."
There aren't many IRQ-loading games, and PSI-5 is one of the very few cracks with this loader.

Pretty sure that the loader in Sonic was built with the NTSC-compat option, not so sure for Scramble Infinity (and neither for PSI-5).

In any case, make sure that the stuff works on an actual 1541 and an NTSC C-64 before trying it with an SD2IEC.
But if not games, then maybe diskmags can serve as a good test case.

Attitude #7 and Attitude #8 appear to use a variant built with the NTSC compatibility option, and some other magazines might as well.
2022-10-05 15:38
DeMOSic

Registered: Aug 2021
Posts: 124
Quote: Quoting DeMOSic
For some reason whenever i try compiling loader/src makefile [...]
Build problems aside, have you noticed that there are prebuilt binaries using default settings in the archive? =)

These should cover most regular use-cases.

If not for you, which particular non-default option are you aiming at?


Im actually not really sure. I just felt like building for whatever reason.
2022-10-06 17:25
jcompton

Registered: Feb 2006
Posts: 70
Quote: Quoting Krill
Quoting jcompton
For testing purposes on this fork, can anybody please name a few known-good-on-NTSC Krill loader titles? So far I've only been able to narrow it down to Avatar PSI-5 as a title which "should work, but doesn't."
There aren't many IRQ-loading games, and PSI-5 is one of the very few cracks with this loader.

Pretty sure that the loader in Sonic was built with the NTSC-compat option, not so sure for Scramble Infinity (and neither for PSI-5).

In any case, make sure that the stuff works on an actual 1541 and an NTSC C-64 before trying it with an SD2IEC.
But if not games, then maybe diskmags can serve as a good test case.

Attitude #7 and Attitude #8 appear to use a variant built with the NTSC compatibility option, and some other magazines might as well.


Thank you. #7 is poorly-behaved on NTSC generally but this version of #8 looks like a good test disk to add to the rotation.
Previous - 1 | 2 | 3 | 4 | 5 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Guests online: 165
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 No Bounds  (9.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 The Ghost  (9.6)
9 No Sprites  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Party Elk 2  (9.7)
2 Cubic Dream  (9.6)
3 Copper Booze  (9.5)
4 Rainbow Connection  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Onscreen 5k  (9.5)
7 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Nostalgia  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Logo Graphicians
1 Sander  (10)
2 Facet  (9.6)
3 Mermaid  (9.4)
4 Shine  (9.3)
5 Pal  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.132 sec.