annotate src/xs_sidplay2.cpp @ 957:0e60e5d56fdd

Change how the backend emulator library is initialized for libSIDPlay2 and FP, as it seems the engine configuration has some persistence despite reconfiguration between loaded files if same engine object is retained. This caused, for example, 2SID stereo tunes being played "mono" if played after a normal 1-SID tune. Duh.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 20 Nov 2012 22:13:48 +0200
parents a5b118c853f5
children 828dce1195e6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 XMMS-SID - SIDPlay input plugin for X MultiMedia System (XMMS)
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3
838
ae1f6418d093 libSIDPlay2-FP backend interface is now in a separate module. Configuration
Matti Hamalainen <ccr@tnsp.org>
parents: 834
diff changeset
4 libSIDPlay2 support
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5
324
dd201740a720 Changed copyright text.
Matti Hamalainen <ccr@tnsp.org>
parents: 321
diff changeset
6 Programmed and designed by Matti 'ccr' Hamalainen <ccr@tnsp.org>
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
7 (C) Copyright 1999-2012 Tecnic Software productions (TNSP)
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 This program is free software; you can redistribute it and/or modify
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10 it under the terms of the GNU General Public License as published by
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 the Free Software Foundation; either version 2 of the License, or
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 (at your option) any later version.
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 This program is distributed in the hope that it will be useful,
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 GNU General Public License for more details.
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18
412
7f694e5a1493 Updated GNU GPL (new FSF address) and some cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 402
diff changeset
19 You should have received a copy of the GNU General Public License along
7f694e5a1493 Updated GNU GPL (new FSF address) and some cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 402
diff changeset
20 with this program; if not, write to the Free Software Foundation, Inc.,
7f694e5a1493 Updated GNU GPL (new FSF address) and some cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 402
diff changeset
21 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 */
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 #include "xmms-sid.h"
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 #ifdef HAVE_SIDPLAY2
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27 #include "xs_sidplay2.h"
832
b158abe91a75 Header include cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 821
diff changeset
28 #include "xs_slsup.h"
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 #include "xs_config.h"
402
f997b79a7251 More work on merging of improved STIL/SLDB handling code with completely
Matti Hamalainen <ccr@tnsp.org>
parents: 396
diff changeset
30
833
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
31 #include <sidplay/sidplay2.h>
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
32 #if G_BYTE_ORDER == G_BIG_ENDIAN
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
33 # define SID2_NATIVE_UNSIGNED SID2_BIG_UNSIGNED
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
34 # define SID2_NATIVE_SIGNED SID2_BIG_SIGNED
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
35 #elif G_BYTE_ORDER == G_LITTLE_ENDIAN
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
36 # define SID2_NATIVE_UNSIGNED SID2_LITTLE_UNSIGNED
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
37 # define SID2_NATIVE_SIGNED SID2_LITTLE_SIGNED
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
38 #else
833
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
39 # error Unsupported endianess!
692
0126579b6652 Actually compiles now with libsidplay2 COM API, but does not work yet.
Matti Hamalainen <ccr@tnsp.org>
parents: 660
diff changeset
40 #endif
694
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
41
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
42
756
8299288df6d2 Rename internal structures.
Matti Hamalainen <ccr@tnsp.org>
parents: 754
diff changeset
43 class XSSIDPlay2 {
695
ca594ca1056f COM API support works now.
Matti Hamalainen <ccr@tnsp.org>
parents: 694
diff changeset
44 public:
770
72e58ecb1a2c Still not working. Urgh.
Matti Hamalainen <ccr@tnsp.org>
parents: 769
diff changeset
45 sidplay2 emu;
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
46 sid2_config_t config;
820
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
47 SidTune tune;
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
48
756
8299288df6d2 Rename internal structures.
Matti Hamalainen <ccr@tnsp.org>
parents: 754
diff changeset
49 XSSIDPlay2(void);
795
3e305ce076e8 Make old libSIDPlay2 support work again, the one available in most distros, such as Debian.
Matti Hamalainen <ccr@tnsp.org>
parents: 791
diff changeset
50 virtual ~XSSIDPlay2(void);
695
ca594ca1056f COM API support works now.
Matti Hamalainen <ccr@tnsp.org>
parents: 694
diff changeset
51 };
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53
694
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
54 #ifdef HAVE_RESID_BUILDER
833
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
55 # include <sidplay/builders/resid.h>
694
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
56 #endif
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
57
694
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
58 #ifdef HAVE_HARDSID_BUILDER
833
c0e892fa914a Begin moving libSIDPlay2-FP stuff to a separete module by removing the
Matti Hamalainen <ccr@tnsp.org>
parents: 832
diff changeset
59 # include <sidplay/builders/hardsid.h>
694
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
60 #endif
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
61
fd81a16434ed Move builder header inclusions.
Matti Hamalainen <ccr@tnsp.org>
parents: 693
diff changeset
62
820
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
63 XSSIDPlay2::XSSIDPlay2(void) : tune(0)
695
ca594ca1056f COM API support works now.
Matti Hamalainen <ccr@tnsp.org>
parents: 694
diff changeset
64 {
ca594ca1056f COM API support works now.
Matti Hamalainen <ccr@tnsp.org>
parents: 694
diff changeset
65 }
ca594ca1056f COM API support works now.
Matti Hamalainen <ccr@tnsp.org>
parents: 694
diff changeset
66
ca594ca1056f COM API support works now.
Matti Hamalainen <ccr@tnsp.org>
parents: 694
diff changeset
67
795
3e305ce076e8 Make old libSIDPlay2 support work again, the one available in most distros, such as Debian.
Matti Hamalainen <ccr@tnsp.org>
parents: 791
diff changeset
68 XSSIDPlay2::~XSSIDPlay2(void)
3e305ce076e8 Make old libSIDPlay2 support work again, the one available in most distros, such as Debian.
Matti Hamalainen <ccr@tnsp.org>
parents: 791
diff changeset
69 {
820
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
70 emu.load(NULL);
795
3e305ce076e8 Make old libSIDPlay2 support work again, the one available in most distros, such as Debian.
Matti Hamalainen <ccr@tnsp.org>
parents: 791
diff changeset
71 }
3e305ce076e8 Make old libSIDPlay2 support work again, the one available in most distros, such as Debian.
Matti Hamalainen <ccr@tnsp.org>
parents: 791
diff changeset
72
3e305ce076e8 Make old libSIDPlay2 support work again, the one available in most distros, such as Debian.
Matti Hamalainen <ccr@tnsp.org>
parents: 791
diff changeset
73
270
583f5651abff Cleanups, moved engine configuration to initialization function.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
74 /* We need to 'export' all this pseudo-C++ crap */
396
0a60ef2b5ab0 Cleanups
Matti Hamalainen <ccr@tnsp.org>
parents: 394
diff changeset
75 extern "C" {
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76
75
653c9b0d1320 SIDPlay2 support "works" now. Borked problems with threads.
Matti Hamalainen <ccr@tnsp.org>
parents: 74
diff changeset
77
270
583f5651abff Cleanups, moved engine configuration to initialization function.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
78 /* Check if we can play the given file
75
653c9b0d1320 SIDPlay2 support "works" now. Borked problems with threads.
Matti Hamalainen <ccr@tnsp.org>
parents: 74
diff changeset
79 */
751
55eea3fa8868 Rename some structures.
Matti Hamalainen <ccr@tnsp.org>
parents: 748
diff changeset
80 gboolean xs_sidplay2_probe(XSFile *f)
364
421e4fc13bce More and more of indentation fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
81 {
954
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
82 gchar probe[16];
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
83
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
84 if (f == NULL || !xs_fread_str(f, (guint8 *) probe, sizeof(probe)))
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
85 return FALSE;
954
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
86
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
87 // Old libSIDPlay2 does not support PSIDv3, afaik
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
88 if (!strncmp(probe, "PSID", 4) && probe[4] == 0 &&
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
89 probe[5] >= 1 && probe[5] <= 2)
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
90 return TRUE;
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
91 else
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
92 if (!strncmp(probe, "RSID", 4) &&
a5b118c853f5 Use xs_fread_str() and improve the probing of each backend to be more
Matti Hamalainen <ccr@tnsp.org>
parents: 869
diff changeset
93 probe[4] == 0 && probe[5] == 2)
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
94 return TRUE;
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
95 else
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
96 return FALSE;
364
421e4fc13bce More and more of indentation fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
97 }
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99
270
583f5651abff Cleanups, moved engine configuration to initialization function.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
100 /* Initialize SIDPlay2
75
653c9b0d1320 SIDPlay2 support "works" now. Borked problems with threads.
Matti Hamalainen <ccr@tnsp.org>
parents: 74
diff changeset
101 */
754
5557837fe5b6 Rename some more variables.
Matti Hamalainen <ccr@tnsp.org>
parents: 753
diff changeset
102 gboolean xs_sidplay2_init(XSEngineState * state)
364
421e4fc13bce More and more of indentation fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
103 {
957
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
104
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
105
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
106 return TRUE;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
107 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
108
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
109
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
110 /* Close SIDPlay2 engine
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
111 */
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
112 void xs_sidplay2_close(XSEngineState * state)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
113 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
114 XSSIDPlay2 *engine = (XSSIDPlay2 *) state->internal;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
115
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
116 XSDEBUG("SIDPlay2 backend shutdown.\n");
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
117
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
118 xs_sidplay2_delete(state);
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
119 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
120
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
121
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
122 /* Initialize current song and sub-tune
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
123 */
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
124 gboolean xs_sidplay2_initsong(XSEngineState * state)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
125 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
126 XSSIDPlay2 *engine = (XSSIDPlay2 *) state->internal;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
127
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
128 if (!engine)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
129 return FALSE;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
130
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
131 if (!engine->tune.selectSong(state->currSong))
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
132 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
133 xs_error("[SIDPlay2] tune.selectSong() failed\n");
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
134 return FALSE;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
135 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
136
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
137 if (engine->emu.load(&(engine->tune)) < 0)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
138 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
139 xs_error("[SIDPlay2] emu.load() failed\n");
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
140 return FALSE;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
141 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
142
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
143 if (engine->emu.config(engine->config) < 0)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
144 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
145 xs_error("[SIDPlay2] Emulator engine configuration failed!\n");
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
146 return FALSE;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
147 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
148
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
149 return TRUE;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
150 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
151
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
152
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
153 /* Emulate and render audio data to given buffer
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
154 */
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
155 guint xs_sidplay2_fillbuffer(XSEngineState * state, gchar * audioBuffer, guint audioBufSize)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
156 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
157 XSSIDPlay2 *engine = (XSSIDPlay2 *) state->internal;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
158
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
159 if (!engine)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
160 return 0;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
161
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
162 return engine->emu.play(audioBuffer, audioBufSize);
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
163 }
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
164
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
165
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
166 /* Load a given SID-tune file
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
167 */
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
168 gboolean xs_sidplay2_load(XSEngineState * state, gchar * filename)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
169 {
756
8299288df6d2 Rename internal structures.
Matti Hamalainen <ccr@tnsp.org>
parents: 754
diff changeset
170 XSSIDPlay2 *engine;
957
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
171 guint8 *buf = NULL;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
172 size_t bufSize;
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
173 gint i;
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
174
847
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
175 XSDEBUG("SIDPlay2 backend initializing.\n");
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
176
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
177 /* Allocate internal structures */
756
8299288df6d2 Rename internal structures.
Matti Hamalainen <ccr@tnsp.org>
parents: 754
diff changeset
178 engine = new XSSIDPlay2();
754
5557837fe5b6 Rename some more variables.
Matti Hamalainen <ccr@tnsp.org>
parents: 753
diff changeset
179 state->internal = engine;
770
72e58ecb1a2c Still not working. Urgh.
Matti Hamalainen <ccr@tnsp.org>
parents: 769
diff changeset
180 if (!engine)
957
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
181 {
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
182 xs_error("Allocating XSSIDPlay2 compound backend object failed.\n");
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
183 goto error;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
184 }
75
653c9b0d1320 SIDPlay2 support "works" now. Borked problems with threads.
Matti Hamalainen <ccr@tnsp.org>
parents: 74
diff changeset
185
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
186 /* Get current configuration */
847
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
187 XSDEBUG("SIDPlay2 emulation configuration\n");
770
72e58ecb1a2c Still not working. Urgh.
Matti Hamalainen <ccr@tnsp.org>
parents: 769
diff changeset
188 engine->config = engine->emu.config();
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
189
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
190 /* Configure channels and stuff */
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
191 switch (state->audioChannels)
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
192 {
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
193 case XS_CHN_AUTOPAN:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
194 engine->config.playback = sid2_stereo;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
195 break;
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
196
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
197 case XS_CHN_STEREO:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
198 engine->config.playback = sid2_stereo;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
199 break;
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
200
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
201 case XS_CHN_MONO:
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
202 default:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
203 engine->config.playback = sid2_mono;
754
5557837fe5b6 Rename some more variables.
Matti Hamalainen <ccr@tnsp.org>
parents: 753
diff changeset
204 state->audioChannels = XS_CHN_MONO;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
205 break;
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
206 }
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
207
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
208
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
209 /* Memory mode settings */
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
210 switch (xs_cfg.memoryMode)
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
211 {
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
212 case XS_MPU_BANK_SWITCHING:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
213 engine->config.environment = sid2_envBS;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
214 break;
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
215
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
216 case XS_MPU_TRANSPARENT_ROM:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
217 engine->config.environment = sid2_envTP;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
218 break;
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
219
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
220 case XS_MPU_PLAYSID_ENVIRONMENT:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
221 engine->config.environment = sid2_envPS;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
222 break;
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
223
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
224 case XS_MPU_REAL:
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
225 default:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
226 engine->config.environment = sid2_envR;
744
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
227 xs_cfg.memoryMode = XS_MPU_REAL;
c7fa50576c70 Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
Matti Hamalainen <ccr@tnsp.org>
parents: 723
diff changeset
228 break;
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
229 }
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
230
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
231
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
232 /* Audio parameters sanity checking and setup */
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
233 engine->config.precision = state->audioBitsPerSample;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
234 engine->config.frequency = state->audioFrequency;
748
d9d769b5dbe2 Remove oversampling support.
Matti Hamalainen <ccr@tnsp.org>
parents: 744
diff changeset
235
74
8cb66a3f75f7 Testing
Matti Hamalainen <ccr@tnsp.org>
parents: 73
diff changeset
236
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
237 switch (state->audioBitsPerSample)
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
238 {
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
239 case XS_RES_8BIT:
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
240 state->audioFormat = FMT_U8;
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
241 engine->config.sampleFormat = SID2_LITTLE_UNSIGNED;
758
6c8c968595d9 Sanitize some #ifdefs.
Matti Hamalainen <ccr@tnsp.org>
parents: 757
diff changeset
242 break;
359
b1a858b8cb1a Re-indentation all (non-generated) code.
Matti Hamalainen <ccr@tnsp.org>
parents: 352
diff changeset
243
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
244 case XS_RES_16BIT:
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
245 default:
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
246 switch (state->audioFormat)
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
247 {
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
248 case FMT_U16_LE:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
249 engine->config.sampleFormat = SID2_LITTLE_UNSIGNED;
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
250 break;
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
251
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
252 case FMT_U16_BE:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
253 engine->config.sampleFormat = SID2_BIG_UNSIGNED;
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
254 break;
127
ddb513bd2610 Improved audio format support, now supported formats are "queried" from
Matti Hamalainen <ccr@tnsp.org>
parents: 103
diff changeset
255
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
256 case FMT_U16_NE:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
257 engine->config.sampleFormat = SID2_NATIVE_UNSIGNED;
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
258 break;
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
259
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
260 case FMT_S16_LE:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
261 engine->config.sampleFormat = SID2_LITTLE_SIGNED;
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
262 break;
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
263
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
264 case FMT_S16_BE:
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
265 engine->config.sampleFormat = SID2_BIG_SIGNED;
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
266 break;
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
267
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
268 default:
821
dea579b6c3b3 Oops, need to set FMT_S16_NE audio format for XMMS output backend as well
Matti Hamalainen <ccr@tnsp.org>
parents: 820
diff changeset
269 state->audioFormat = FMT_S16_NE;
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
270 engine->config.sampleFormat = SID2_NATIVE_SIGNED;
757
9c135d421676 Clean up endianess handling a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 756
diff changeset
271 break;
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
272 }
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
273 break;
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
274 }
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
275
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
276 /* Clockspeed settings */
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
277 switch (xs_cfg.clockSpeed)
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
278 {
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
279 case XS_CLOCK_NTSC:
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
280 engine->config.clockDefault = SID2_CLOCK_NTSC;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
281 break;
366
29c4484f1de2 Fixes in emulator engine configuration, make 'forceModel' option work.
Matti Hamalainen <ccr@tnsp.org>
parents: 364
diff changeset
282
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
283 default:
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
284 case XS_CLOCK_PAL:
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
285 engine->config.clockDefault = SID2_CLOCK_PAL;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
286 xs_cfg.clockSpeed = XS_CLOCK_PAL;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
287 break;
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
288 }
366
29c4484f1de2 Fixes in emulator engine configuration, make 'forceModel' option work.
Matti Hamalainen <ccr@tnsp.org>
parents: 364
diff changeset
289
29c4484f1de2 Fixes in emulator engine configuration, make 'forceModel' option work.
Matti Hamalainen <ccr@tnsp.org>
parents: 364
diff changeset
290
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
291 /* Configure rest of the emulation */
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
292 if (xs_cfg.forceSpeed)
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
293 {
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
294 engine->config.clockForced = true;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
295 engine->config.clockSpeed = engine->config.clockDefault;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
296 }
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
297 else
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
298 {
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
299 engine->config.clockForced = false;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
300 engine->config.clockSpeed = SID2_CLOCK_CORRECT;
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
301 }
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
302
710
a6283cf95c99 Updated to work with latest distortion patched libSIDPlay2+reSID from Antti
Matti Hamalainen <ccr@tnsp.org>
parents: 702
diff changeset
303
761
641b7693fecc Cosmetic cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 758
diff changeset
304 if (xs_cfg.sid2OptLevel < 0 || xs_cfg.sid2OptLevel > SID2_MAX_OPTIMISATION)
641b7693fecc Cosmetic cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 758
diff changeset
305 {
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
306 xs_error("Invalid sid2OptLevel=%d, falling back to %d.\n",
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
307 xs_cfg.sid2OptLevel, SID2_DEFAULT_OPTIMISATION);
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
308
761
641b7693fecc Cosmetic cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 758
diff changeset
309 xs_cfg.sid2OptLevel = SID2_DEFAULT_OPTIMISATION;
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
310 }
766
19e2745f75d8 Cosmetics and leftover cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 765
diff changeset
311 engine->config.optimisation = xs_cfg.sid2OptLevel;
366
29c4484f1de2 Fixes in emulator engine configuration, make 'forceModel' option work.
Matti Hamalainen <ccr@tnsp.org>
parents: 364
diff changeset
312
765
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
313 engine->config.sidDefault = xs_cfg.mos8580 ? SID2_MOS8580 : SID2_MOS6581;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
314 engine->config.sidModel = xs_cfg.forceModel ? engine->config.sidDefault : SID2_MODEL_CORRECT;
1294df516d2e Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 761
diff changeset
315 engine->config.sidSamples = TRUE;
321
45ad9f7c1628 Improved compatibility, some fixes in reSID emulation initialization.
Matti Hamalainen <ccr@tnsp.org>
parents: 270
diff changeset
316
847
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
317
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
318 /* Initialize builder object */
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
319 XSDEBUG("init builder #%i, maxsids=%i\n", xs_cfg.sid2Builder, (engine->emu.info()).maxsids);
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
320
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
321 switch (xs_cfg.sid2Builder)
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
322 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
323 #ifdef HAVE_RESID_BUILDER
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
324 case XS_BLD_RESID:
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
325 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
326 ReSIDBuilder *rs = new ReSIDBuilder("ReSID builder");
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
327 if (rs)
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
328 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
329 engine->config.sidEmulation = rs;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
330 if (!*rs) return FALSE;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
331 rs->create((engine->emu.info()).maxsids);
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
332 if (!*rs) return FALSE;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
333 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
334 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
335 break;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
336 #endif
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
337
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
338 #ifdef HAVE_HARDSID_BUILDER
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
339 case XS_BLD_HARDSID:
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
340 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
341 HardSIDBuilder *hs = new HardSIDBuilder("HardSID builder (FP)");
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
342 engine->config.sidEmulation = (sidbuilder *) hs;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
343 if (hs)
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
344 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
345 hs->create((engine->emu.info()).maxsids);
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
346 if (!*hs)
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
347 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
348 xs_error("hardSID->create() failed.\n");
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
349 return FALSE;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
350 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
351 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
352 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
353 break;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
354 #endif
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
355
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
356 default:
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
357 xs_error("[SIDPlay2] Invalid or unsupported builder selected.\n");
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
358 return FALSE;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
359 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
360
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
361 if (!engine->config.sidEmulation)
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
362 {
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
363 xs_error("[SIDPlay2] Could not initialize SIDBuilder object.\n");
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
364 return FALSE;
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
365 }
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
366
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
367 XSDEBUG("%s\n", engine->config.sidEmulation->credits());
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
368
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
369
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
370 if (!xs_fload_buffer(filename, &buf, &bufSize, XS_SIDBUF_SIZE, TRUE))
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
371 goto error;
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
372
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
373 engine->tune.read(buf, bufSize);
820
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
374 if (!engine->tune)
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
375 {
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
376 xs_error("Could not load file '%s': %s\n",
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
377 filename, (engine->tune.getInfo()).statusString);
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
378 goto error;
820
778531e968ed Clean up tune loading.
Matti Hamalainen <ccr@tnsp.org>
parents: 819
diff changeset
379 }
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
380
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
381 res = TRUE;
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
382
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
383 error:
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
384 g_free(buf);
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
385 return res;
364
421e4fc13bce More and more of indentation fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
386 }
270
583f5651abff Cleanups, moved engine configuration to initialization function.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
387
583f5651abff Cleanups, moved engine configuration to initialization function.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
388
583f5651abff Cleanups, moved engine configuration to initialization function.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
389 /* Delete INTERNAL information
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
390 */
754
5557837fe5b6 Rename some more variables.
Matti Hamalainen <ccr@tnsp.org>
parents: 753
diff changeset
391 void xs_sidplay2_delete(XSEngineState * state)
364
421e4fc13bce More and more of indentation fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
392 {
957
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
393 XSSIDPlay2 *engine = (XSSIDPlay2 *) state->internal;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
394
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
395 if (engine)
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
396 delete engine;
0e60e5d56fdd Change how the backend emulator library is initialized for libSIDPlay2 and
Matti Hamalainen <ccr@tnsp.org>
parents: 954
diff changeset
397 state->internal = NULL;
526
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
398 }
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
399
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
400
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
401 /* Hardware backend flushing
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
402 */
754
5557837fe5b6 Rename some more variables.
Matti Hamalainen <ccr@tnsp.org>
parents: 753
diff changeset
403 void xs_sidplay2_flush(XSEngineState * state)
526
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
404 {
779
8fb51f9ef44e Fix some HardSID builder related things.
Matti Hamalainen <ccr@tnsp.org>
parents: 776
diff changeset
405 XSSIDPlay2 *engine = (XSSIDPlay2 *) state->internal;
526
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
406
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
407 #ifdef HAVE_HARDSID_BUILDER
768
f145ba458acd Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 766
diff changeset
408 if (xs_cfg.sid2Builder == XS_BLD_HARDSID)
f145ba458acd Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 766
diff changeset
409 {
779
8fb51f9ef44e Fix some HardSID builder related things.
Matti Hamalainen <ccr@tnsp.org>
parents: 776
diff changeset
410 ((HardSIDBuilder *) engine->config.sidEmulation)->flush();
768
f145ba458acd Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 766
diff changeset
411 }
526
fa95d942f226 Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 474
diff changeset
412 #endif
364
421e4fc13bce More and more of indentation fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
413 }
73
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
414
2bc607888f53 Added libsidplay2 module, lots of reworking of internals, sidplay1 support
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
415
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
416 /* This function gets most of the information, though we do miss some
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
417 * (those variables that are only set by libSIDPlay when tune is initialized).
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
418 * Rest of the information is acquired in xs_sidplay2_updateinfo()
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
419 */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
420 XSTuneInfo *xs_sidplay2_getinfo(const gchar *filename)
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
421 {
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
422 XSTuneInfo *res = NULL;
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
423 SidTune *tune = NULL;
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
424 SidTuneInfo info;
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
425 guint8 *buf = NULL;
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
426 size_t bufSize;
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
427
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
428 /* Check if the tune exists and is readable */
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
429 if (!xs_fload_buffer(filename, &buf, &bufSize, XS_SIDBUF_SIZE, TRUE))
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
430 {
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
431 XSDEBUG("could not load file '%s'.\n", filename);
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
432 goto error;
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
433 }
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
434
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
435 if ((tune = new SidTune(buf, bufSize)) == NULL)
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
436 {
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
437 XSDEBUG("could not initialize tune from '%s'.\n", filename);
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
438 goto error;
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
439 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
440
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
441 if (!tune->getStatus())
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
442 {
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
443 XSDEBUG("tune->getStatus() returned false for '%s'.\n", filename);
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
444 goto error;
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
445 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
446
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
447 /* Get general tune information */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
448 tune->getInfo(info);
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
449
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
450 /* Allocate tuneinfo structure and set information */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
451 res = xs_tuneinfo_new(filename,
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
452 info.songs, info.startSong,
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
453 info.infoString[0], info.infoString[1], info.infoString[2],
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
454 info.loadAddr, info.initAddr, info.playAddr,
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
455 info.dataFileLen, info.formatString,
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
456 info.sidModel
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
457 );
869
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
458
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
459 error:
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
460 if (tune)
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
461 delete tune;
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
462
3a9bf45178ff Use xs_fload_buffer() again, to support potential VFS backends.
Matti Hamalainen <ccr@tnsp.org>
parents: 862
diff changeset
463 g_free(buf);
862
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
464 return res;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
465 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
466
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
467
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
468 /* Updates the information of currently playing tune
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
469 */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
470 gboolean xs_sidplay2_updateinfo(XSEngineState *state)
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
471 {
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
472 XSSIDPlay2 *engine;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
473 SidTuneInfo info;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
474
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
475 /* Check if we have required structures initialized */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
476 if (!state || !state->tuneInfo || !state->internal)
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
477 return FALSE;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
478
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
479 engine = (XSSIDPlay2 *) state->internal;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
480 if (!(engine->tune))
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
481 return FALSE;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
482
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
483 /* Get general tune information */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
484 engine->tune.getInfo(info);
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
485
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
486 /* NOTICE! Here we assume that libSIDPlay[12] headers define
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
487 * SIDTUNE_SIDMODEL_* similarly to our enums in xs_config.h ...
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
488 */
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
489 state->tuneInfo->sidModel = info.sidModel;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
490
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
491 if (state->currSong > 0 && state->currSong <= state->tuneInfo->nsubTunes)
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
492 {
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
493 gint tmpSpeed = info.clockSpeed;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
494 switch (info.clockSpeed)
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
495 {
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
496 case SIDTUNE_CLOCK_PAL: tmpSpeed = XS_CLOCK_PAL; break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
497 case SIDTUNE_CLOCK_NTSC: tmpSpeed = XS_CLOCK_NTSC; break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
498 case SIDTUNE_CLOCK_ANY: tmpSpeed = XS_CLOCK_ANY; break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
499 case SIDTUNE_CLOCK_UNKNOWN:
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
500 switch (info.songSpeed)
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
501 {
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
502 case SIDTUNE_SPEED_VBI: tmpSpeed = XS_CLOCK_VBI; break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
503 case SIDTUNE_SPEED_CIA_1A: tmpSpeed = XS_CLOCK_CIA; break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
504 default: tmpSpeed = info.songSpeed; break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
505 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
506 break;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
507 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
508 state->tuneInfo->subTunes[state->currSong - 1].tuneSpeed = tmpSpeed;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
509 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
510
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
511 return TRUE;
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
512 }
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
513
011ba70e271e Major cleanups, make SIDPlayFP backend compile with libSIDPlayFP v1.0.0
Matti Hamalainen <ccr@tnsp.org>
parents: 849
diff changeset
514
660
b0743dc9165d Change tabs to 4 spaces, everywhere.
Matti Hamalainen <ccr@tnsp.org>
parents: 657
diff changeset
515 } /* extern "C" */
847
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
516 #endif /* HAVE_SIDPLAY2
5b93bd8c7814 Cleanups, adjust backend configuration sequences, more error checking,
Matti Hamalainen <ccr@tnsp.org>
parents: 838
diff changeset
517 */