notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
menu: add reset hotkey
[picodrive.git]
/
pico
/
sek.c
diff --git
a/pico/sek.c
b/pico/sek.c
index
4525c7c
..
5176528
100644
(file)
--- a/
pico/sek.c
+++ b/
pico/sek.c
@@
-60,6
+60,8
@@
static int SekUnrecognizedOpcode()
PicoCpuCM68k.state_flags |= 1;
\r
return 1;
\r
}
\r
PicoCpuCM68k.state_flags |= 1;
\r
return 1;
\r
}
\r
+ // happened once - may happen again
\r
+ SekFinishIdleDet();
\r
#ifdef EMU_M68K // debugging cyclone
\r
{
\r
extern int have_illegal;
\r
#ifdef EMU_M68K // debugging cyclone
\r
{
\r
extern int have_illegal;
\r
@@
-300,7
+302,8
@@
void SekRegisterIdleHit(unsigned int pc)
\r
void SekInitIdleDet(void)
\r
{
\r
\r
void SekInitIdleDet(void)
\r
{
\r
- unsigned short **tmp = realloc(idledet_ptrs, 0x200*4);
\r
+ unsigned short **tmp;
\r
+ tmp = realloc(idledet_ptrs, 0x200 * sizeof(tmp[0]));
\r
if (tmp == NULL) {
\r
free(idledet_ptrs);
\r
idledet_ptrs = NULL;
\r
if (tmp == NULL) {
\r
free(idledet_ptrs);
\r
idledet_ptrs = NULL;
\r
@@
-408,7
+411,8
@@
int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx)
}
\r
\r
if (idledet_count >= 0x200 && (idledet_count & 0x1ff) == 0) {
\r
}
\r
\r
if (idledet_count >= 0x200 && (idledet_count & 0x1ff) == 0) {
\r
- unsigned short **tmp = realloc(idledet_ptrs, (idledet_count+0x200)*4);
\r
+ unsigned short **tmp;
\r
+ tmp = realloc(idledet_ptrs, (idledet_count+0x200) * sizeof(tmp[0]));
\r
if (tmp == NULL)
\r
return 1;
\r
idledet_ptrs = tmp;
\r
if (tmp == NULL)
\r
return 1;
\r
idledet_ptrs = tmp;
\r
@@
-421,6
+425,8
@@
int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx)
\r
void SekFinishIdleDet(void)
\r
{
\r
\r
void SekFinishIdleDet(void)
\r
{
\r
+ if (idledet_count < 0)
\r
+ return;
\r
#ifdef EMU_C68K
\r
CycloneFinishIdle();
\r
#endif
\r
#ifdef EMU_C68K
\r
CycloneFinishIdle();
\r
#endif
\r
@@
-439,6
+445,7
@@
void SekFinishIdleDet(void)
else
\r
elprintf(EL_STATUS|EL_IDLE, "idle: don't know how to restore %04x", *op);
\r
}
\r
else
\r
elprintf(EL_STATUS|EL_IDLE, "idle: don't know how to restore %04x", *op);
\r
}
\r
+ idledet_count = -1;
\r
}
\r
\r
\r
}
\r
\r
\r