Stone Oakvalley's Authentic SID Collection (SOASC=)
The automated Commodore 64 SID Music recorded to MP3/FLAC. Project based on High Voltage SID Collection & Compute's Gazette SID (CGSC)


                          



T H E   R E A L   D E A L   I N    - A U T H E N T I C -    C O M M O D O R E   6 4   M U S I C  !



SID tunes too large - SOLUTION!
in SOASC= BUGS | Thursday, September 03, 2015 | 12:09


The following list contains SID tunes that are over 202 blocks (on a Floppy Disc/D64 image) and is impossible to load as a single PRG into the memory of a factory stock Commodore 64.


Been searching long and hard for a solution for this problem. As we are aware the normal standard loading routines on a stock C64 cannot handle programs over 202 blocks in size.

These SID songs (converted to PRG with PSID64 and compressed with Exomizer) was all unable to load properly by standard ways on C64 (tried MMC64, and loading from SD2IEC, would suspect the same result if loaded from a real physical 1541 drive too).



SOLUTION #1 - For real Floppy Drive (1541)

The "loader" found in the Action Replay MK 4 cartridge can do so. The loader.prg is a 1016 bytes long thinghy that you can select with cursor keys and press return in order to load those cumbersome HVSC RSID (chop off 124 bytes, then save as .PRG) and let them load without errors and play nice :-)

You dont even need to Action Replay cartridge connected to C64 at all, simply just the special loader.


It should be pointed out that this loader and procedure will eventually end up as an D64 image. The D64 image mounted on my SD2IEC *does not* work with the MK4 loader (a quick flash of the led, then just stops loading), but the D64 image and loading works fine in emulators and real 1541 floppy drive connected to a real Commodore 64.


Straight from the Action Replay manual:

LOADING WITHOUT THE CARTRIDGE PRESENT

1. LOAD"LOADER",8 and RUN. The Loader must previously have been saved to the disk.

2. Move the cursor over the name of the file and press RETURN.

Programs over 202 blocks in length, and all Warp*25 files must be loaded either by the cartridge or the Loader. No alternative loading system can handle Warp files, but some can handle long, normal format files. Shorter programs and two part programs saved by the standard Save option can be loaded by the normal CBM kernal, or any sensibly written hardware based disk fastloader. If a two part program is loaded by the loader only the first part will load at high speed.

NOTE: The LOADER does not work with the 1581 drive.

In addition, its best to compress the SID PRG too with Exomizer to keep the space at minimum. Keep in mind that I'm not interrested in any fast loading / fastloaders or the Warp*25 fast loader mentioned, as the SOASC= ROTS project has time to wait for loading. But, unable to load them into memory successfully = is a direct show-stopper for recording!



SOLUTION #2 - For SD2IEC and real Floppy Drive (1541)

I found a different loader called "loader/ac.replay" ("**** ACTION REPLAY 3.0 LOADER ****), which does actually work well with D64 mounted on a SD2IEC, with directory and loading. But, the "TURBO OFF" mode had to be set for atleast SD2IEC in order to load the tunes properly, decompress and play as intended.

You dont even need to Action Replay cartridge connected to C64 at all, simply just the special loader.




Follow my routines, screenshots and programs below to do this yourselves. Finally somebody can make some sense out of this and present it clearly for everybody to understand :-)


The too-large SIDS in HVSC

The following files below are references to huge and over 202 blocks SID files. 202 blocks are the same as 51200 bytes. Basically memory from $0800 to $D000. It should be noted that the block sizes below are for the compressed Exomized version, not the original SID PRG filesize.


HVSC #50:
-------------
212 blocks - (Filesize as Exomized prg: 53832) - DEMOS/A-F/Compotune_Digi.sid
203 blocks - (Filesize as Exomized prg: 51418) - DEMOS/S-Z/Starray_Digi_Demo_part_2.sid


HVSC #52:
-------------
207 blocks - (Filesize as Exomized prg: 52589) - MUSICIANS/P/Pajda/Cannon_Fodder_Soundtrack.sid
225 blocks - (Filesize as Exomized prg: 56940) - MUSICIANS/P/Pajda/Ulani.sid
206 blocks - (Filesize as Exomized prg: 52364) - MUSICIANS/T/Toaster/Inside_Your_Dreams.sid
217 blocks - (Filesize as Exomized prg: 55030) - MUSICIANS/T/Toaster/Poison.sid


HVSC #53:
-------------
211 blocks - (Filesize as Exomized prg: 53517) - MUSICIANS/B/Blackman/Amorphis.sid


HVSC #56:
-------------
225 blocks - (Filesize as Exomized prg: 57003) - DEMOS/S-Z/School.sid
236 blocks - (Filesize as Exomized prg: 59838) - MUSICIANS/D/Data/Busty_Cactus.sid


HVSC #57:
-------------
215 blocks - (Filesize as Exomized prg: 54533) - DEMOS/M-R/Muh.sid


HVSC #58:
-------------
205 blocks - (Filesize as Exomized prg: 52008) - MUSICIANS/S/Street_Tuff/Calling_Earth.sid


HVSC #60:
-------------
157 blocks - MUSICIANS/R/Reiter/Oxygene.sid


HVSC #63:
-------------
208 blocks - (Filesize as Exomized prg: 52645) - MUSICIANS/0-9/4753_Softcopy/Best_O_Joint_Short-Mix.sid
206 blocks - (Filesize as Exomized prg: 52123) - MUSICIANS/0-9/4753_Softcopy/Scrambled_Artists_vol_2.sid
211 blocks - (Filesize as Exomized prg: 53513) - MUSICIANS/0-9/4753_Softcopy/Ship_of_Dogs.sid
207 blocks - (Filesize as Exomized prg: 52563) - MUSICIANS/S/Swayze/Marty.sid
225 blocks - (Filesize as Exomized prg: 57003) - MUSICIANS/S/Swayze/School.sid
##Note Marty.sid says $1C00 as LOAD/INIT


HVSC #65:
-------------
203 blocks - (Filesize as Exomized prg: 51408) - MUSICIANS/0-9/4753_Softcopy/Debbies_Rap_Machine.sid
206 blocks - (Filesize as Exomized prg: 52336) - MUSICIANS/0-9/4753_Softcopy/DJ_4753s_Mega_M_U_S_I_C.sid
219 blocks - (Filesize as Exomized prg: 55505) - MUSICIANS/0-9/4753_Softcopy/Michael_Jackson-LIVE.sid
202 blocks - (Filesize as Exomized prg: 51203) - MUSICIANS/M/Madhacker/Music_Lover_Mix.sid
202 blocks - (Filesize as Exomized prg: 51287) - MUSICIANS/V/Visac/Black_Angle.sid


HVSC #66:
-------------
PAL: 207 blocks - (Filesize As Exomized prg: 52530) - MUSICIANS/S/Sir/Megablast_part_3.sid


HVSC #67:
--------------
PAL: 210 blocks - (Filesize as Exomized prg: 53097) - MUSICIANS/A/Alien-Crackings/Digital_Mix_Two.sid
PAL: 210 blocks - (Filesize As Exomized prg: 53171) - MUSICIANS/M/Moog/ZZ-Top.sid


HVSC #68:
-------------
PAL: 216 blocks - (Filesize As Exomized prg: 54691) - MUSICIANS/T/Toaster/Poison.sid


HVSC #69:
--------------
PAL: 210 blocks - (Filesize As Exomized prg: 53171) - MUSICIANS/M/Moog/ZZ-Top.sid


**************************************************************************************************************
It should be noted that the list above will be successfully recorded on real hardware, and does not really represent a bug anymore (as originally listed), but since the solution was so dense, it was kept inside the BUGS section to help others understand and to make some sense of it all.
**************************************************************************************************************


Solution #1 and #2 explained/procedure


Step 1 - for Solution #1 and #2:
First, load a SID file into your hex editor. Notice it says RSID. This is important, otherwise the PRG on its own will not start properly.

Simply select and delete the bytes, then save it as filename.prg.

The example SID was 60158 bytes long, and as a run-able PRG, 60158-124 = 60034 bytes.



Step 2 - for Solution #1 and #2:
Then, ignite exomizer.exe and compress the previously chopped PRG file, use something in the line of:

exomizer sfx $1000 -o"00251001out.prg" "00251001.prg" -n

I used exomizer v2.07 for my example.

The $1000 is the SYS Call that will be executed once the uncompression was done on the C64. The $1000 is found in the SID file as "INIT ADDRESS".

The now compressed filesize becomes: 52635 bytes. Still its over 51200 bytes which are over max loadsize for standard C64 loading. Therefore, lets continue to next step :-)



Step 3 - for Solution #1:
Now, we need to create a perfect D64 disc with the loader already on it, blank fresh from the emulated cartridge.

Then, I inserted Action Replay 4.2 CRT image into WinVice C64 emulator v2.4 and pressed F5 - Utilites.

The .CRT cartridge image is available for download, check bottom of page.



Step 4 - for Solution #1:
Now, make sure you have created a blank D64 image in WinVice and inserted the disc. Then, press F7 - SAVE LOADER (this will install the loader.prg onto your blank disc image).

Possibly it does some more tricks, but I don't know about that.



Step 5 - for Solution #1:
If everything worked, you shall see the:

SAVING LOADER
00, OK,00,00

PRESS A KEY

NOTE! If you don't see this and it seems to be stuck/take forever, you may have to enable "TRUE DRIVE EMULATION" in Options for WinVice. At least I had to.



Step 6 - for Solution #1:
Then finally copy your exomized SID PRG onto your freshly D64 image that contained the AR Loader prg, then start the "loader.prg", run it, and you are presented with the following loader menu. As you can see my testfile "00251001" is at 208 blocks.

The filename 00251001 is internal reference to my project, but the original filename was from HVSC #63:

MUSICIANS/0-9/4753_Softcopy/Best_O_Joint_Short-Mix.sid




Step 7 - for Solution #1:
Here I had moved my cursor up to the specific 208 block file and simply pressed RETURN. The AR Loader will initiate the loading and successfully load that file into memory and run it automatically.

(Note: On the uploaded version of loader.prg, it does not says "SEARCHING FOR..." and "LOADING". In fact, when I made the screenshot I came over various versions of the AR LOADER.PRG and for some reason it ended up here.)

The result is sweet sampled music :-)



Step 3 - for Solution #2:
After the D64 image was mounted on SD2IEC, simply run the "loader.prg", and the following directory listing will be seen.

Now, make sure you set TURBO to OFF (F7) as illustrated. Then simply press the character for the file to load on the keyboard. In my case, I pressed B (since A is just the loader again).



Step 4 - for Solution #2:
After quite a while (1minute or so), the large 50k file (202+ blocks) was loaded properly and autoruns, Exomiser decrunches (small @ in corner) for a couple of seconds, and voila, the song is playing fine!



If you were / are lazy following my steps regarding the creation of a D64 image with an LOADER.PRG on it, you can simply download my WIN32 tool available below.

It will create the same D64 image as uploaded below ("Fresh AR Loader").

Have phun. Instructions are in the screenshot or in the command line usage output. Two versions are available, one for Action Replay MK4 loader and one for Action Replay V3.0 loader (works with SD2IEC).




Please review these related article links:
Click to open prgAction Replay's MK4 extracted Loader.PRG
Click to open crtAction Replay v4.2 CRT (C64 Cartridge image)
Click to open d64The fresh AR MK4 Loader created D64 image that contains loader.prg
Click to open d64My 00251001.prg SID and AR MK4 loader.prg test image (results of the procedure above)
Click to open zipWin32 Executable: Generate_AR_LOADER_FRESH_D64.zip (works only with 1541 floppies)
Click to open prgAction Replay V3.0 loader/ac.replay.PRG
Click to open zipWin32 Executable: Generate_AR_LOADER_FRESH_D64_SD2IEC.zip (works with 1541 floppies and SD2IEC D64 mount)
Click to open d64The fresh AR V3.0 Loader created D64 image that contains loader/ac.replay.prg
Click to open htmlA list for where the AR V3.0 (loader/ac.replay.prg) was found on D64 images found on internet originally


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Posted by: Bug-hunter, Stone Oakvalley | Publisher: Crazy Multi Talent, Stone Oakvalley
Last revised: July 15, 2018 - 21:43 | Page views: 1902


Website Design by post@stone-oakvalley-studios.com - Copyright © 2019 www.stone-oakvalley-studios.com