Browse code

Updating in_2sf to use a newish version of DeSmuME, 0.9.9 from SVN. Somewhat cleaned up as well, but not everything because it's a pain in the ass.

Naram Qashat authored on 2013/04/18 17:22:55
Showing 1 changed files
... ...
@@ -22,237 +22,28 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 22
 THE SOFTWARE.
23 23
 */
24 24
 
25
-#include <vector>
26
-
27 25
 #include "emufile.h"
28 26
 
29
-/*bool EMUFILE::readAllBytes(std::vector<uint8_t>* dstbuf, const std::string& fname)
27
+size_t EMUFILE_MEMORY::_fread(void *ptr, size_t bytes)
30 28
 {
31
-	EMUFILE_FILE file(fname.c_str(),"rb");
32
-	if(file.fail()) return false;
33
-	int size = file.size();
34
-	dstbuf->resize(size);
35
-	file.fread(&dstbuf->at(0),size);
36
-	return true;
37
-}*/
38
-
39
-size_t EMUFILE_MEMORY::_fread(void *ptr, size_t bytes){
40
-	uint32_t remain = len-pos;
41
-	uint32_t todo = std::min<uint32_t>(remain,(uint32_t)bytes);
42
-	if(len==0)
29
+	uint32_t remain = this->len - this->pos;
30
+	uint32_t todo = std::min<uint32_t>(remain, bytes);
31
+	if (!len)
43 32
 	{
44
-		failbit = true;
33
+		this->failbit = true;
45 34
 		return 0;
46 35
 	}
47
-	if(todo<=4)
36
+	if (todo <= 4)
48 37
 	{
49
-		uint8_t* src = buf()+pos;
50
-		uint8_t* dst = (uint8_t*)ptr;
51
-		for(uint32_t i=0;i<todo;i++)
38
+		uint8_t *src = this->buf() + this->pos;
39
+		uint8_t *dst = static_cast<uint8_t *>(ptr);
40
+		for (uint32_t i = 0; i < todo; ++i)
52 41
 			*dst++ = *src++;
53 42
 	}
54 43
 	else
55
-	{
56
-		memcpy(ptr,buf()+pos,todo);
57
-	}
58
-	pos += todo;
59
-	if(todo<bytes)
60
-		failbit = true;
44
+		memcpy(ptr, this->buf() + this->pos, todo);
45
+	this->pos += todo;
46
+	if (todo < bytes)
47
+		this->failbit = true;
61 48
 	return todo;
62 49
 }
63
-
64
-/*void EMUFILE_FILE::truncate(int32_t length)
65
-{
66
-	::fflush(fp);
67
-	#if defined(_MSC_VER) || defined(__MINGW32__)
68
-		_chsize(_fileno(fp),length);
69
-	#else
70
-		ftruncate(fileno(fp),length);
71
-	#endif
72
-	fclose(fp);
73
-	fp = NULL;
74
-	open(fname.c_str(),mode);
75
-}*/
76
-
77
-
78
-/*EMUFILE* EMUFILE_FILE::memwrap()
79
-{
80
-	EMUFILE_MEMORY* mem = new EMUFILE_MEMORY(size());
81
-	if(size()==0) return mem;
82
-	fread(mem->buf(),size());
83
-	return mem;
84
-}*/
85
-
86
-/*EMUFILE* EMUFILE_MEMORY::memwrap()
87
-{
88
-	return this;
89
-}*/
90
-
91
-/*void EMUFILE::write64le(uint64_t *val)
92
-{
93
-	write64le(*val);
94
-}
95
-
96
-void EMUFILE::write64le(uint64_t val)
97
-{
98
-#ifdef LOCAL_BE
99
-	uint8_t s[8];
100
-	s[0]=(uint8_t)val;
101
-	s[1]=(uint8_t)(val>>8);
102
-	s[2]=(uint8_t)(val>>16);
103
-	s[3]=(uint8_t)(val>>24);
104
-	s[4]=(uint8_t)(val>>32);
105
-	s[5]=(uint8_t)(val>>40);
106
-	s[6]=(uint8_t)(val>>48);
107
-	s[7]=(uint8_t)(val>>56);
108
-	fwrite((char*)&s,8);
109
-#else
110
-	fwrite(&val,8);
111
-#endif
112
-}
113
-
114
-size_t EMUFILE::read64le(uint64_t *Bufo)
115
-{
116
-	uint64_t buf;
117
-	if(fread((char*)&buf,8) != 8)
118
-		return 0;
119
-#ifndef LOCAL_BE
120
-	*Bufo=buf;
121
-#else
122
-	*Bufo = LE_TO_LOCAL_64(buf);
123
-#endif
124
-	return 1;
125
-}
126
-
127
-uint64_t EMUFILE::read64le()
128
-{
129
-	uint64_t temp;
130
-	read64le(&temp);
131
-	return temp;
132
-}
133
-
134
-void EMUFILE::write32le(uint32_t *val)
135
-{
136
-	write32le(*val);
137
-}
138
-
139
-void EMUFILE::write32le(uint32_t val)
140
-{
141
-#ifdef LOCAL_BE
142
-	uint8_t s[4];
143
-	s[0]=(uint8_t)val;
144
-	s[1]=(uint8_t)(val>>8);
145
-	s[2]=(uint8_t)(val>>16);
146
-	s[3]=(uint8_t)(val>>24);
147
-	fwrite(s,4);
148
-#else
149
-	fwrite(&val,4);
150
-#endif
151
-}
152
-
153
-size_t EMUFILE::read32le(int32_t *Bufo) { return read32le((uint32_t *)Bufo); }
154
-
155
-size_t EMUFILE::read32le(uint32_t *Bufo)
156
-{
157
-	uint32_t buf;
158
-	if(fread(&buf,4)<4)
159
-		return 0;
160
-#ifndef LOCAL_BE
161
-	*(uint32_t *)Bufo=buf;
162
-#else
163
-	*(uint32_t *)Bufo=((buf&0xFF)<<24)|((buf&0xFF00)<<8)|((buf&0xFF0000)>>8)|((buf&0xFF000000)>>24);
164
-#endif
165
-	return 1;
166
-}
167
-
168
-uint32_t EMUFILE::read32le()
169
-{
170
-	uint32_t ret;
171
-	read32le(&ret);
172
-	return ret;
173
-}
174
-
175
-void EMUFILE::write16le(uint16_t *val)
176
-{
177
-	write16le(*val);
178
-}
179
-
180
-void EMUFILE::write16le(uint16_t val)
181
-{
182
-#ifdef LOCAL_BE
183
-	uint8_t s[2];
184
-	s[0]=(uint8_t)val;
185
-	s[1]=(uint8_t)(val>>8);
186
-	fwrite(s,2);
187
-#else
188
-	fwrite(&val,2);
189
-#endif
190
-}
191
-
192
-size_t EMUFILE::read16le(int16_t *Bufo) { return read16le((uint16_t *)Bufo); }
193
-
194
-size_t EMUFILE::read16le(uint16_t *Bufo)
195
-{
196
-	uint32_t buf;
197
-	if(fread(&buf,2)<2)
198
-		return 0;
199
-#ifndef LOCAL_BE
200
-	*(uint16_t *)Bufo=buf;
201
-#else
202
-	*Bufo = LE_TO_LOCAL_16(buf);
203
-#endif
204
-	return 1;
205
-}
206
-
207
-uint16_t EMUFILE::read16le()
208
-{
209
-	uint16_t ret;
210
-	read16le(&ret);
211
-	return ret;
212
-}
213
-
214
-void EMUFILE::write8le(uint8_t *val)
215
-{
216
-	write8le(*val);
217
-}
218
-
219
-void EMUFILE::write8le(uint8_t val)
220
-{
221
-	fwrite(&val,1);
222
-}
223
-
224
-size_t EMUFILE::read8le(uint8_t *val)
225
-{
226
-	return fread(val,1);
227
-}
228
-
229
-uint8_t EMUFILE::read8le()
230
-{
231
-	uint8_t temp;
232
-	fread(&temp,1);
233
-	return temp;
234
-}
235
-
236
-void EMUFILE::writedouble(double* val)
237
-{
238
-	write64le(double_to_u64(*val));
239
-}
240
-void EMUFILE::writedouble(double val)
241
-{
242
-	write64le(double_to_u64(val));
243
-}
244
-
245
-double EMUFILE::readdouble()
246
-{
247
-	double temp;
248
-	readdouble(&temp);
249
-	return temp;
250
-}
251
-
252
-size_t EMUFILE::readdouble(double* val)
253
-{
254
-	uint64_t temp;
255
-	size_t ret = read64le(&temp);
256
-	*val = u64_to_double(temp);
257
-	return ret;
258
-}*/
Browse code

Import actual code.

Naram Qashat authored on 2013/03/26 02:41:19
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,258 @@
1
+/*
2
+The MIT License
3
+
4
+Copyright (C) 2009-2010 DeSmuME team
5
+
6
+Permission is hereby granted, free of charge, to any person obtaining a copy
7
+of this software and associated documentation files (the "Software"), to deal
8
+in the Software without restriction, including without limitation the rights
9
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+copies of the Software, and to permit persons to whom the Software is
11
+furnished to do so, subject to the following conditions:
12
+
13
+The above copyright notice and this permission notice shall be included in
14
+all copies or substantial portions of the Software.
15
+
16
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+THE SOFTWARE.
23
+*/
24
+
25
+#include <vector>
26
+
27
+#include "emufile.h"
28
+
29
+/*bool EMUFILE::readAllBytes(std::vector<uint8_t>* dstbuf, const std::string& fname)
30
+{
31
+	EMUFILE_FILE file(fname.c_str(),"rb");
32
+	if(file.fail()) return false;
33
+	int size = file.size();
34
+	dstbuf->resize(size);
35
+	file.fread(&dstbuf->at(0),size);
36
+	return true;
37
+}*/
38
+
39
+size_t EMUFILE_MEMORY::_fread(void *ptr, size_t bytes){
40
+	uint32_t remain = len-pos;
41
+	uint32_t todo = std::min<uint32_t>(remain,(uint32_t)bytes);
42
+	if(len==0)
43
+	{
44
+		failbit = true;
45
+		return 0;
46
+	}
47
+	if(todo<=4)
48
+	{
49
+		uint8_t* src = buf()+pos;
50
+		uint8_t* dst = (uint8_t*)ptr;
51
+		for(uint32_t i=0;i<todo;i++)
52
+			*dst++ = *src++;
53
+	}
54
+	else
55
+	{
56
+		memcpy(ptr,buf()+pos,todo);
57
+	}
58
+	pos += todo;
59
+	if(todo<bytes)
60
+		failbit = true;
61
+	return todo;
62
+}
63
+
64
+/*void EMUFILE_FILE::truncate(int32_t length)
65
+{
66
+	::fflush(fp);
67
+	#if defined(_MSC_VER) || defined(__MINGW32__)
68
+		_chsize(_fileno(fp),length);
69
+	#else
70
+		ftruncate(fileno(fp),length);
71
+	#endif
72
+	fclose(fp);
73
+	fp = NULL;
74
+	open(fname.c_str(),mode);
75
+}*/
76
+
77
+
78
+/*EMUFILE* EMUFILE_FILE::memwrap()
79
+{
80
+	EMUFILE_MEMORY* mem = new EMUFILE_MEMORY(size());
81
+	if(size()==0) return mem;
82
+	fread(mem->buf(),size());
83
+	return mem;
84
+}*/
85
+
86
+/*EMUFILE* EMUFILE_MEMORY::memwrap()
87
+{
88
+	return this;
89
+}*/
90
+
91
+/*void EMUFILE::write64le(uint64_t *val)
92
+{
93
+	write64le(*val);
94
+}
95
+
96
+void EMUFILE::write64le(uint64_t val)
97
+{
98
+#ifdef LOCAL_BE
99
+	uint8_t s[8];
100
+	s[0]=(uint8_t)val;
101
+	s[1]=(uint8_t)(val>>8);
102
+	s[2]=(uint8_t)(val>>16);
103
+	s[3]=(uint8_t)(val>>24);
104
+	s[4]=(uint8_t)(val>>32);
105
+	s[5]=(uint8_t)(val>>40);
106
+	s[6]=(uint8_t)(val>>48);
107
+	s[7]=(uint8_t)(val>>56);
108
+	fwrite((char*)&s,8);
109
+#else
110
+	fwrite(&val,8);
111
+#endif
112
+}
113
+
114
+size_t EMUFILE::read64le(uint64_t *Bufo)
115
+{
116
+	uint64_t buf;
117
+	if(fread((char*)&buf,8) != 8)
118
+		return 0;
119
+#ifndef LOCAL_BE
120
+	*Bufo=buf;
121
+#else
122
+	*Bufo = LE_TO_LOCAL_64(buf);
123
+#endif
124
+	return 1;
125
+}
126
+
127
+uint64_t EMUFILE::read64le()
128
+{
129
+	uint64_t temp;
130
+	read64le(&temp);
131
+	return temp;
132
+}
133
+
134
+void EMUFILE::write32le(uint32_t *val)
135
+{
136
+	write32le(*val);
137
+}
138
+
139
+void EMUFILE::write32le(uint32_t val)
140
+{
141
+#ifdef LOCAL_BE
142
+	uint8_t s[4];
143
+	s[0]=(uint8_t)val;
144
+	s[1]=(uint8_t)(val>>8);
145
+	s[2]=(uint8_t)(val>>16);
146
+	s[3]=(uint8_t)(val>>24);
147
+	fwrite(s,4);
148
+#else
149
+	fwrite(&val,4);
150
+#endif
151
+}
152
+
153
+size_t EMUFILE::read32le(int32_t *Bufo) { return read32le((uint32_t *)Bufo); }
154
+
155
+size_t EMUFILE::read32le(uint32_t *Bufo)
156
+{
157
+	uint32_t buf;
158
+	if(fread(&buf,4)<4)
159
+		return 0;
160
+#ifndef LOCAL_BE
161
+	*(uint32_t *)Bufo=buf;
162
+#else
163
+	*(uint32_t *)Bufo=((buf&0xFF)<<24)|((buf&0xFF00)<<8)|((buf&0xFF0000)>>8)|((buf&0xFF000000)>>24);
164
+#endif
165
+	return 1;
166
+}
167
+
168
+uint32_t EMUFILE::read32le()
169
+{
170
+	uint32_t ret;
171
+	read32le(&ret);
172
+	return ret;
173
+}
174
+
175
+void EMUFILE::write16le(uint16_t *val)
176
+{
177
+	write16le(*val);
178
+}
179
+
180
+void EMUFILE::write16le(uint16_t val)
181
+{
182
+#ifdef LOCAL_BE
183
+	uint8_t s[2];
184
+	s[0]=(uint8_t)val;
185
+	s[1]=(uint8_t)(val>>8);
186
+	fwrite(s,2);
187
+#else
188
+	fwrite(&val,2);
189
+#endif
190
+}
191
+
192
+size_t EMUFILE::read16le(int16_t *Bufo) { return read16le((uint16_t *)Bufo); }
193
+
194
+size_t EMUFILE::read16le(uint16_t *Bufo)
195
+{
196
+	uint32_t buf;
197
+	if(fread(&buf,2)<2)
198
+		return 0;
199
+#ifndef LOCAL_BE
200
+	*(uint16_t *)Bufo=buf;
201
+#else
202
+	*Bufo = LE_TO_LOCAL_16(buf);
203
+#endif
204
+	return 1;
205
+}
206
+
207
+uint16_t EMUFILE::read16le()
208
+{
209
+	uint16_t ret;
210
+	read16le(&ret);
211
+	return ret;
212
+}
213
+
214
+void EMUFILE::write8le(uint8_t *val)
215
+{
216
+	write8le(*val);
217
+}
218
+
219
+void EMUFILE::write8le(uint8_t val)
220
+{
221
+	fwrite(&val,1);
222
+}
223
+
224
+size_t EMUFILE::read8le(uint8_t *val)
225
+{
226
+	return fread(val,1);
227
+}
228
+
229
+uint8_t EMUFILE::read8le()
230
+{
231
+	uint8_t temp;
232
+	fread(&temp,1);
233
+	return temp;
234
+}
235
+
236
+void EMUFILE::writedouble(double* val)
237
+{
238
+	write64le(double_to_u64(*val));
239
+}
240
+void EMUFILE::writedouble(double val)
241
+{
242
+	write64le(double_to_u64(val));
243
+}
244
+
245
+double EMUFILE::readdouble()
246
+{
247
+	double temp;
248
+	readdouble(&temp);
249
+	return temp;
250
+}
251
+
252
+size_t EMUFILE::readdouble(double* val)
253
+{
254
+	uint64_t temp;
255
+	size_t ret = read64le(&temp);
256
+	*val = u64_to_double(temp);
257
+	return ret;
258
+}*/