| |
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? |
|
| |
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. =) |
| |
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! |
| |
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 isSVNVERSION = svnversion
ifneq ($(wildcard ../../.svn/format),)
VERSION = $(shell $(SVNVERSION) | tr -d [:cntrl:])
else
VERSION = $(shell $(GREP) -oP 'VERSION_STRING "\K[^"]+' ../version.inc)
endif
[...]
GREP = grep |
| |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Yeah, could be a little more prominent, that goofs section. :) |
| |
F7sus4
Registered: Apr 2013 Posts: 112 |
It's conveniently hidden. ;-) |
| |
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.. |
| |
MagerValp
Registered: Dec 2001 Posts: 1060 |
Whoa. Nice. |
| |
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
}; |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting tlrSeems 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. |
| |
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. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Congrats on release $c0. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Congrats on release $c0.
never thought of that! pretty nice |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting DeMOSicca65: 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. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Quoting DeMOSicca65: 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 |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting DeMOSicit 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? |
| |
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?) |
| |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting DeMOSicit didnt. But seriously, ARE you trying to get it to build with CMD.EXE? Please say no. =) |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Quoting DeMOSicit 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. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting DeMOSicive 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. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Quoting DeMOSicive 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 |
| |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting DeMOSici will have to try this. will do now Also revert all your Makefile changes. =) |
| |
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 KrillAlso revert all your Makefile changes. =)
Hehe dont worry, i replaced the entire folder with the original from the zip |
| |
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 |
| |
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 |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Or you can just build it yourself, it's open-source. =) |
| |
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 |
| |
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 |
| |
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... |
| |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting jcomptonFor 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. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting Oswaldrumours 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. =) |
| |
map
Registered: Feb 2002 Posts: 27 |
Quoting DeMOSicoh 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. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Quoting DeMOSicoh 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 |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting mapRegarding 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. |
| |
JackAsser
Registered: Jun 2002 Posts: 1994 |
Quote: Quoting mapRegarding 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 |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting JackAsserNot 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. =) |
| |
Perplex
Registered: Feb 2009 Posts: 254 |
Quoting Oswaldrumours 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. ;) |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting DeMOSicFor 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? |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting KrillQuoting jcomptonFor 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. |
| |
DeMOSic
Registered: Aug 2021 Posts: 126 |
Quote: Quoting DeMOSicFor 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. |
| |
jcompton
Registered: Feb 2006 Posts: 70 |
Quote: Quoting KrillQuoting jcomptonFor 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. |