Commit Graph

420 Commits

Author SHA1 Message Date
gbeauche
55df210d27 - video_x.cpp: the_buffer shall always be mapped through vm_alloc() so
that it can be vm_protect()'ed at will afterwards
- video_x.cpp: let driver_base free() the_buffer_copy and the_host_buffer,
  if necessary
- video_vosf.h: reverted to use malloc() for mainBuffer.dirtyPages and
  mainBuffer.pageInfo
- vm_alloc.cpp: small cleanups
- fixed typos
2001-07-14 18:41:05 +00:00
cebix
20db0c7260 - 1-bit mode under X11 always uses default visual
- fixed possible crash in driver_window dtor (image data would be freed twice,
  once by XDestroyImage() and once in driver_base dtor)
- fixed compilation problems with banked memory
- fixed typos
2001-07-14 15:02:49 +00:00
cebix
78c97c3f20 - outgoing packet source address is set in ether.cpp
- UDP tunnelling sends packets to Ethernet broadcast address as IP broadcasts
2001-07-13 18:49:29 +00:00
cebix
72c7f0db7a - updated the TECH document
- EtherReset() clears the UDP protocol list
- audio_oss_esd.cpp: AudioExit() calls close_audio()
- ether_unix.cpp: uses map<> for protocol handlers
- updated audio_dummy.cpp and ether_dummy.cpp
2001-07-13 15:39:25 +00:00
gbeauche
1c6d6d7cb2 - merged some code from uae-0.8.16 2001-07-13 10:13:58 +00:00
cebix
6c35c2a9e8 - Implemented AppleTalk-over-UDP tunnelling, activated by setting "udptunnel"
to "true". This uses the BSD socket API, so it's fairly portable (currently
  only imeplemented under Unix, though). This works by sending raw Ethernet
  packets as UDP packets to a fixed port number ("udpport", default is 6066),
  using IP broadcasts to simulate Ethernet broad- and multicasts. Currently
  only tested with AppleTalk.
2001-07-12 19:48:28 +00:00
cebix
90c7198b75 fixed a couple of compiler warnings 2001-07-11 19:26:14 +00:00
cebix
5fa9b2abe9 - find_visual_for_depth() did not return true on success 2001-07-11 17:04:41 +00:00
cebix
456830630c - background_pixel, border_pixel and colormap attributes of window are now
always set as this seems to be required for non-default visuals
2001-07-10 15:50:57 +00:00
cebix
305b9ef7f2 Irix needs pthread cond variables which need the pthread.h header file 2001-07-09 15:44:58 +00:00
cebix
5868a40a37 - ADB has its own interrupt flag, INTFLAG_ADB
- ADBMouseMoved(), ADBMouseDown/Up() and ADBKeyDown/Up() trigger the ADB
  interrupt
- ADB mutex is only used for mouse movement (the only input state where it
  matters)
- adb.cpp: toggling relative mouse mode resets mouse_x/y
- PrimeTime(0) schedules a timer task with 0 delay time; this is still not
  the correct implementation, but it makes MacSyndicate work...
- Unix: pthreads are preferred to POSIX.4 timers for 60Hz ticks because the
  timers drift badly under Linux and the thread can compensate for drifting
  well enough
- Unix: moved GetTicks_usec() and Delay_usec() to timer_unix.cpp
- video_x.cpp: X mouse acceleration is disabled in relative mouse mode because
  MacOS does its own acceleration
- video_x.cpp: palette[].pixel and palette[].flags are always preset
- video_x.cpp: decoupled X event handling from 60Hz video refresh cycle by
  using select() with a timeout on the X fd
2001-07-09 11:22:01 +00:00
gbeauche
8d733ed691 - added video_vosf_init()/video_vosf_exit() for initialization and destruction
of the internal structures used for the VOSF system
- use vm_acquire()/vm_release() for VOSF buffers and hope the_buffer is
  allocated above RAM address space (temporary workaround for 64-bit
  addressing systems)
- don't free() screen buffers in driver_base dtor
- don't free() memory mapped buffers in driver_base dtor
2001-07-07 09:14:47 +00:00
gbeauche
054e33c8fc - small fixes for Linux/ia64 2001-07-07 09:12:15 +00:00
gbeauche
cb59a85240 - Experimental fixes for 64-bit addressing systems (e.g. Linux/ia64). The
cpu emulation almost work correctly. FP emulation seems totaly boguous.
2001-07-07 09:08:54 +00:00
gbeauche
3896344ca1 - Try to map memory contiguously with base addresses returned in increasing
order. No host memory region used for Mac emulation (ScratchMem, RAM, ROM,
  frame buffer) shall be allocated below the RAM space. Actually, MEMBaseDiff
  should be set to the min(above-mentioned address spaces).
  ==> Temporary fix for 64-bit addressing systems (e.g. Linux/ia64)
2001-07-07 09:07:38 +00:00
cebix
64eb0dcad1 fixed memory leaks in video mode switching 2001-07-06 22:37:23 +00:00
cebix
0e7b5acffe added support for 2/4-bit modes on 8-bit visuals 2001-07-06 22:00:39 +00:00
cebix
6ff613c341 small fixes 2001-07-06 21:04:52 +00:00
cebix
1186b42a20 - an appropriate visual is selected for the requested Mac color depth
- the list of supported Mac color depths is constructed from the list of
  depth and visuals supported by the X server
2001-07-06 20:49:53 +00:00
cebix
e7a13421df replaced TIME_OFFSET constant by portable TimeToMacTime() function 2001-07-06 17:36:09 +00:00
cebix
791baa8f6f some cleanups 2001-07-05 21:24:45 +00:00
cebix
7eb6ed2b86 - supported audio formats are now kept in STL vectors
- added run-time audio parameter switching for OSS/ESD audio output
- setting ESPEAKER env variable causes B2 to try ESD before OSS
2001-07-05 20:30:54 +00:00
cebix
abd6539568 some small fixes 2001-07-04 11:12:20 +00:00
cebix
680ff996eb fixed typo and added VideoQuitFullScreen() 2001-07-03 19:26:51 +00:00
cebix
d0a4b3e5fc - improved compatibility of multiple depth/resolution handling with versions
of MacOS before 7.6:
   - Apple mode IDs are now allocated contiguously from 0x80 (the video_*.cpp
     module must call video_init_depth_list() after adding all modes)
   - if the video driver didn't receive a GetVideoParameters call, it patches
     ScrnBase and the main GDevice upon a video mode switch (otherwise MacOS
     will continue to use the old frame buffer base)
   - the rowBytes values in the video parameters slot resources are correct
     for all bit depths
2001-07-03 19:20:47 +00:00
cebix
cf22cb032a - added support for platform-independant mutexes, currently only properly
implemented under Unix
- adb.cpp uses mutexes for thread-safe mouse handling
- video_x.cpp: pressing Ctrl-F5 in windowed mode switches to a "grabbed"
  relative mouse mode, useful for some games
- video_x.cpp: fixed some bugs relating to the hotkeys (key releases are no
  longer treated as hotkeys)
2001-07-03 15:59:49 +00:00
gbeauche
6aff4fb327 - there is no implicit conversion from vector<T>::iterator to T& 2001-07-02 11:59:31 +00:00
cebix
5bd08dac88 - video_set_palette() gets passed the number of used palette entries
- video_x.cpp supports 2- and 4-bit modes on truecolor screens
2001-07-01 21:09:30 +00:00
cebix
f4243a191b added support for 8-bit windowed modes on 16 and 32-bit screens (for the
games, man, the games! :-)
2001-07-01 19:57:55 +00:00
cebix
af35353cf0 - sony.cpp/disk.cpp/cdrom.cpp use vector<> of drive_info objects instead of
linked list
- color depth switching updates slot ROM
- video_x.cpp always supports 1-bit window modes
- timer_create()/clock_gettime() are pulled from librt if present
2001-07-01 14:38:03 +00:00
cebix
73912e732e fixed compilation problems on BeOS/ppc 2001-07-01 12:42:04 +00:00
cebix
a4b36fd674 - added some documentation
- VidLocal.sp -> VidLocal.slot_param
- X11 color map is loaded with ramp upon startup to avoid the annoying black
  screen during initialization
2001-07-01 00:46:38 +00:00
cebix
50520dcf2f gamma tables work with X11 2001-06-30 22:23:44 +00:00
cebix
a3ea4f3ead - fixed compilation problems in fbdev DGA code
- nicer "about" dialog in GTK prefs editor
- display refresh is inhibited during mode switch if !HAVE_PTHREADS
2001-06-30 20:18:36 +00:00
cebix
b0b21f7fe6 - experimental gamma table support
- restructured video_x.cpp: uses classes for display types
2001-06-30 17:21:56 +00:00
gbeauche
d56ea02151 typo ;-) 2001-06-30 14:48:27 +00:00
cebix
f17b9006d6 - fixed compilation problems under AmigaOS
- fsave/frestore on AmigaOS and NetBSD/m68k always use a 68882/68040-style
  FPU frame, eliminating the need for 68060 FPU patches
2001-06-30 12:58:08 +00:00
cebix
738fa25344 slot ROM checksum is recalculated after patching during resolution switch 2001-06-29 12:51:21 +00:00
gbeauche
d011594d4e zero_fd is not longer used since vm_alloc.cpp should handle that correctly.
However, vm_init() and vm_exit() are called in main_unix.cpp to ensure proper
initialization of the internal zero_fd descriptor, if needed. i.e. no
anonymous mapping for mmap()-based memory allocation.
2001-06-28 22:06:18 +00:00
gbeauche
2ab43425c5 vector<> is in namespace std 2001-06-28 21:36:46 +00:00
cebix
0cf3f32b7d video_x.cpp supports resolution switching in windowed mode: the available
resolutions are 512x384, 640x480, 800x600, 1024x768 and 1280x1024 (the prefs
editor has to be updated to reflect this). The resolution selected in the
prefs editor is used as the default, but it can be changed in the Monitors
control panel. So far only tested with direct addressing.
2001-06-28 21:20:02 +00:00
cebix
0fe2584d92 depth/resolution switching infrastructure should be complete now; slot ROM
contains all supported depths, default mode is stored in XPRAM upon startup,
and added video_switch_to_mode() call (currently unimplemented in all drivers)
2001-06-27 20:05:31 +00:00
cebix
1be8a821a8 added infrastructure for resolution/depth switching (currently, all video
drivers only support one mode, the one selected by the user)
2001-06-27 19:03:38 +00:00
gbeauche
dae4fb627c - added SIGSEGV support for Linux/Alpha (to be checked), Darwin/PPC
- added uniform virtual memory allocation
  (supports mmap(), vm_allocate(), or fallbacks to malloc()/free())
- cleaned up memory allocation in main_unix.cpp
2001-06-26 22:35:42 +00:00
gbeauche
673c53231f - In banked addressing mode, the UAE memory handlers should already handle
reads/writes to/from the frame buffer correctly. i.e. specialised blitters
  should not be used there.
2001-06-22 08:34:49 +00:00
gbeauche
4d03a57251 - cleaned up removal of '-g' for gcc 2001-06-19 08:29:50 +00:00
gbeauche
da9f22d930 - config.guess: import CVS version 1.195
- config.sub: import CVS version 1.212
As a side effect, it now recognizes MacOS X
2001-06-19 08:29:07 +00:00
gbeauche
19cda89b5e - NEGX may use X & Z flags 2001-06-05 12:23:27 +00:00
gbeauche
fe6ad83317 - use "volatile" to prevent from optimization for writes to page 2001-06-05 12:16:34 +00:00
cebix
ea1f0a0761 fixed location of FPU source for PPC 2001-05-31 21:46:25 +00:00