notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
release r2, update credits
[fceu.git]
/
memory.c
diff --git
a/memory.c
b/memory.c
index
bec7270
..
0194a83
100644
(file)
--- a/
memory.c
+++ b/
memory.c
@@
-1,7
+1,7
@@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
- * Copyright (C) 2002
Ben Parnel
l
+ * Copyright (C) 2002
Xodnize
l
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-21,21
+21,41
@@
#include <stdlib.h>
#include "types.h"
#include <stdlib.h>
#include "types.h"
-#include "
version
.h"
+#include "
fce
.h"
#include "memory.h"
#include "general.h"
#include "svga.h"
#include "memory.h"
#include "general.h"
#include "svga.h"
+void *FCEU_gmalloc(uint32 size)
+{
+ void *ret;
+ ret=malloc(size);
+ if(!ret)
+ {
+ FCEU_PrintError("Error allocating memory! Doing a hard exit.");
+ exit(1);
+ }
+ return ret;
+}
+
void *FCEU_malloc(uint32 size)
{
void *ret;
ret=malloc(size);
if(!ret)
void *FCEU_malloc(uint32 size)
{
void *ret;
ret=malloc(size);
if(!ret)
- FCEU_PrintError(MSG_ERRAM);
+ {
+ FCEU_PrintError("Error allocating memory!");
+ return(0);
+ }
return ret;
}
return ret;
}
-void FCEU_free(void *ptr) // Might do something with this and FCEU_malloc later...
+void FCEU_free(void *ptr) // Might do something with this and FCEU_malloc later...
+{
+ free(ptr);
+}
+
+void FCEU_gfree(void *ptr)
{
free(ptr);
}
{
free(ptr);
}
@@
-43,25
+63,39
@@
void FCEU_free(void *ptr) // Might do something with this and FCEU_malloc later
void FASTAPASS(3) FCEU_memmove(void *d, void *s, uint32 l)
{
uint32 x;
void FASTAPASS(3) FCEU_memmove(void *d, void *s, uint32 l)
{
uint32 x;
-
int
t;
+
long
t;
/* Type really doesn't matter. */
/* Type really doesn't matter. */
- t=(int)d;
- t|=(int)s;
- t|=(int)l;
+ t=(long)d;
+ t|=(long)s;
+ t|=(long)l;
+
+ if(t&3) // Not 4-byte aligned and/or length is not a multiple of 4.
+ {
+ uint8 *tmpd, *tmps;
- if(t&3) // Not 4-byte aligned and/or length is not a multiple of 4.
- for(x=l;x;x--) // This could be optimized further, though(more tests could be performed).
+ tmpd = d;
+ tmps = s;
+
+ for(x=l;x;x--) // This could be optimized further, though(more tests could be performed).
{
{
- *
(uint8*)d=*(uint8 *)
s;
-
((uint8 *)d)
++;
-
((uint8 *)s)
++;
+ *
tmpd=*tmp
s;
+
tmpd
++;
+
tmps
++;
}
}
+ }
else
else
+ {
+ uint32 *tmpd, *tmps;
+
+ tmpd = d;
+ tmps = s;
+
for(x=l>>2;x;x--)
{
for(x=l>>2;x;x--)
{
- *
(uint32*)d=*(uint32*)
s;
-
((uint32 *)d)
++;
-
((uint32 *)s)
++;
+ *
tmpd=*tmp
s;
+
tmpd
++;
+
tmps
++;
}
}
+ }
}
}