Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
PUAE
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
PUAE
Commits
f3f22b7c
Commit
f3f22b7c
authored
Mar 12, 2011
by
GnoStiC
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
puae 2.3.2
parent
7da67404
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
401 additions
and
175 deletions
+401
-175
README
README
+1
-1
configure.in
configure.in
+1
-1
Makefile.am
src/Makefile.am
+1
-1
ar.c
src/ar.c
+2
-4
cfgfile.c
src/cfgfile.c
+33
-0
cia.c
src/cia.c
+179
-61
custom.c
src/custom.c
+1
-57
debug.c
src/debug.c
+21
-1
disk.c
src/disk.c
+17
-9
drawing.c
src/drawing.c
+6
-6
expansion.c
src/expansion.c
+2
-2
puae_mainwindow.ui
src/gui-qt/puae_mainwindow.ui
+1
-1
puae_registry.cpp
src/gui-qt/puae_registry.cpp
+1
-1
events.h
src/include/events.h
+61
-5
options.h
src/include/options.h
+3
-1
savestate.h
src/include/savestate.h
+1
-0
statusline.h
src/include/statusline.h
+1
-0
version.h
src/include/version.h
+1
-1
memory.c
src/memory.c
+32
-10
newcpu.c
src/newcpu.c
+4
-13
rommgr.c
src/rommgr.c
+3
-0
savestate.c
src/savestate.c
+2
-0
serial.c
src/serial.c
+1
-0
statusline.c
src/statusline.c
+26
-0
No files found.
README
View file @
f3f22b7c
PUAE 2.3.
1
beta series
PUAE 2.3.
2
beta series
============
============
PUAE tries to continue where E-UAE left off..
PUAE tries to continue where E-UAE left off..
PUAE versioning is based on the merged WinUAE version..
PUAE versioning is based on the merged WinUAE version..
...
...
configure.in
View file @
f3f22b7c
...
@@ -6,7 +6,7 @@ dnl Updated and generally mauled 2008-2011 Mustafa Tufan
...
@@ -6,7 +6,7 @@ dnl Updated and generally mauled 2008-2011 Mustafa Tufan
dnl
dnl
AC_PREREQ(2.55)
AC_PREREQ(2.55)
AC_INIT(PUAE, 2.3.
1
, mustafa.tufan@gmail.com, puae)
AC_INIT(PUAE, 2.3.
2
, mustafa.tufan@gmail.com, puae)
AC_CONFIG_SRCDIR([bootstrap.sh])
AC_CONFIG_SRCDIR([bootstrap.sh])
AM_CONFIG_HEADER([src/sysconfig.h])
AM_CONFIG_HEADER([src/sysconfig.h])
AC_CANONICAL_TARGET
AC_CANONICAL_TARGET
...
...
src/Makefile.am
View file @
f3f22b7c
...
@@ -160,7 +160,7 @@ uae_SOURCES = \
...
@@ -160,7 +160,7 @@ uae_SOURCES = \
native2amiga.c disk.c crc32.c savestate.c arcadia.c cdtv.c cd32_fmv.c
\
native2amiga.c disk.c crc32.c savestate.c arcadia.c cdtv.c cd32_fmv.c
\
uaeexe.c uaelib.c uaeresource.c uaeserial.c fdi2raw.c hotkeys.c amax.c
\
uaeexe.c uaelib.c uaeresource.c uaeserial.c fdi2raw.c hotkeys.c amax.c
\
ar.c driveclick.c enforcer.c misc.c a2065.c gayle.c ncr_scsi.c
\
ar.c driveclick.c enforcer.c misc.c a2065.c gayle.c ncr_scsi.c
\
missing.c readcpu.c
missing.c readcpu.c
aros.rom.c hrtmon.rom.c
EXTRA_uae_SOURCES
=
\
EXTRA_uae_SOURCES
=
\
bsdsocket.c bsdsocket-posix-new.c build68k.c catweasel.c cdrom.c
\
bsdsocket.c bsdsocket-posix-new.c build68k.c catweasel.c cdrom.c
\
...
...
src/ar.c
View file @
f3f22b7c
...
@@ -1743,10 +1743,6 @@ void action_replay_cleanup()
...
@@ -1743,10 +1743,6 @@ void action_replay_cleanup()
#define TRUE 1
#define TRUE 1
#endif
#endif
#ifdef ACTION_REPLAY_HRTMON
#include "hrtmon.rom.c"
#endif
int
hrtmon_lang
=
0
;
int
hrtmon_lang
=
0
;
static
void
hrtmon_configure
(
void
)
static
void
hrtmon_configure
(
void
)
...
@@ -1818,6 +1814,8 @@ int hrtmon_load (void)
...
@@ -1818,6 +1814,8 @@ int hrtmon_load (void)
hrtmem_mask
=
hrtmem_size
-
1
;
hrtmem_mask
=
hrtmem_size
-
1
;
if
(
isinternal
)
{
if
(
isinternal
)
{
#ifdef ACTION_REPLAY_HRTMON
#ifdef ACTION_REPLAY_HRTMON
extern
unsigned
char
hrtrom
[];
extern
unsigned
int
hrtrom_len
;
struct
zfile
*
zf
;
struct
zfile
*
zf
;
zf
=
zfile_fopen_data
(
"hrtrom.gz"
,
hrtrom_len
,
hrtrom
);
zf
=
zfile_fopen_data
(
"hrtrom.gz"
,
hrtrom_len
,
hrtrom
);
// f = zfile_fopen ("d:\\amiga\\amiga\\hrtmon\\src\\hrtmon.rom", "rb", 0);
// f = zfile_fopen ("d:\\amiga\\amiga\\hrtmon\\src\\hrtmon.rom", "rb", 0);
...
...
src/cfgfile.c
View file @
f3f22b7c
...
@@ -659,6 +659,8 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
...
@@ -659,6 +659,8 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
cfgfile_write_str
(
f
,
"sound_filter"
,
soundfiltermode1
[
p
->
sound_filter
]);
cfgfile_write_str
(
f
,
"sound_filter"
,
soundfiltermode1
[
p
->
sound_filter
]);
cfgfile_write_str
(
f
,
"sound_filter_type"
,
soundfiltermode2
[
p
->
sound_filter_type
]);
cfgfile_write_str
(
f
,
"sound_filter_type"
,
soundfiltermode2
[
p
->
sound_filter_type
]);
cfgfile_write
(
f
,
"sound_volume"
,
"%d"
,
p
->
sound_volume
);
cfgfile_write
(
f
,
"sound_volume"
,
"%d"
,
p
->
sound_volume
);
if
(
p
->
sound_volume_cd
>=
0
)
cfgfile_write
(
f
,
"sound_volume_cd"
,
"%d"
,
p
->
sound_volume_cd
);
cfgfile_write_bool
(
f
,
"sound_auto"
,
p
->
sound_auto
);
cfgfile_write_bool
(
f
,
"sound_auto"
,
p
->
sound_auto
);
cfgfile_write_bool
(
f
,
"sound_stereo_swap_paula"
,
p
->
sound_stereo_swap_paula
);
cfgfile_write_bool
(
f
,
"sound_stereo_swap_paula"
,
p
->
sound_stereo_swap_paula
);
cfgfile_write_bool
(
f
,
"sound_stereo_swap_ahi"
,
p
->
sound_stereo_swap_ahi
);
cfgfile_write_bool
(
f
,
"sound_stereo_swap_ahi"
,
p
->
sound_stereo_swap_ahi
);
...
@@ -827,6 +829,11 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
...
@@ -827,6 +829,11 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
cfgfile_write_bool
(
f
,
"ntsc"
,
p
->
ntscmode
);
cfgfile_write_bool
(
f
,
"ntsc"
,
p
->
ntscmode
);
cfgfile_write_bool
(
f
,
"genlock"
,
p
->
genlock
);
cfgfile_write_bool
(
f
,
"genlock"
,
p
->
genlock
);
cfgfile_dwrite_bool
(
f
,
"show_leds"
,
!!
(
p
->
leds_on_screen
&
STATUSLINE_CHIPSET
));
cfgfile_dwrite_bool
(
f
,
"show_leds"
,
!!
(
p
->
leds_on_screen
&
STATUSLINE_CHIPSET
));
if
(
p
->
osd_pos
.
y
||
p
->
osd_pos
.
x
)
{
cfgfile_dwrite
(
f
,
"osd_position"
,
"%.1f%s:%.1f%s"
,
p
->
osd_pos
.
x
>=
20000
?
(
p
->
osd_pos
.
x
-
30000
)
/
10
.
0
:
(
float
)
p
->
osd_pos
.
x
,
p
->
osd_pos
.
x
>=
20000
?
"%"
:
""
,
p
->
osd_pos
.
y
>=
20000
?
(
p
->
osd_pos
.
y
-
30000
)
/
10
.
0
:
(
float
)
p
->
osd_pos
.
y
,
p
->
osd_pos
.
y
>=
20000
?
"%"
:
""
);
}
cfgfile_dwrite_bool
(
f
,
"show_leds_rtg"
,
!!
(
p
->
leds_on_screen
&
STATUSLINE_RTG
));
cfgfile_dwrite_bool
(
f
,
"show_leds_rtg"
,
!!
(
p
->
leds_on_screen
&
STATUSLINE_RTG
));
cfgfile_dwrite
(
f
,
"keyboard_leds"
,
"numlock:%s,capslock:%s,scrolllock:%s"
,
cfgfile_dwrite
(
f
,
"keyboard_leds"
,
"numlock:%s,capslock:%s,scrolllock:%s"
,
kbleds
[
p
->
keyboard_leds
[
0
]],
kbleds
[
p
->
keyboard_leds
[
1
]],
kbleds
[
p
->
keyboard_leds
[
2
]]);
kbleds
[
p
->
keyboard_leds
[
0
]],
kbleds
[
p
->
keyboard_leds
[
1
]],
kbleds
[
p
->
keyboard_leds
[
2
]]);
...
@@ -1342,6 +1349,7 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
...
@@ -1342,6 +1349,7 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
||
cfgfile_yesno
(
option
,
value
,
"state_replay_autoplay"
,
&
p
->
inprec_autoplay
)
||
cfgfile_yesno
(
option
,
value
,
"state_replay_autoplay"
,
&
p
->
inprec_autoplay
)
||
cfgfile_intval
(
option
,
value
,
"sound_frequency"
,
&
p
->
sound_freq
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_frequency"
,
&
p
->
sound_freq
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_volume"
,
&
p
->
sound_volume
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_volume"
,
&
p
->
sound_volume
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_volume_cd"
,
&
p
->
sound_volume_cd
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_stereo_separation"
,
&
p
->
sound_stereo_separation
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_stereo_separation"
,
&
p
->
sound_stereo_separation
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_stereo_mixing_delay"
,
&
p
->
sound_mixed_stereo_delay
,
1
)
||
cfgfile_intval
(
option
,
value
,
"sound_stereo_mixing_delay"
,
&
p
->
sound_mixed_stereo_delay
,
1
)
...
@@ -1487,6 +1495,29 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
...
@@ -1487,6 +1495,29 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
return
1
;
return
1
;
}
}
if
(
!
_tcscmp
(
option
,
"osd_position"
))
{
TCHAR
*
s
=
value
;
p
->
osd_pos
.
x
=
0
;
p
->
osd_pos
.
y
=
0
;
while
(
s
)
{
if
(
!
_tcschr
(
s
,
':'
))
break
;
p
->
osd_pos
.
x
=
_tstof
(
s
)
*
10
.
0
;
s
=
_tcschr
(
s
,
':'
);
if
(
!
s
)
break
;
if
(
s
[
-
1
]
==
'%'
)
p
->
osd_pos
.
x
+=
30000
;
s
++
;
p
->
osd_pos
.
y
=
_tstof
(
s
)
*
10
.
0
;
s
+=
_tcslen
(
s
);
if
(
s
[
-
1
]
==
'%'
)
p
->
osd_pos
.
y
+=
30000
;
break
;
}
return
1
;
}
#ifdef GFXFILTER
#ifdef GFXFILTER
if
(
_tcscmp
(
option
,
"gfx_filter_overlay"
)
==
0
)
{
if
(
_tcscmp
(
option
,
"gfx_filter_overlay"
)
==
0
)
{
return
1
;
return
1
;
...
@@ -3903,6 +3934,8 @@ static void buildin_default_prefs (struct uae_prefs *p)
...
@@ -3903,6 +3934,8 @@ static void buildin_default_prefs (struct uae_prefs *p)
p
->
cachesize
=
0
;
p
->
cachesize
=
0
;
#endif
#endif
p
->
socket_emu
=
0
;
p
->
socket_emu
=
0
;
p
->
sound_volume
=
0
;
p
->
sound_volume_cd
=
-
1
;
p
->
chipmem_size
=
0x00080000
;
p
->
chipmem_size
=
0x00080000
;
p
->
bogomem_size
=
0x00080000
;
p
->
bogomem_size
=
0x00080000
;
...
...
src/cia.c
View file @
f3f22b7c
This diff is collapsed.
Click to expand it.
src/custom.c
View file @
f3f22b7c
...
@@ -3302,7 +3302,7 @@ static void DMACON (int hpos, uae_u16 v)
...
@@ -3302,7 +3302,7 @@ static void DMACON (int hpos, uae_u16 v)
}
}
static
void
MISC_handler
(
void
)
void
MISC_handler
(
void
)
{
{
static
bool
dorecheck
;
static
bool
dorecheck
;
bool
recheck
;
bool
recheck
;
...
@@ -3347,57 +3347,6 @@ static void MISC_handler (void)
...
@@ -3347,57 +3347,6 @@ static void MISC_handler (void)
recursive
--
;
recursive
--
;
}
}
STATIC_INLINE
void
event2_newevent_xx
(
int
no
,
evt
t
,
uae_u32
data
,
evfunc2
func
)
{
evt
et
;
static
int
next
=
ev2_misc
;
et
=
t
+
get_cycles
();
if
(
no
<
0
)
{
no
=
next
;
for
(;;)
{
if
(
!
eventtab2
[
no
].
active
)
break
;
if
(
eventtab2
[
no
].
evtime
==
et
&&
eventtab2
[
no
].
handler
==
func
)
{
eventtab2
[
no
].
handler
(
eventtab2
[
no
].
data
);
break
;
}
no
++
;
if
(
no
==
ev2_max
)
no
=
ev2_misc
;
if
(
no
==
next
)
{
write_log
(
"out of event2's! PC=%x
\n
"
,
M68K_GETPC
);
return
;
}
}
next
=
no
;
}
eventtab2
[
no
].
active
=
true
;
eventtab2
[
no
].
evtime
=
et
;
eventtab2
[
no
].
handler
=
func
;
eventtab2
[
no
].
data
=
data
;
MISC_handler
();
}
STATIC_INLINE
void
event2_newevent_x
(
int
no
,
evt
t
,
uae_u32
data
,
evfunc2
func
)
{
if
(((
int
)
t
)
<=
0
)
{
func
(
data
);
return
;
}
event2_newevent_xx
(
no
,
t
*
CYCLE_UNIT
,
data
,
func
);
}
void
event2_newevent
(
int
no
,
evt
t
,
uae_u32
data
)
{
event2_newevent_x
(
no
,
t
,
data
,
eventtab2
[
no
].
handler
);
}
void
event2_newevent2
(
evt
t
,
uae_u32
data
,
evfunc2
func
)
{
event2_newevent_x
(
-
1
,
t
,
data
,
func
);
}
static
int
irq_nmi
;
static
int
irq_nmi
;
void
NMI_delayed
(
void
)
void
NMI_delayed
(
void
)
...
@@ -5775,11 +5724,6 @@ static void hsync_handler (void)
...
@@ -5775,11 +5724,6 @@ static void hsync_handler (void)
hsync_handler_post
(
vs
);
hsync_handler_post
(
vs
);
}
}
void
event2_remevent
(
int
no
)
{
eventtab2
[
no
].
active
=
0
;
}
void
init_eventtab
(
void
)
void
init_eventtab
(
void
)
{
{
int
i
;
int
i
;
...
...
src/debug.c
View file @
f3f22b7c
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "crc32.h"
#include "crc32.h"
#include "cpummu.h"
#include "cpummu.h"
#include "rommgr.h"
#include "rommgr.h"
#include "inputrecord.h"
int
debugger_active
;
int
debugger_active
;
static
uaecptr
skipaddr_start
,
skipaddr_end
;
static
uaecptr
skipaddr_start
,
skipaddr_end
;
...
@@ -1019,6 +1020,8 @@ static void decode_dma_record (int hpos, int vpos, int toggle, bool logfile)
...
@@ -1019,6 +1020,8 @@ static void decode_dma_record (int hpos, int vpos, int toggle, bool logfile)
}
}
void
log_dma_record
(
void
)
void
log_dma_record
(
void
)
{
{
if
(
!
input_record
&&
!
input_play
)
return
;
if
(
!
debug_dma
)
if
(
!
debug_dma
)
debug_dma
=
1
;
debug_dma
=
1
;
decode_dma_record
(
0
,
0
,
0
,
true
);
decode_dma_record
(
0
,
0
,
0
,
true
);
...
@@ -1744,6 +1747,20 @@ uae_u8 *restore_debug_memwatch (uae_u8 *src)
...
@@ -1744,6 +1747,20 @@ uae_u8 *restore_debug_memwatch (uae_u8 *src)
return
src
;
return
src
;
}
}
void
restore_debug_memwatch_finish
(
void
)
{
unsigned
int
i
;
for
(
i
=
0
;
i
<
MEMWATCH_TOTAL
;
i
++
)
{
struct
memwatch_node
*
m
=
&
mwnodes
[
i
];
if
(
m
->
size
)
{
if
(
!
memwatch_enabled
)
initialize_memwatch
(
0
);
return
;
}
}
}
static
int
memwatch_func
(
uaecptr
addr
,
int
rwi
,
int
size
,
uae_u32
*
valp
)
static
int
memwatch_func
(
uaecptr
addr
,
int
rwi
,
int
size
,
uae_u32
*
valp
)
{
{
int
i
,
brk
;
int
i
,
brk
;
...
@@ -1790,18 +1807,21 @@ static int memwatch_func (uaecptr addr, int rwi, int size, uae_u32 *valp)
...
@@ -1790,18 +1807,21 @@ static int memwatch_func (uaecptr addr, int rwi, int size, uae_u32 *valp)
if
(
!
m
->
frozen
&&
m
->
val_enabled
)
{
if
(
!
m
->
frozen
&&
m
->
val_enabled
)
{
int
trigger
=
0
;
int
trigger
=
0
;
uae_u32
mask
=
(
1
<<
(
m
->
size
*
8
))
-
1
;
uae_u32
mask
=
(
1
<<
(
m
->
size
*
8
))
-
1
;
uae_u32
mval
=
m
->
val
;
int
scnt
=
size
;
int
scnt
=
size
;
for
(;;)
{
for
(;;)
{
if
(((
m
->
val
&
mask
)
&
m
->
val_mask
)
==
((
val
&
mask
)
&
m
->
val_mask
))
if
(((
mval
&
mask
)
&
m
->
val_mask
)
==
((
val
&
mask
)
&
m
->
val_mask
))
trigger
=
1
;
trigger
=
1
;
if
(
mask
&
0x80000000
)
if
(
mask
&
0x80000000
)
break
;
break
;
if
(
m
->
size
==
1
)
{
if
(
m
->
size
==
1
)
{
mask
<<=
8
;
mask
<<=
8
;
mval
<<=
8
;
scnt
--
;
scnt
--
;
}
else
if
(
m
->
size
==
2
)
{
}
else
if
(
m
->
size
==
2
)
{
mask
<<=
16
;
mask
<<=
16
;
scnt
-=
2
;
scnt
-=
2
;
mval
<<=
16
;
}
}
if
(
scnt
<=
0
)
if
(
scnt
<=
0
)
break
;
break
;
...
...
src/disk.c
View file @
f3f22b7c
...
@@ -2645,6 +2645,7 @@ static void disk_dmafinished (void)
...
@@ -2645,6 +2645,7 @@ static void disk_dmafinished (void)
INTREQ
(
0x8000
|
0x0002
);
INTREQ
(
0x8000
|
0x0002
);
longwritemode
=
0
;
longwritemode
=
0
;
dskdmaen
=
0
;
dskdmaen
=
0
;
dsklength
=
0
;
if
(
disk_debug_logging
>
0
)
{
if
(
disk_debug_logging
>
0
)
{
unsigned
int
dr
;
unsigned
int
dr
;
int
mfmpos
=
-
1
;
int
mfmpos
=
-
1
;
...
@@ -2682,8 +2683,6 @@ void DISK_handler (uae_u32 data)
...
@@ -2682,8 +2683,6 @@ void DISK_handler (uae_u32 data)
int
hpos
=
current_hpos
();
int
hpos
=
current_hpos
();
event2_remevent
(
ev2_disk
);
event2_remevent
(
ev2_disk
);
if
(
disk_sync_cycle
>=
maxhpos
)
return
;
DISK_update
(
disk_sync_cycle
);
DISK_update
(
disk_sync_cycle
);
if
(
flag
&
(
DISK_REVOLUTION
<<
0
))
if
(
flag
&
(
DISK_REVOLUTION
<<
0
))
fetchnextrevolution
(
&
floppy
[
0
]);
fetchnextrevolution
(
&
floppy
[
0
]);
...
@@ -2804,7 +2803,7 @@ static void disk_doupdate_predict (int startcycle)
...
@@ -2804,7 +2803,7 @@ static void disk_doupdate_predict (int startcycle)
continue
;
continue
;
int
diskevent_flag
=
0
;
int
diskevent_flag
=
0
;
uae_u32
tword
=
word
;
uae_u32
tword
=
word
;
int
countcycle
=
startcycle
;
int
countcycle
=
startcycle
+
(
drv
->
floppybitcounter
%
drv
->
trackspeed
)
;
int
mfmpos
=
drv
->
mfmpos
;
int
mfmpos
=
drv
->
mfmpos
;
int
indexhack
=
drv
->
indexhack
;
int
indexhack
=
drv
->
indexhack
;
while
(
countcycle
<
(
maxhpos
<<
8
))
{
while
(
countcycle
<
(
maxhpos
<<
8
))
{
...
@@ -2872,6 +2871,11 @@ static bool doreaddma (void)
...
@@ -2872,6 +2871,11 @@ static bool doreaddma (void)
{
{
if
(
dmaen
(
DMA_DISK
)
&&
bitoffset
==
15
&&
dma_enable
&&
dskdmaen
==
2
&&
dsklength
>=
0
)
{
if
(
dmaen
(
DMA_DISK
)
&&
bitoffset
==
15
&&
dma_enable
&&
dskdmaen
==
2
&&
dsklength
>=
0
)
{
if
(
dsklength
>
0
)
{
if
(
dsklength
>
0
)
{
// DSKLEN == 1: finish without DMA transfer.
if
(
dsklength
==
1
&&
dsklength2
==
1
)
{
disk_dmafinished
();
return
false
;
}
// fast disk modes, just flush the fifo
// fast disk modes, just flush the fifo
if
(
currprefs
.
floppy_speed
>
100
&&
fifo_inuse
[
0
]
&&
fifo_inuse
[
1
]
&&
fifo_inuse
[
2
])
{
if
(
currprefs
.
floppy_speed
>
100
&&
fifo_inuse
[
0
]
&&
fifo_inuse
[
1
]
&&
fifo_inuse
[
2
])
{
while
(
fifo_inuse
[
0
])
{
while
(
fifo_inuse
[
0
])
{
...
@@ -2882,9 +2886,6 @@ static bool doreaddma (void)
...
@@ -2882,9 +2886,6 @@ static bool doreaddma (void)
}
}
DSKDAT
(
word
);
DSKDAT
(
word
);
dsklength
--
;
dsklength
--
;
}
else
if
(
dsklength
==
0
&&
disk_fifostatus
()
<
0
)
{
// zero length transfer wouldn't finish without this
disk_dmafinished
();
}
}
return
true
;
return
true
;
}
}
...
@@ -3125,6 +3126,10 @@ void DISK_update (unsigned int tohpos)
...
@@ -3125,6 +3126,10 @@ void DISK_update (unsigned int tohpos)
disk_doupdate_read_nothing
(
cycles
);
disk_doupdate_read_nothing
(
cycles
);
}
}
/* instantly finish dma if dsklen==0 and wordsync detected */
if
(
dskdmaen
&&
dma_enable
&&
dsklength2
==
0
&&
dsklength
==
0
)
disk_dmafinished
();
disk_doupdate_predict
(
disk_hpos
);
disk_doupdate_predict
(
disk_hpos
);
}
}
...
@@ -3143,6 +3148,7 @@ void DSKLEN (uae_u16 v, unsigned int hpos)
...
@@ -3143,6 +3148,7 @@ void DSKLEN (uae_u16 v, unsigned int hpos)
dma_enable
=
(
adkcon
&
0x400
)
?
0
:
1
;
dma_enable
=
(
adkcon
&
0x400
)
?
0
:
1
;
}
}
if
(
!
(
v
&
0x8000
))
{
if
(
!
(
v
&
0x8000
))
{
dma_enable
=
0
;
if
(
dskdmaen
)
{
if
(
dskdmaen
)
{
/* Megalomania and Knightmare does this */
/* Megalomania and Knightmare does this */
if
(
disk_debug_logging
>
0
&&
dskdmaen
==
2
)
if
(
disk_debug_logging
>
0
&&
dskdmaen
==
2
)
...
@@ -3166,6 +3172,11 @@ void DSKLEN (uae_u16 v, unsigned int hpos)
...
@@ -3166,6 +3172,11 @@ void DSKLEN (uae_u16 v, unsigned int hpos)
if
(
dskdmaen
==
0
)
if
(
dskdmaen
==
0
)
return
;
return
;
if
(
dsklength
==
0
&&
dma_enable
)
{
disk_dmafinished
();
return
;
}
if
((
v
&
0x4000
)
&&
(
prev
&
0x4000
))
{
if
((
v
&
0x4000
)
&&
(
prev
&
0x4000
))
{
if
(
dsklength
==
0
)
if
(
dsklength
==
0
)
return
;
return
;
...
@@ -3177,9 +3188,6 @@ void DSKLEN (uae_u16 v, unsigned int hpos)
...
@@ -3177,9 +3188,6 @@ void DSKLEN (uae_u16 v, unsigned int hpos)
DISK_start
();
DISK_start
();
}
}
if
(
dsklength
==
1
)
dsklength
=
0
;
#ifdef DEBUGGER
#ifdef DEBUGGER
if
(((
disk_debug_mode
&
DISK_DEBUG_DMA_READ
)
&&
dskdmaen
==
2
)
||
if
(((
disk_debug_mode
&
DISK_DEBUG_DMA_READ
)
&&
dskdmaen
==
2
)
||
((
disk_debug_mode
&
DISK_DEBUG_DMA_WRITE
)
&&
dskdmaen
==
3
))
((
disk_debug_mode
&
DISK_DEBUG_DMA_WRITE
)
&&
dskdmaen
==
3
))
...
...
src/drawing.c
View file @
f3f22b7c
...
@@ -2386,7 +2386,7 @@ void putpixel (uae_u8 *buf, int bpp, int x, xcolnr c8, int opaq)
...
@@ -2386,7 +2386,7 @@ void putpixel (uae_u8 *buf, int bpp, int x, xcolnr c8, int opaq)
}
}
}
}
static
void
draw_status_line
(
int
line
)
static
void
draw_status_line
(
int
line
,
int
statusy
)
{
{
int
bpp
,
y
;
int
bpp
,
y
;
uae_u8
*
buf
;
uae_u8
*
buf
;
...
@@ -2399,7 +2399,7 @@ static void draw_status_line (int line)
...
@@ -2399,7 +2399,7 @@ static void draw_status_line (int line)
if
(
xlinebuffer
==
0
)
if
(
xlinebuffer
==
0
)
xlinebuffer
=
row_map
[
line
];
xlinebuffer
=
row_map
[
line
];
buf
=
xlinebuffer
;
buf
=
xlinebuffer
;
draw_status_line_single
(
buf
,
bpp
,
y
,
gfxvidinfo
.
width
,
xredcolors
,
xgreencolors
,
xbluecolors
,
NULL
);
draw_status_line_single
(
buf
,
bpp
,
status
y
,
gfxvidinfo
.
width
,
xredcolors
,
xgreencolors
,
xbluecolors
,
NULL
);
}
}
static
void
draw_debug_status_line
(
int
line
)
static
void
draw_debug_status_line
(
int
line
)
...
@@ -2519,12 +2519,10 @@ void finish_drawing_frame (void)
...
@@ -2519,12 +2519,10 @@ void finish_drawing_frame (void)
break
;
break
;
if
(
where2
<
0
)
if
(
where2
<
0
)
continue
;
continue
;
hposblank
=
0
;
hposblank
=
0
;
pfield_draw_line
(
line
,
where2
,
amiga2aspect_line_map
[
i1
+
1
]);
pfield_draw_line
(
line
,
where2
,
amiga2aspect_line_map
[
i1
+
1
]);
}
}
/* clear possible old garbage at the bottom if emulated area become smaller */
/* clear possible old garbage at the bottom if emulated area become smaller */
for
(
i
=
last_max_ypos
;
i
<
gfxvidinfo
.
height
;
i
++
)
{
for
(
i
=
last_max_ypos
;
i
<
gfxvidinfo
.
height
;
i
++
)
{
int
i1
=
i
+
min_ypos_for_screen
;
int
i1
=
i
+
min_ypos_for_screen
;
...
@@ -2548,9 +2546,11 @@ void finish_drawing_frame (void)
...
@@ -2548,9 +2546,11 @@ void finish_drawing_frame (void)
}
}
if
(
currprefs
.
leds_on_screen
)
{
if
(
currprefs
.
leds_on_screen
)
{
int
slx
,
sly
;
statusline_getpos
(
&
slx
,
&
sly
,
gfxvidinfo
.
width
,
gfxvidinfo
.
height
);
for
(
i
=
0
;
i
<
TD_TOTAL_HEIGHT
;
i
++
)
{
for
(
i
=
0
;
i
<
TD_TOTAL_HEIGHT
;
i
++
)
{
int
line
=
gfxvidinfo
.
height
-
TD_TOTAL_HEIGHT
+
i
;
int
line
=
sly
+
i
;
draw_status_line
(
line
);
draw_status_line
(
line
,
i
);
do_flush_line
(
line
);
do_flush_line
(
line
);
}
}
}
}
...
...
src/expansion.c
View file @
f3f22b7c
...
@@ -1410,7 +1410,7 @@ void expamem_reset (void)
...
@@ -1410,7 +1410,7 @@ void expamem_reset (void)
allocate_expamem
();
allocate_expamem
();
/* check if Kickstart version is below 1.3 */
/* check if Kickstart version is below 1.3 */
if
(
!
ersatzkickfile
&&
kickstart_version
if
(
kickstart_version
&&
(
/* Kickstart 1.0 & 1.1! */
&&
(
/* Kickstart 1.0 & 1.1! */
kickstart_version
==
0xFFFF
kickstart_version
==
0xFFFF
/* Kickstart < 1.3 */
/* Kickstart < 1.3 */
...
@@ -1485,7 +1485,7 @@ void expamem_reset (void)
...
@@ -1485,7 +1485,7 @@ void expamem_reset (void)
}
}
#endif
#endif
#ifdef FILESYS
#ifdef FILESYS
if
(
do_mount
&&
!
ersatzkickfile
)
{
if
(
do_mount
)
{
card_init
[
cardno
]
=
expamem_init_filesys
;
card_init
[
cardno
]
=
expamem_init_filesys
;
card_map
[
cardno
++
]
=
expamem_map_filesys
;
card_map
[
cardno
++
]
=
expamem_map_filesys
;
}
}
...
...
src/gui-qt/puae_mainwindow.ui
View file @
f3f22b7c
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
</rect>
</rect>
</property>
</property>
<property
name=
"windowTitle"
>
<property
name=
"windowTitle"
>
<string>
PUAE 2.3.
1
</string>
<string>
PUAE 2.3.
2
</string>
</property>
</property>
<widget
class=
"QWidget"
name=
"centralWidget"
>
<widget
class=
"QWidget"
name=
"centralWidget"
>
<widget
class=
"QTabWidget"
name=
"tab_main"
>
<widget
class=
"QTabWidget"
name=
"tab_main"
>
...
...
src/gui-qt/puae_registry.cpp
View file @
f3f22b7c
...
@@ -168,7 +168,7 @@ void regstatus (void)
...
@@ -168,7 +168,7 @@ void regstatus (void)
int
reginitializeinit
(
const
char
*
ppath
)
int
reginitializeinit
(
const
char
*
ppath
)
{
{
QSettings
settings
(
"PUAE"
,
"2.3.
1
"
);
QSettings
settings
(
"PUAE"
,
"2.3.
2
"
);
settings
.
beginGroup
(
"Warning"
);
settings
.
beginGroup
(
"Warning"
);
settings
.
setValue
(
"info1"
,
"This is unsupported file. Compatibility between versions is not guaranteed."
);
settings
.
setValue
(
"info1"
,
"This is unsupported file. Compatibility between versions is not guaranteed."
);
...
...
src/include/events.h
View file @
f3f22b7c
...
@@ -67,7 +67,7 @@ struct ev2
...
@@ -67,7 +67,7 @@ struct ev2
};
};
enum
{
enum
{
ev_
hsync
,
ev_cia
,
ev_misc
,
ev_audio
,
ev_
cia
,
ev_audio
,
ev_misc
,
ev_hsync
,
ev_max
ev_max
};
};
...
@@ -79,10 +79,6 @@ enum {
...
@@ -79,10 +79,6 @@ enum {
extern
struct
ev
eventtab
[
ev_max
];
extern
struct
ev
eventtab
[
ev_max
];
extern
struct
ev2
eventtab2
[
ev2_max
];
extern
struct
ev2
eventtab2
[
ev2_max
];
extern
void
event2_newevent
(
int
,
evt
,
uae_u32
);
extern
void
event2_newevent2
(
evt
,
uae_u32
,
evfunc2
);
extern
void
event2_remevent
(
int
);
#if 0
#if 0
#ifdef JIT
#ifdef JIT
#include "events_jit.h"
#include "events_jit.h"
...
@@ -104,4 +100,64 @@ STATIC_INLINE bool cycles_in_range (unsigned long endcycles)
...
@@ -104,4 +100,64 @@ STATIC_INLINE bool cycles_in_range (unsigned long endcycles)
return
(
signed
long
)
endcycles
-
c
>
0
;
return
(
signed
long
)
endcycles
-
c
>
0
;
}
}
extern
void
MISC_handler
(
void
);
STATIC_INLINE
void
event2_newevent_xx
(
int
no
,
evt
t
,
uae_u32
data
,
evfunc2
func
)
{
evt
et
;
static
int
next
=
ev2_misc
;
et
=
t
+
get_cycles
();
if
(
no
<
0
)
{
no
=
next
;
for
(;;)
{
if
(
!
eventtab2
[
no
].
active
)
break
;
if
(
eventtab2
[
no
].
evtime
==
et
&&
eventtab2
[
no
].
handler
==
func
)
{
eventtab2
[
no
].
handler
(
eventtab2
[
no
].
data
);
break
;
}
no
++
;
if
(
no
==
ev2_max
)
no
=
ev2_misc
;
if
(
no
==
next
)
{
write_log
(
"out of event2's!
\n
"
);
return
;
}
}
next
=
no
;
}
eventtab2
[
no
].
active
=
true
;
eventtab2
[
no
].
evtime
=
et
;
eventtab2
[
no
].
handler
=
func
;
eventtab2
[
no
].
data
=
data
;
MISC_handler
();
}
STATIC_INLINE
void
event2_newevent_x
(
int
no
,
evt
t
,
uae_u32
data
,
evfunc2
func
)
{
if
(((
int
)
t
)
<=
0
)
{
func
(
data
);
return
;
}
event2_newevent_xx
(
no
,
t
*
CYCLE_UNIT
,
data
,
func
);
}
STATIC_INLINE
void
event2_newevent
(
int
no
,
evt
t
,
uae_u32
data
)
{
event2_newevent_x
(
no
,
t
,
data
,
eventtab2
[
no
].
handler
);
}
STATIC_INLINE
void
event2_newevent2
(
evt
t
,
uae_u32
data
,
evfunc2
func
)
{
event2_newevent_x
(
-
1
,
t
,
data
,
func
);
}
STATIC_INLINE
void
event2_remevent
(
int
no
)
{
eventtab2
[
no
].
active
=
0
;
}
#endif
#endif
src/include/options.h
View file @
f3f22b7c
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
#define UAEMAJOR 2
#define UAEMAJOR 2
#define UAEMINOR 3
#define UAEMINOR 3
#define UAESUBREV
1
#define UAESUBREV
2
typedef
enum
{
KBD_LANG_US
,
KBD_LANG_DK
,
KBD_LANG_DE
,
KBD_LANG_SE
,
KBD_LANG_FR
,
KBD_LANG_IT
,
KBD_LANG_ES
,
KBD_LANG_TR
}
KbdLang
;
typedef
enum
{
KBD_LANG_US
,
KBD_LANG_DK
,
KBD_LANG_DE
,
KBD_LANG_SE
,
KBD_LANG_FR
,
KBD_LANG_IT
,
KBD_LANG_ES
,
KBD_LANG_TR
}
KbdLang
;
...
@@ -184,6 +184,7 @@ struct uae_prefs {
...
@@ -184,6 +184,7 @@ struct uae_prefs {
int
sound_filter
;
int
sound_filter
;
int
sound_filter_type
;
int
sound_filter_type
;
int
sound_volume
;
int
sound_volume
;
int
sound_volume_cd
;
bool
sound_stereo_swap_paula
;
bool
sound_stereo_swap_paula
;
bool
sound_stereo_swap_ahi
;
bool
sound_stereo_swap_ahi
;
bool
sound_auto
;
bool
sound_auto
;
...
@@ -261,6 +262,7 @@ struct uae_prefs {
...
@@ -261,6 +262,7 @@ struct uae_prefs {
int
chipset_refreshrate
;
int
chipset_refreshrate
;
int
collision_level
;
int
collision_level
;
int
leds_on_screen
;
int
leds_on_screen
;
struct
wh
osd_pos
;
int
keyboard_leds
[
3
];
int
keyboard_leds
[
3
];
bool
keyboard_leds_in_use
;
bool
keyboard_leds_in_use
;
int
scsi
;
int
scsi
;
...
...
src/include/savestate.h
View file @
f3f22b7c
...
@@ -168,6 +168,7 @@ extern void restore_a2065_finish (void);
...
@@ -168,6 +168,7 @@ extern void restore_a2065_finish (void);
extern
uae_u8
*
restore_debug_memwatch
(
uae_u8
*
src
);
extern
uae_u8
*
restore_debug_memwatch
(
uae_u8
*
src
);
extern
uae_u8
*
save_debug_memwatch
(
int
*
len
,
uae_u8
*
dstptr
);
extern
uae_u8
*
save_debug_memwatch
(
int
*
len
,
uae_u8
*
dstptr
);
extern
void
restore_debug_memwatch_finish
(
void
);
extern
uae_u8
*
save_cycles
(
int
*
len
,
uae_u8
*
dstptr
);
extern
uae_u8
*
save_cycles
(
int
*
len
,
uae_u8
*
dstptr
);
extern
uae_u8
*
restore_cycles
(
uae_u8
*
src
);
extern
uae_u8
*
restore_cycles
(
uae_u8
*
src
);
...
...
src/include/statusline.h
View file @
f3f22b7c
...
@@ -24,3 +24,4 @@ static int td_pos = (TD_RIGHT|TD_BOTTOM);
...
@@ -24,3 +24,4 @@ static int td_pos = (TD_RIGHT|TD_BOTTOM);
#define STATUSLINE_TARGET 0x80
#define STATUSLINE_TARGET 0x80
extern
void
draw_status_line_single
(
uae_u8
*
buf
,
int
bpp
,
int
y
,
int
totalwidth
,
uae_u32
*
rc
,
uae_u32
*
gc
,
uae_u32
*
bc
,
uae_u32
*
alpha
);
extern
void
draw_status_line_single
(
uae_u8
*
buf
,
int
bpp
,
int
y
,
int
totalwidth
,
uae_u32
*
rc
,
uae_u32
*
gc
,
uae_u32
*
bc
,
uae_u32
*
alpha
);
extern
void
statusline_getpos
(
int
*
x
,
int
*
y
,
int
width
,
int
height
);
src/include/version.h
View file @
f3f22b7c
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
#define UAEMAJOR 2
#define UAEMAJOR 2
#define UAEMINOR 3
#define UAEMINOR 3
#define UAESUBREV
1
#define UAESUBREV
2
#define UAEVERSION (256*65536L*UAEMAJOR + 65536L*UAEMINOR + UAESUBREV)
#define UAEVERSION (256*65536L*UAEMAJOR + 65536L*UAEMINOR + UAESUBREV)
...
...
src/memory.c
View file @
f3f22b7c
...
@@ -1767,6 +1767,35 @@ static void patch_kick (void)
...
@@ -1767,6 +1767,35 @@ static void patch_kick (void)
kickstart_fix_checksum
(
kickmemory
,
kickmem_size
);
kickstart_fix_checksum
(
kickmemory
,
kickmem_size
);
}
}
extern
unsigned
char
arosrom
[];
extern
unsigned
int
arosrom_len
;
extern
int
seriallog
;
static
bool
load_kickstart_replacement
(
void
)
{
struct
zfile
*
f
;
f
=
zfile_fopen_data
(
"aros.gz"
,
arosrom_len
,
arosrom
);
if
(
!
f
)
return
false
;
f
=
zfile_gunzip
(
f
);
if
(
!
f
)
return
false
;
kickmem_mask
=
0x80000
-
1
;
kickmem_size
=
0x80000
;
extendedkickmem_size
=
0x80000
;
extendedkickmem_type
=
EXTENDED_ROM_KS
;
extendedkickmemory
=
mapped_malloc
(
extendedkickmem_size
,
"rom_e0"
);
extendedkickmem_bank
.
baseaddr
=
extendedkickmemory
;
read_kickstart
(
f
,
extendedkickmemory
,
extendedkickmem_size
,
0
,
1
);
extendedkickmem_mask
=
extendedkickmem_size
-
1
;
read_kickstart
(
f
,
kickmemory
,
0x80000
,
1
,
0
);
zfile_fclose
(
f
);
#ifdef SERIAL_PORT
seriallog
=
-
1
;
#endif
return
true
;
}
static
int
load_kickstart
(
void
)
static
int
load_kickstart
(
void
)
{
{
struct
zfile
*
f
;
struct
zfile
*
f
;
...
@@ -1774,6 +1803,8 @@ static int load_kickstart (void)
...
@@ -1774,6 +1803,8 @@ static int load_kickstart (void)
int
patched
=
0
;
int
patched
=
0
;
cloanto_rom
=
0
;
cloanto_rom
=
0
;
if
(
!
_tcscmp
(
currprefs
.
romfile
,
":AROS"
))
return
load_kickstart_replacement
();
f
=
read_rom_name
(
currprefs
.
romfile
);
f
=
read_rom_name
(
currprefs
.
romfile
);
_tcscpy
(
tmprom
,
currprefs
.
romfile
);
_tcscpy
(
tmprom
,
currprefs
.
romfile
);
if
(
f
==
NULL
)
{
if
(
f
==
NULL
)
{
...
@@ -2458,16 +2489,7 @@ void memory_reset (void)
...
@@ -2458,16 +2489,7 @@ void memory_reset (void)
write_log
(
"Failed to open '%s'
\n
"
,
currprefs
.
romfile
);
write_log
(
"Failed to open '%s'
\n
"
,
currprefs
.
romfile
);
gui_message
(
"Could not load system ROM, trying system ROM replacement.
\n
"
);
gui_message
(
"Could not load system ROM, trying system ROM replacement.
\n
"
);
}
}
#ifdef AUTOCONFIG
load_kickstart_replacement
();
init_ersatz_rom
(
kickmemory
);
kickmem_mask
=
262144
-
1
;
kickmem_size
=
262144
;
ersatzkickfile
=
1
;
#else
gui_message
(
"No Kickstart image selected
\n
"
);
uae_restart
(
-
1
,
NULL
);
return
;
#endif
}
else
{
}
else
{
struct
romdata
*
rd
=
getromdatabydata
(
kickmemory
,
kickmem_size
);
struct
romdata
*
rd
=
getromdatabydata
(
kickmemory
,
kickmem_size
);
if
(
rd
)
{
if
(
rd
)
{
...
...
src/newcpu.c
View file @
f3f22b7c
...
@@ -2868,19 +2868,10 @@ unsigned long REGPARAM2 op_illg (uae_u32 opcode)
...
@@ -2868,19 +2868,10 @@ unsigned long REGPARAM2 op_illg (uae_u32 opcode)
}
}
#ifdef AUTOCONFIG
#ifdef AUTOCONFIG
if
(
opcode
==
0xFF0D
)
{
if
(
opcode
==
0xFF0D
&&
inrt
)
{
if
(
inrom
)
{
/* User-mode STOP replacement */
/* This is from the dummy Kickstart replacement */
m68k_setstopped
();
uae_u16
arg
=
get_iword
(
2
);
return
4
;
m68k_incpc
(
4
);
ersatz_perform
(
arg
);
fill_prefetch
();
return
4
;
}
else
if
(
inrt
)
{
/* User-mode STOP replacement */
m68k_setstopped
();
return
4
;
}
}
}
if
((
opcode
&
0xF000
)
==
0xA000
&&
inrt
)
{
if
((
opcode
&
0xF000
)
==
0xA000
&&
inrt
)
{
...
...
src/rommgr.c
View file @
f3f22b7c
...
@@ -102,6 +102,9 @@ static struct romheader romheaders[] = {
...
@@ -102,6 +102,9 @@ static struct romheader romheaders[] = {
{ "X", 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, pn, crc32, a, b, c, d, e },
{ "X", 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, pn, crc32, a, b, c, d, e },
static
struct
romdata
roms
[]
=
{
static
struct
romdata
roms
[]
=
{
{
" AROS KS ROM (built-in)"
,
0
,
0
,
0
,
0
,
"AROS
\0
"
,
524288
*
2
,
66
,
0
,
0
,
ROMTYPE_KICK
,
0
,
0
,
NULL
,
0xffffffff
,
0
,
0
,
0
,
0
,
0
,
"AROS"
},
{
"Cloanto Amiga Forever ROM key"
,
0
,
0
,
0
,
0
,
0
,
2069
,
0
,
0
,
1
,
ROMTYPE_KEY
,
0
,
0
,
NULL
,
{
"Cloanto Amiga Forever ROM key"
,
0
,
0
,
0
,
0
,
0
,
2069
,
0
,
0
,
1
,
ROMTYPE_KEY
,
0
,
0
,
NULL
,
0x869ae1b1
,
0x801bbab3
,
0x2e3d3738
,
0x6dd1636d
,
0x4f1d6fa7
,
0xe21d5874
},
0x869ae1b1
,
0x801bbab3
,
0x2e3d3738
,
0x6dd1636d
,
0x4f1d6fa7
,
0xe21d5874
},
{
"Cloanto Amiga Forever 2006 ROM key"
,
0
,
0
,
0
,
0
,
0
,
750
,
48
,
0
,
1
,
ROMTYPE_KEY
,
0
,
0
,
NULL
,
{
"Cloanto Amiga Forever 2006 ROM key"
,
0
,
0
,
0
,
0
,
0
,
750
,
48
,
0
,
1
,
ROMTYPE_KEY
,
0
,
0
,
NULL
,
...
...
src/savestate.c
View file @
f3f22b7c
...
@@ -505,6 +505,7 @@ void restore_state (const TCHAR *filename)
...
@@ -505,6 +505,7 @@ void restore_state (const TCHAR *filename)
chunk
=
restore_chunk
(
f
,
name
,
&
len
,
&
totallen
,
&
filepos
);
chunk
=
restore_chunk
(
f
,
name
,
&
len
,
&
totallen
,
&
filepos
);
if
(
!
chunk
||
_tcsncmp
(
name
,
"ASF "
,
4
))
{
if
(
!
chunk
||
_tcsncmp
(
name
,
"ASF "
,
4
))
{
write_log
(
"%s is not an AmigaStateFile
\n
"
,
filename
);
gui_message
(
"Cannot restore state from '%s'.
\n
It is not an AmigaStateFile.
\n
"
,
filename
);
gui_message
(
"Cannot restore state from '%s'.
\n
It is not an AmigaStateFile.
\n
"
,
filename
);
goto
error
;
goto
error
;
}
}
...
@@ -739,6 +740,7 @@ void savestate_restore_finish (void)
...
@@ -739,6 +740,7 @@ void savestate_restore_finish (void)
restore_a2065_finish
();
restore_a2065_finish
();
#endif
#endif
restore_cia_finish
();
restore_cia_finish
();
restore_debug_memwatch_finish
();
savestate_state
=
0
;
savestate_state
=
0
;
init_hz_full
();
init_hz_full
();
audio_activate
();
audio_activate
();
...
...
src/serial.c
View file @
f3f22b7c
...
@@ -84,6 +84,7 @@ int sd = -1;
...
@@ -84,6 +84,7 @@ int sd = -1;
#endif
#endif
uae_u16
serper
=
0
,
serdat
;
uae_u16
serper
=
0
,
serdat
;
int
seriallog
=
0
,
log_sercon
=
0
;
void
SERPER
(
uae_u16
w
)
void
SERPER
(
uae_u16
w
)
{
{
...
...
src/statusline.c
View file @
f3f22b7c
...
@@ -16,6 +16,32 @@
...
@@ -16,6 +16,32 @@
* Some code to put status information on the screen.
* Some code to put status information on the screen.
*/
*/
void
statusline_getpos
(
int
*
x
,
int
*
y
,
int
width
,
int
height
)
{
if
(
currprefs
.
osd_pos
.
x
>=
20000
)
{
if
(
currprefs
.
osd_pos
.
x
>=
30000
)
*
y
=
width
*
(
currprefs
.
osd_pos
.
x
-
30000
)
/
1000
;
else
*
y
=
width
-
(
width
*
(
30000
-
currprefs
.
osd_pos
.
y
)
/
1000
);
}
else
{
if
(
currprefs
.
osd_pos
.
x
>=
0
)
*
x
=
currprefs
.
osd_pos
.
x
;
else
*
x
=
-
currprefs
.
osd_pos
.
x
+
1
;
}
if
(
currprefs
.
osd_pos
.
y
>=
20000
)
{
if
(
currprefs
.
osd_pos
.
y
>=
30000
)
*
y
=
(
height
-
TD_TOTAL_HEIGHT
)
*
(
currprefs
.
osd_pos
.
y
-
30000
)
/
1000
;
else
*
y
=
(
height
-
TD_TOTAL_HEIGHT
)
-
((
height
-
TD_TOTAL_HEIGHT
)
*
(
30000
-
currprefs
.
osd_pos
.
y
)
/
1000
);
}
else
{
if
(
currprefs
.
osd_pos
.
y
>=
0
)
*
y
=
height
-
TD_TOTAL_HEIGHT
-
currprefs
.
osd_pos
.
y
;
else
*
y
=
-
currprefs
.
osd_pos
.
y
+
1
;
}
}
static
const
char
*
numbers
=
{
/* ugly 0123456789CHD%+- */
static
const
char
*
numbers
=
{
/* ugly 0123456789CHD%+- */
"+++++++--++++-+++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++-++++++-++++----++---+--------------"
"+++++++--++++-+++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++-++++++-++++----++---+--------------"
"+xxxxx+--+xx+-+xxxxx++xxxxx++x+-+x++xxxxx++xxxxx++xxxxx++xxxxx++xxxxx++xxxx+-+x++x+-+xxx++-+xx+-+x---+----------"
"+xxxxx+--+xx+-+xxxxx++xxxxx++x+-+x++xxxxx++xxxxx++xxxxx++xxxxx++xxxxx++xxxx+-+x++x+-+xxx++-+xx+-+x---+----------"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment