From b8aadaa88020d088e4222d850b7c66ae20fbfd2f Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 4 Oct 2020 13:42:57 +0200 Subject: [PATCH] documented how to create hybrid ROM --- Makefile | 14 ++++++++++++++ bin/{README.txt => README.md} | 10 ++++------ doc/Hybrid-build.md | 13 +++++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) rename bin/{README.txt => README.md} (67%) create mode 100644 doc/Hybrid-build.md diff --git a/Makefile b/Makefile index 6cd4d894..3ebae77f 100644 --- a/Makefile +++ b/Makefile @@ -201,6 +201,20 @@ updatebin: @$(TOOL_RELEASE) -i ./build -o ./bin $(patsubst build/%,%,$(REL_TARGET_LIST)) @cp build/chargen_openroms.rom bin/chargen_openroms.rom +# Rules - external blobs + +kernal: + @echo + @echo Please copy \'kernal\' file from the original ROM set to the \'open-roms\' directory + @echo + @exit 1 + +basic: + @echo + @echo Please copy \'basic\' file from the original ROM set to the \'open-roms\' directory + @echo + @exit 1 + # Rules - tools $(DIR_ACME) $(SRC_ACME): diff --git a/bin/README.txt b/bin/README.md similarity index 67% rename from bin/README.txt rename to bin/README.md index 806e59cf..19580681 100644 --- a/bin/README.txt +++ b/bin/README.md @@ -2,12 +2,12 @@ Follow these rules, or bad things will happen! -- Don't mix ROMs for different platforms - use generic BASIC with generic KERNAL, Ultimate64 BASIC with Ultimate64 KERNAL, etc. +* Don't mix ROMs for different platforms - use generic BASIC with generic KERNAL, Ultimate64 BASIC with Ultimate64 KERNAL, etc. -- Don't mix these ROMs with any other ROMs; exceptions: +* Don't mix these ROMs with any other ROMs; exceptions: - kernal_hybrid.rom, which is meant to be used (and has to be used) with the original BASIC ROM; - however, this hybrid ROM cannot be distributed due to legal/copyright reasons + however, this hybrid ROM cannot be distributed due to legal/copyright reasons; see [here](./../doc/Hybrid-build.md) for instruction how to create it - chargen_*.rom - these ones are fully interchangeable @@ -22,6 +22,4 @@ Have fun! ------ -PXL font was created by Retrofan, we got a permission to include it with Open ROMs under GNU Lesser General Public License 3.0, see: - -- https://www.forum64.de/index.php?thread/84000-neuer-c64-systemfont-auch-plus4-c128-atari/&postID=1493383#post1493383 +PXL font was created by Retrofan, we got a permission to include it with Open ROMs under GNU Lesser General Public License 3.0, see [here](https://www.forum64.de/index.php?thread/84000-neuer-c64-systemfont-auch-plus4-c128-atari/&postID=1493383#post1493383). diff --git a/doc/Hybrid-build.md b/doc/Hybrid-build.md new file mode 100644 index 00000000..6c9cf601 --- /dev/null +++ b/doc/Hybrid-build.md @@ -0,0 +1,13 @@ + +The C64 ROM is typically distributed in 2 files 8 KB each, one called *kernal*, one *basic*. This might be misleading, as the C64 Kernal takes about 6.5 KB, and the BASIC about 9.5 KB - some parts of BASIC is therefore placed in the *kernal* file. This is the main reason you can't easily use the Open ROMs Kernal file with original C64 BASIC. + +But it is still possible to combine them: +* copy the *kernal* file to the *open-roms* main directory +* from the Linux command line type `make test_hybrid` - this will crate the hybrid Kernal file, *open-roms/bin/kernal_hybrid.rom*, and launch VICE emulator with it + +Sorry, no Windows support (but it should work under *Windows Subsystem for Linux* if GCC and libpng devel packages are installed), and no macOS support (I don't have a machine to test). + +Please note, that it is illegal to distribute such a hybrid ROM: + +* it contains proprietary Commodore/Microsoft code +* it contains LGPL 3 licensed Open ROMs code combined with code not available under compatible license