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: 512
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?
2022-08-18 17:00
Krill

Registered: Apr 2002
Posts: 2854
Bitfire benchmark:
      ZX0-Dali    TSCrunch

CPU   size speed  size speed
  %    B/s  B/s    B/s  B/s
100   9475 9563   9827 9827
 90   8885 9041   9613 9613
 80   7103 7125   7737 7560
 70   6451 6428   6574 6593
 60   5694 5670   6000 6201
 50   4824 4836   5128 5044
 40   4007 4119   4671 4668
 30   2974 3058   3568 3582
 20   1954 1995   2405 2429
 10   855   877   1092 1093
So not much of a difference (about 200 B/s tops), and the prefer-speed option may be slower than prefer-size depending on CPU percentage for loading.

It also depends on your specific set of compressed files.

YMMV. =)
2022-09-10 15:32
FEFA

Registered: Mar 2018
Posts: 4
Hi.

I have tried to run "make prg" on this release, but it failed because "src/make-loadersymbolsinc.pl" now requires a version parameter, and "src/Makefile" gets it from the svn directory which is not included in the distribution.

Just as a workaround I have set VERSION to 192 in line 38 of the Makefile.

BTW, great stuff!
2022-09-10 15:52
Krill

Registered: Apr 2002
Posts: 2854
You're the second person to have missed the goofs section and to come up with the exact same fix. https://csdb.dk/release/?id=220685&show=goof =)

Proper fix is
SVNVERSION   = svnversion
ifneq ($(wildcard ../../.svn/format),)
VERSION      = $(shell $(SVNVERSION) | tr -d [:cntrl:])
else
VERSION      = $(shell $(GREP) -oP 'VERSION_STRING "\K[^"]+' ../version.inc)
endif

[...]

GREP         = grep
2022-09-10 17:07
FEFA

Registered: Mar 2018
Posts: 4
Oh, sorry. I am a very inexperienced CSDb user, and I did not notice there is a section for goofs. I was also wondering how it was possible that no one had come across the bug before, but fortunately they did.
2022-09-10 17:16
Krill

Registered: Apr 2002
Posts: 2854
Yeah, could be a little more prominent, that goofs section. :)
2022-09-14 09:55
F7sus4

Registered: Apr 2013
Posts: 112
It's conveniently hidden. ;-)
2022-09-16 02:15
Krill

Registered: Apr 2002
Posts: 2854
SD2IEC support for this loader (current and relevant previous versions) has now been invented! \=D/
Mad propz to Thierer! =)

https://github.com/thierer/sd2iec
https://github.com/thierer/sd2iec/releases/tag/v1.0.0atentdead0..
2022-09-16 13:24
MagerValp

Registered: Dec 2001
Posts: 1060
Whoa. Nice.
2022-09-16 14:49
tlr

Registered: Sep 2003
Posts: 1727
Quite a lot of work put into reverse engineering that I assume, cool!

Seems to need some "magic" too:
static const PROGMEM file_quirks_t file_quirks[] = {
  { 0x1ba6,  20 }, /* coma light 13   / "SAMPLE"   */
  { 0xe5ac,  80 }, /* coma light 13   / "PICDAT"   */
  { 0xfe43,  80 }, /* protogeo 100%   / 13th file  */
  { 0x7f19, 120 }, /* pearls for pigs / "03"       */
  { 0x8e1e,  20 }, /* cause of death  / "PLOTBALL" */

  { 0, 0 } // end marker
};
2022-09-16 15:22
Krill

Registered: Apr 2002
Posts: 2854
Quoting tlr
Seems to need some "magic" too:
static const PROGMEM file_quirks_t file_quirks[] = {
  { 0x1ba6,  20 }, /* coma light 13   / "SAMPLE"   */
  { 0xe5ac,  80 }, /* coma light 13   / "PICDAT"   */
  { 0xfe43,  80 }, /* protogeo 100%   / 13th file  */
  { 0x7f19, 120 }, /* pearls for pigs / "03"       */
  { 0x8e1e,  20 }, /* cause of death  / "PLOTBALL" */

  { 0, 0 } // end marker
};
I think that's to work around some problems due to the loader loading a lot faster with no wait time for individual blocks, which those demos do not expect (it's not a loader problem per se) and which could not be tested at the time.

So adding some artificial delay for known productions helps.
2022-10-01 12:36
DeMOSic

Registered: Aug 2021
Posts: 126
For some reason whenever i try compiling loader/src makefile using gnu make on Windows i get this error.

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 # allow undocumented opcodes for drive code
ca65: Don't know what to do with '#'
make: *** [../build/intermediate/install-nonreloc-c64.o] Fel 1


i get this error on regular CMD prompt, i dont know whats the problem, ive tried Cygwin, i get the same error, MSYS2 dosent even find CA65. if anyone knows my problem, please help.
2022-10-01 14:50
Cruzer

Registered: Dec 2001
Posts: 1048
Congrats on release $c0.
2022-10-01 14:58
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Congrats on release $c0.

never thought of that! pretty nice
2022-10-01 15:43
Krill

Registered: Apr 2002
Posts: 2854
Quoting DeMOSic
ca65: Don't know what to do with '#'
make: *** [../build/intermediate/install-nonreloc-c64.o] Fel 1[/code]
Ah, thanks for the heads-up. That "--cpu 6502X" appears 3 times in 2 lines doesn't seem intended either. =)

So it's just a comment anyways, so simply delete the # and everything that follows it until newline, or move the comment to a line on its own.
2022-10-01 15:44
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Quoting DeMOSic
ca65: Don't know what to do with '#'
make: *** [../build/intermediate/install-nonreloc-c64.o] Fel 1[/code]
Ah, thanks for the heads-up. That "--cpu 6502X" appears 3 times in 2 lines doesn't seem intended either. =)

So it's just a comment anyways, so simply delete the # and everything that follows it until newline, or move the comment to a line on its own.


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
2022-10-03 17:41
Krill

Registered: Apr 2002
Posts: 2854
Quoting DeMOSic
it worked but i get this error now
That's a strange one. Since you seem to use Windows, can you try changing the line endings in that Makefile from 0A to 0D 0A and see if that helps?
2022-10-03 19:50
chatGPZ

Registered: Dec 2001
Posts: 11148
Isnt the problem here that bash and cmd are not quite the same thing, and anything non trivial will not work in cmd.exe unless adding the necessary voodoo to the makefile? (Did it ever work in cmd.exe before?)
2022-10-03 20:15
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Isnt the problem here that bash and cmd are not quite the same thing, and anything non trivial will not work in cmd.exe unless adding the necessary voodoo to the makefile? (Did it ever work in cmd.exe before?)

it didnt. i tried changing it a bit and it did fix that error BUT i got some error with ld65 which made it so no loader-c64.prg or install-c64.prg was made. i suppose i gotta have something in that binary.link file.

i did an automatic fix (replacing / with \) but one part in the makefile needed forward slash so i replaced that part with the original.
2022-10-03 20:21
Krill

Registered: Apr 2002
Posts: 2854
Quoting DeMOSic
it didnt.
But seriously, ARE you trying to get it to build with CMD.EXE? Please say no. =)
2022-10-03 20:23
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Quoting DeMOSic
it didnt.
But seriously, ARE you trying to get it to build with CMD.EXE? Please say no. =)


ive tried Cygwin too. didnt work, i also tried reinstalling cygwin and following the guide in http://plush.de/map/Krills_loader_quick_setup_guide_for_Windows.. , installing perl and make from Cygwin instead of installing from windows.
2022-10-03 20:27
Krill

Registered: Apr 2002
Posts: 2854
Quoting DeMOSic
ive tried Cygwin too. didnt work, i also tried reinstalling cygwin and following the guide in http://plush.de/map/Krills_loader_quick_setup_guide_for_Windows.. , installing perl and make from Cygwin instead of installing from windows.
Current Windows has WSL, does this work?

And well, bash or some equivalent *NIX shell is pretty much mandatory.
2022-10-03 20:30
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Quoting DeMOSic
ive tried Cygwin too. didnt work, i also tried reinstalling cygwin and following the guide in http://plush.de/map/Krills_loader_quick_setup_guide_for_Windows.. , installing perl and make from Cygwin instead of installing from windows.
Current Windows has WSL, does this work?

And well, bash or some equivalent *NIX shell is pretty much mandatory.


i will have to try this. will do now
2022-10-03 20:30
chatGPZ

Registered: Dec 2001
Posts: 11148
Do yourself a favour and by all means forget that cygwin even exists. Wipe it from your system as good as you can. Then use msys2. And use the windows perl.

(and that pdf needs to be updated badly too)

Making this stuff work in cmd.exe is seriously not what you want to do. Doing this with Makefiles that have not been written with cmd.exe in mind from the start can be a huge amount of work - and it'll be a VERY frustrating WTF experience if you have no experience with that stuff.
2022-10-03 20:36
Krill

Registered: Apr 2002
Posts: 2854
Quoting DeMOSic
i will have to try this. will do now
Also revert all your Makefile changes. =)
2022-10-03 20:38
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Do yourself a favour and by all means forget that cygwin even exists. Wipe it from your system as good as you can. Then use msys2. And use the windows perl.

(and that pdf needs to be updated badly too)

Making this stuff work in cmd.exe is seriously not what you want to do. Doing this with Makefiles that have not been written with cmd.exe in mind from the start can be a huge amount of work - and it'll be a VERY frustrating WTF experience if you have no experience with that stuff.


i would use MSYS2, i have that and WSL running, but i dont know how to install CC65 to something like MSYS2 or WSL, i will try downloading it now, and hope ittl work.
Quoting Krill
Also revert all your Makefile changes. =)

Hehe dont worry, i replaced the entire folder with the original from the zip
2022-10-03 21:00
chatGPZ

Registered: Dec 2001
Posts: 11148
You can just install the regular windows cc65 and use that. That is one of the big advantages of msys(2) over cygwin
2022-10-03 21:07
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: You can just install the regular windows cc65 and use that. That is one of the big advantages of msys(2) over cygwin

Oh awesome! Ill try it tomorrow
2022-10-03 21:11
Krill

Registered: Apr 2002
Posts: 2854
Or you can just build it yourself, it's open-source. =)
2022-10-03 21:13
DeMOSic

Registered: Aug 2021
Posts: 126
Quote: Or you can just build it yourself, it's open-source. =)

I suppose so, but using the windows build seems easier
2022-10-04 14:24
Oswald

Registered: Apr 2002
Posts: 5028
Quote: Or you can just build it yourself, it's open-source. =)

rumours say that you need to be top level genius to make a build yourself of your loader :D
2022-10-04 15:34
Danzig

Registered: Jun 2002
Posts: 430
Quote: rumours say that you need to be top level genius to make a build yourself of your loader :D

Rumours said that you can purchase your personal build of the loader. $$$, €€€ or BEER welcome I heard...
2022-10-04 16:16
jcompton

Registered: Feb 2006
Posts: 70
Quote: SD2IEC support for this loader (current and relevant previous versions) has now been invented! \=D/
Mad propz to Thierer! =)

https://github.com/thierer/sd2iec
https://github.com/thierer/sd2iec/releases/tag/v1.0.0atentdead0..


Speaking of...

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."

A random draw of Krill loader demos which don't explicitly warn that they're PAL only has still turned up a lot of seemingly-PAL-only demos, so.
2022-10-04 18:49
Krill

Registered: Apr 2002
Posts: 2854
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.
2022-10-04 18:58
Krill

Registered: Apr 2002
Posts: 2854
Quoting Oswald
rumours say that you need to be top level genius to make a build yourself of your loader :D
Only if "genius" is what separates Linux users from Windows users... which i kinda doubt. =)
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: 126
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: 2854
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: 1994
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: 2854
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: 2854
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: 2854
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: 126
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.
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
DeMOSic/HF^MS^BCC^LSD
psenough
Neotec/Padua
cobbpg
Guests online: 129
Top Demos
1 Next Level  (9.8)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.6)
6 No Bounds  (9.6)
7 Comaland 100%  (9.6)
8 Uncensored  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 Layers  (9.6)
2 It's More Fun to Com..  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Rainbow Connection  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Covert Bitops  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Crest  (9.3)
5 Censor Design  (9.3)
Top Diskmag Editors
1 Jazzcat  (9.4)
2 Magic  (9.4)
3 hedning  (9.2)
4 Elwix  (9.1)
5 A Life in Hell  (9.1)

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