Revision: 28054
http://sourceforge.net/p/vice-emu/code/28054
Author: gpz
Date: 2014-05-06 09:56:00 +0000 (Tue, 06 May 2014)
Log Message:
-----------
started some testcases for vsid/other players, needs some more love
Added Paths:
-----------
testprogs/vsid/
testprogs/vsid/environment/
testprogs/vsid/environment/Calypso.sid
testprogs/vsid/environment/Makefile
testprogs/vsid/environment/basicram-v1.sid
testprogs/vsid/environment/basicram-v2.sid
testprogs/vsid/environment/basicram.asm
testprogs/vsid/environment/basicram.sid
testprogs/vsid/environment/header.asm
testprogs/vsid/environment/readme.txt
testprogs/vsid/environment/underbasic.asm
testprogs/vsid/environment/underbasic.sid
testprogs/vsid/environment/underkernal.asm
testprogs/vsid/environment/underkernal.sid
testprogs/vsid/readme.txt
testprogs/vsid/tunes/
testprogs/vsid/tunes/Boot_Zak_v2.sid
testprogs/vsid/tunes/C64_Christmas_Album_BASIC.sid
testprogs/vsid/tunes/Fruitbank.sid
testprogs/vsid/tunes/Mean_City.sid
testprogs/vsid/tunes/Ms_Pacman.sid
testprogs/vsid/tunes/Triango.sid
testprogs/vsid/tunes/readme.txt
Added: testprogs/vsid/environment/Calypso.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/environment/Calypso.sid
===================================================================
--- testprogs/vsid/environment/Calypso.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/environment/Calypso.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/environment/Calypso.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/environment/Makefile
===================================================================
--- testprogs/vsid/environment/Makefile (rev 0)
+++ testprogs/vsid/environment/Makefile 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,18 @@
+TESTS=basicram-v1.sid basicram-v2.sid underbasic.sid underkernal.sid
+
+all: $(TESTS)
+
+basicram-v1.sid: basicram.asm header.asm
+ acme -Dheaderversion=1 -o basicram-v1.sid basicram.asm
+
+basicram-v2.sid: basicram.asm header.asm
+ acme -Dheaderversion=2 -o basicram-v2.sid basicram.asm
+
+underbasic.sid: underbasic.asm header.asm
+ acme -Dheaderversion=2 -o underbasic.sid underbasic.asm
+
+underkernal.sid: underkernal.asm header.asm
+ acme -Dheaderversion=2 -o underkernal.sid underkernal.asm
+
+clean:
+ rm -f *.prg
\ No newline at end of file
Added: testprogs/vsid/environment/basicram-v1.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/environment/basicram-v1.sid
===================================================================
--- testprogs/vsid/environment/basicram-v1.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/environment/basicram-v1.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/environment/basicram-v1.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/environment/basicram-v2.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/environment/basicram-v2.sid
===================================================================
--- testprogs/vsid/environment/basicram-v2.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/environment/basicram-v2.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/environment/basicram-v2.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/environment/basicram.asm
===================================================================
--- testprogs/vsid/environment/basicram.asm (rev 0)
+++ testprogs/vsid/environment/basicram.asm 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,31 @@
+
+realstart = $0f00
+realinit = $1000
+realplay = $1003
+
+;headerversion = $0002
+
+cleanimage = 1 ; does not use memory outside loading range
+
+imagestart = $0800
+imageend = $9fff
+
+ !src "header.asm"
+
+;-------------------------------------------------------------------------------
+
+ * = imagestart
+ !text "test1234"
+
+ ; include calypso sid binary ($0f00 - ~$4000)
+ * = realstart
+ !binary "Calypso.sid" ,, $7c + 2 ; skip psid header and load address
+
+ * = $8000
+init
+ jmp realinit
+play
+ jmp realplay
+
+ * = imageend
+ !byte 0
Added: testprogs/vsid/environment/basicram.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/environment/basicram.sid
===================================================================
--- testprogs/vsid/environment/basicram.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/environment/basicram.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/environment/basicram.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/environment/header.asm
===================================================================
--- testprogs/vsid/environment/header.asm (rev 0)
+++ testprogs/vsid/environment/header.asm 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,58 @@
+
+!macro BWORD value {
+ !byte (value >> 8) & $ff
+ !byte (value >> 0) & $ff
+}
+!macro BLONG value {
+ !byte (value >> 24) & $ff
+ !byte (value >> 16) & $ff
+ !byte (value >> 8) & $ff
+ !byte (value >> 0) & $ff
+}
+;-------------------------------------------------------------------------------
+
+!if (headerversion > $0001) {
+ headerlen = $7c
+} else {
+ headerlen = $76
+}
+
+ * = imagestart - (headerlen + 2)
+
+h00 !byte $50,$53,$49,$44 ;magicID: ``PSID'' or ``RSID''
+h04 +BWORD headerversion ; version
+h06 +BWORD headerlen ; offset to data
+h08 +BWORD $0000 ;loadAddress
+h0A +BWORD init ;initAddress
+h0C +BWORD play ;playAddress
+h0E +BWORD $01 ;songs
+h10 +BWORD $01 ;startSong
+h12 +BLONG $00000000 ;speed
+
+; ``<name>''
+h16 !byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31
+; ``<author>''
+h36 !byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31
+; ``<released>'' (once known as ``<copyright>'')
+h56 !byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$31
+
+!if (headerversion = $0002) {
+h76 +BWORD $0000 ;flags
+h78 !BYTE $00 ;startPage (relocStartPage)
+h79 !BYTE $00 ;pageLength (relocPages)
+h7A !BYTE $00 ;secondSIDAddress (v3 only, should be 0)
+h7B !BYTE $00 ;reserved (should be 0)
+}
+!if (headerversion = $0003) {
+h76 +BWORD $0000 ;flags
+h78 !BYTE $00 ;startPage (relocStartPage)
+h79 !BYTE $00 ;pageLength (relocPages)
+h7A !BYTE $00 ;secondSIDAddress
+h7B !BYTE $00 ;reserved (should be 0)
+}
+ ; binary load address (if not in header)
+ ; not really part of the psid header
+ * = (imagestart - 2)
+ !word imagestart
+
+
Added: testprogs/vsid/environment/readme.txt
===================================================================
--- testprogs/vsid/environment/readme.txt (rev 0)
+++ testprogs/vsid/environment/readme.txt 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,61 @@
+
+some artificial tests to check a bunch of border cases that a PSID capable
+player should support.
+
+since most players do not show the C64 screen, CALYPSO.SID is played instead
+when the test is working.
+
+--------------------------------------------------------------------------------
+
+* basicram-v1.sid, basicram-v2.sid
+
+various variations of the most simple case, using memory from $0800 to $9fff
+for the binary image
+
+* underbasic.sid
+
+uses memory from $0800 to $bfff
+
+init/play are in basic ROM area
+
+* underkernal.sid
+
+uses memory from $0800 to $fff8
+
+init/play are in kernal ROM area
+
+--------------------------------------------------------------------------------
+
+* PSID (regular)
+
+- init/play may actually be located under ROM or I/O - the caller is expected to
+ set up $01 correctly.
+
+* RSID (regular)
+
+- VIC - IRQ set to raster $137, but not enabled.
+- CIA 1 timer A - set to 60Hz with the counter running and IRQs active.
+- Other timers - disabled and loaded with $FFFF.
+- Bank register $01 - $37
+
+- A side effect of the bank register is that init MUST NOT be located under a
+ ROM/IO memory area (addresses $A000-$BFFF and $D000-$FFFF) or outside the
+ load image.
+
+- Since every effort needs to be made to run the tune on a real C64 the load
+ address of the image MUST NOT be set lower than $07E8.
+
+* PSID v1 and v2 (compute sidplayer)
+
+These tunes can not be played directly, as no player is included - so a proper
+"sidplayer" binary must be injected first.
+
+* RSID (BASIC tunes)
+
+These are regular BASIC programs, and as such must be run using the C64 BASIC
+interpreter.
+
+- reset emulated machine
+- inject tune into RAM
+- set 780 to sub tune nr (starting with 0)
+- start by "RUN"
Added: testprogs/vsid/environment/underbasic.asm
===================================================================
--- testprogs/vsid/environment/underbasic.asm (rev 0)
+++ testprogs/vsid/environment/underbasic.asm 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,31 @@
+
+realstart = $0f00
+realinit = $1000
+realplay = $1003
+
+;headerversion = $0002
+
+cleanimage = 1 ; does not use memory outside loading range
+
+imagestart = $0800
+imageend = $bfff
+
+ !src "header.asm"
+
+;-------------------------------------------------------------------------------
+
+ * = imagestart
+ !text "test1234"
+
+ ; include calypso sid binary ($0f00 - ~$4000)
+ * = realstart
+ !binary "Calypso.sid" ,, $7c + 2 ; skip psid header and load address
+
+ * = $b000
+init
+ jmp realinit
+play
+ jmp realplay
+
+ * = imageend
+ !byte 0
Added: testprogs/vsid/environment/underbasic.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/environment/underbasic.sid
===================================================================
--- testprogs/vsid/environment/underbasic.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/environment/underbasic.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/environment/underbasic.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/environment/underkernal.asm
===================================================================
--- testprogs/vsid/environment/underkernal.asm (rev 0)
+++ testprogs/vsid/environment/underkernal.asm 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,31 @@
+
+realstart = $0f00
+realinit = $1000
+realplay = $1003
+
+;headerversion = $0002
+
+cleanimage = 1 ; does not use memory outside loading range
+
+imagestart = $0800
+imageend = $fff8
+
+ !src "header.asm"
+
+;-------------------------------------------------------------------------------
+
+ * = imagestart
+ !text "test1234"
+
+ ; include calypso sid binary ($0f00 - ~$4000)
+ * = realstart
+ !binary "Calypso.sid" ,, $7c + 2 ; skip psid header and load address
+
+ * = $e000
+init
+ jmp realinit
+play
+ jmp realplay
+
+ * = imageend
+ !byte 0
Added: testprogs/vsid/environment/underkernal.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/environment/underkernal.sid
===================================================================
--- testprogs/vsid/environment/underkernal.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/environment/underkernal.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/environment/underkernal.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/readme.txt
===================================================================
--- testprogs/vsid/readme.txt (rev 0)
+++ testprogs/vsid/readme.txt 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,16 @@
+this directory contains testcases for SID players (in particular VSID, which
+comes with VICE).
+
+--------------------------------------------------------------------------------
+
+tunes - "real world" test cases, from HVSC
+
+environment - artificial tests for checking the environment tunes run in
+
+--------------------------------------------------------------------------------
+
+info/references:
+
+http://www.hvsc.de/download/C64Music/DOCUMENTS/SID_file_format.txt
+
+http://sidplayer.org/ (compute sidplayer)
\ No newline at end of file
Added: testprogs/vsid/tunes/Boot_Zak_v2.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/tunes/Boot_Zak_v2.sid
===================================================================
--- testprogs/vsid/tunes/Boot_Zak_v2.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/tunes/Boot_Zak_v2.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/tunes/Boot_Zak_v2.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/tunes/C64_Christmas_Album_BASIC.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/tunes/C64_Christmas_Album_BASIC.sid
===================================================================
--- testprogs/vsid/tunes/C64_Christmas_Album_BASIC.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/tunes/C64_Christmas_Album_BASIC.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/tunes/C64_Christmas_Album_BASIC.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/tunes/Fruitbank.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/tunes/Fruitbank.sid
===================================================================
--- testprogs/vsid/tunes/Fruitbank.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/tunes/Fruitbank.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/tunes/Fruitbank.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/tunes/Mean_City.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/tunes/Mean_City.sid
===================================================================
--- testprogs/vsid/tunes/Mean_City.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/tunes/Mean_City.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/tunes/Mean_City.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/tunes/Ms_Pacman.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/tunes/Ms_Pacman.sid
===================================================================
--- testprogs/vsid/tunes/Ms_Pacman.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/tunes/Ms_Pacman.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/tunes/Ms_Pacman.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/tunes/Triango.sid
===================================================================
(Binary files differ)
Index: testprogs/vsid/tunes/Triango.sid
===================================================================
--- testprogs/vsid/tunes/Triango.sid 2014-05-06 07:43:09 UTC (rev 28053)
+++ testprogs/vsid/tunes/Triango.sid 2014-05-06 09:56:00 UTC (rev 28054)
Property changes on: testprogs/vsid/tunes/Triango.sid
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: testprogs/vsid/tunes/readme.txt
===================================================================
--- testprogs/vsid/tunes/readme.txt (rev 0)
+++ testprogs/vsid/tunes/readme.txt 2014-05-06 09:56:00 UTC (rev 28054)
@@ -0,0 +1,23 @@
+this directory contains tunes from the HVSC which rely on certain border cases,
+and/or can be used to check certain features/properties of the psid player.
+
+--------------------------------------------------------------------------------
+
+MUSICIANS/R/Rayden/Boot_Zak_v2.sid - relies on exact emulation of the cpu port,
+ (see CPU/cpuport)
+
+MUSICIANS/B/Bjerregaard_Johannes/Fruitbank.sid - image loads from $0400 - ...
+
+GAMES/S-Z/Triango.sid - init copies code to $0400 - ...
+
+GAMES/M-R/Ms_Pacman.sid - image located "under" BASIC ROM
+
+GAMES/M-R/Mean_City.sid - image located "under" KERNAL ROM
+
+DEMOS/Commodore/C64_Christmas_Album_BASIC.sid - BASIC tune with sub tunes
+
+--------------------------------------------------------------------------------
+
+TODO:
+
+- add compute sidplayer tune (in psid format that is)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|