Commit Graph

1097 Commits

Author SHA1 Message Date
asvitkine
268af8086b back out my previous change, it breaks audio 2007-01-22 00:32:25 +00:00
asvitkine
473a3f2e22 Fix for resolution switching corruption under SDL (Mac OS X). 2007-01-21 19:33:13 +00:00
asvitkine
a3c2413f3b ignore disks on which you can't get size 2007-01-21 18:06:39 +00:00
asvitkine
16bb0823b8 some documentation of status codes not yet implemented 2007-01-21 17:40:00 +00:00
asvitkine
28d7af3820 newline in error msgs 2007-01-21 17:27:15 +00:00
asvitkine
e9fbc36368 fix compile warnings on OS X 2007-01-21 17:10:49 +00:00
asvitkine
10b342e064 Byteswapping fixes for Mac OS X x86 2007-01-21 17:04:47 +00:00
gbeauche
3c100abdb2 Fix CMOV emulation on x86_64 in case the CPU doesn't support that instruction
(which is very unlikely).
2007-01-14 13:23:36 +00:00
gbeauche
8d2f2a335b The older code generator is now deprecated on x86-32 too. 2007-01-14 13:07:22 +00:00
gbeauche
1f2e561a6f Use SAHF_SETO_PROFITABLE wherever possible on x86-64, it's faster. This can't
be the default because some very ancient CPUs don't support LAHF in long mode
2007-01-14 12:23:29 +00:00
gbeauche
2e95c43bf2 Remove the 33-bit addressing hack as it's overly complex for not much gain.
Rather, use an address override prefix (0x67) though Intel Core optimization
reference guide says to avoid LCP prefixes. In practise, impact on performance
is measurably marginal on e.g. Speedometer tests.
2007-01-13 18:21:30 +00:00
gbeauche
9e252b413e Fix 64-bit builds in REAL_ADDRESSING mode with gcc4.1. 2007-01-13 17:21:08 +00:00
nigel
a8e7114df2 Do'h. Checked in and shipped a DEBUG=1. Thanks to Steve Green for his fast eyes. 2006-08-01 03:31:46 +00:00
nigel
9a3097705d Clarify CD insertion state, add widescreen suggestion 2006-07-31 11:10:59 +00:00
nigel
1b25d07fd6 Final doco changes before a new release 2006-07-31 10:51:24 +00:00
nigel
acb3384366 Sound done, VOSF pointless, Cut/paste half working, CD insert 2006-07-31 10:10:48 +00:00
nigel
9e9e20325e Use Gwenole's clip_macosx.cpp instead of the dummy version 2006-07-31 08:52:33 +00:00
nigel
ecf2403c46 ether_unix.cpp somehow pulls something in that needs mem_banks.
If it isn't compiled in this directory, the wrong config.h is used.
2006-07-31 08:47:52 +00:00
nigel
1dad46a8ad Project file updates for the new audio source files. 2006-07-29 02:24:15 +00:00
nigel
c68e5d916d Working audio output by Daniel Sumorok.
Not quite the way I wanted to do it but it will do for now.
(on a real Mac, the real audio hardware should be able to pull/grab the data
 from our buffers - an extra thread with its own set of buffers is wasteful!)
2006-07-28 13:42:29 +00:00
nigel
938c61485c Resync with latest src/Unix/configure.ac 2006-07-28 13:28:54 +00:00
nigel
3e21f0377b Giving up on the Objective-C version, also need to remove it from the makefile 2006-07-28 13:18:12 +00:00
nigel
f44d37bac8 Working audio output by Daniel Sumorok.
Not quite the way I wanted to do it but it will do for now.
(on a real Mac, the real audio hardware should be able to pull/grab the data
 from our buffers - an extra thread with its own set of buffers is wasteful!)
2006-07-28 13:15:18 +00:00
gbeauche
7af6665619 icc9.1 & gcc4.1 warning fixes 2006-07-23 10:20:23 +00:00
gbeauche
87e1518e96 A few fixlets to the SIGSEGV library:
- Don't export transfer types definitions (formerly used by older API)
- Handle ADD instructions in ix86_skip_instruction() (generated by icc 9.1)
- Use "%p" format for EIP/RIP addresses
2006-07-19 21:31:10 +00:00
gbeauche
d1d7d5bd4c Fix remove_shm_range() to actually return something 2006-07-19 21:23:41 +00:00
gbeauche
f39c252fbd Fix 33-bit addressing mode check when compiling with icc 9.1 2006-07-19 21:22:41 +00:00
gbeauche
53f79caf8c Add LEALQmr, EMMS, SSE CMP and a series of new SSE opcodes (auto-generated) 2006-07-17 04:07:41 +00:00
gbeauche
9e64c3af94 Add more SSE templates for new SheepShaver's code generator -- though it
should be made independent of this file.
2006-07-14 16:53:48 +00:00
gbeauche
b4768fc62c Run-time assembler fixes:
- Check for RIP register only in 64-bit mode
- Add missing macros and arguments (BT*im)
- MOVSWQ/MOVZWQ are 64-bit mode instructions only
2006-07-14 09:09:12 +00:00
nigel
c071cd14f6 libgenemu can't find regflags in the XCode built newcpu.o,
so we compile it from the makefile into the lib, and not in the project
2006-05-25 05:03:03 +00:00
gbeauche
e4f5757403 Merge from the QEMU tree:
- Fix IP packet re-assembly logic (Ed Swierk)
- Suppress unaligned accesses (Fabrice Bellard)
2006-05-14 17:27:38 +00:00
gbeauche
ab1565ced2 Support up to 1GB in SheepShaver for Windows now. 2006-05-14 16:13:54 +00:00
gbeauche
7660affe77 Windows apparently needs an extra mouse event to make the new cursor image
visible.
2006-05-14 14:11:46 +00:00
gbeauche
3aa9d912b7 Fix build on Windows (<malloc.h> for alloca()) 2006-05-14 13:49:53 +00:00
nigel
1a7d3714fb Compile the CPU emulator in the makefile, so that it picks up configure-
generated #defines that are needed for running on X86 (vs PPC) emulator
2006-05-14 11:58:41 +00:00
nigel
c5c748f7e2 Some windowed graphics drawing methods cause the snapshot code to fail
if you have changed the depth since boot (seems to be something strange
with the parameters that I still haven't worked out). If this happens,
we now put a suggested workaround in the warning message.
2006-05-14 10:17:06 +00:00
gbeauche
98675da523 Fix NQD bounds checking -- don't overwrite the CLEAR Page Guard. 2006-05-14 08:32:05 +00:00
gbeauche
26a71e5417 Fix page alignment 2006-05-14 07:11:23 +00:00
gbeauche
1470a8af13 NQD dirty boxes, SDL backend.
This reduces the number of Screen_fault_handler() calls by 80%. i.e. VOSF
is now viable on this turtle MacOS X. Besides, since there is no buffer
comparison, idle sleep can really be effective. SheepShaver in idle mode
on my PBG4 now goes below 8% of CPU resources instead of 70-80% with
bounding boxes based video refreshes.

Caveat: if your program doesn't use standard MacOS routines that call NQD,
then you can expect slower (visual) performance. However, I do think the
new default behavior (VOSF+NQD) is the most common.
2006-05-13 16:58:44 +00:00
gbeauche
e4015e069f Use NQD dirty boxes, VOSF backend
+ make video_vosf_profitable() NQD accel aware
+ call vm_protect() only if PFLAG_CLEAR(page)
2006-05-13 16:48:47 +00:00
gbeauche
3b07ba27e4 Introduce a new video refresh function that uses smaller bounding boxes.
This does not improve graphics performance but helps CPU because it reduces
the number of bytes transfered to actual screen. I saw an improvement by up
to 26% in frameskip 4 800x600x16 but also a hit by 3% with frameskip 0.

The next step is to use NQD bounding boxes to help detecting dirty areas.

So far, this is the best I can do without VOSF working (MacOS X performance
bugs -- pitifully slow Mach syscalls)
2006-05-11 07:51:32 +00:00
gbeauche
5019174a22 SDL Video updates:
- Properly handle migration from "screenmodes" and "windowmodes" to "screen"
- Fix has_mode() logic to really test for actual mode availability. i.e.
  no longer start in large screen mode if user specified a max size.
2006-05-09 21:41:02 +00:00
gbeauche
4c225b2705 MacOS X exception handling updates:
- Call user handler for KERN_INVALID_ADDRESS too (SIGBUS)
- Check for VALID_THREAD_STATE_FLAVOR in forward_exception()
- Return KERN_FAILURE if forward_exception() got an unknown behavior code
2006-05-09 06:24:05 +00:00
gbeauche
24af8d27c3 Fix for LAZY_FLUSH_ICACHE_RANGE. Blocks are indexed by native addresses. 2006-05-08 16:56:07 +00:00
gbeauche
ecdc036c69 Adapt for new functions (DarwinSysInit() & DarwinSysExit()) 2006-05-08 15:22:56 +00:00
gbeauche
61a2e86594 Rewrite MacOS X CD-ROM support.
Other bugs fixed:
- CD-ROM media are polled and now can be changed without rebooting
- Buffer overflow, memory leak and extra wait in CD-ROM ejection code
2006-05-08 12:15:58 +00:00
gbeauche
ff950c35e6 fix underquoted definition warning 2006-05-05 07:37:14 +00:00
gbeauche
5d3f53943d Add another NULL pointer check 2006-05-05 06:00:17 +00:00
gbeauche
1314f09a68 remove 2006-05-05 05:56:52 +00:00