Commit graph

67 commits

Author SHA1 Message Date
R. Belmont
f6b2c736c4 Add libjpeg; converted Sliver to decompress pictures on the fly [David Haywood, R. Belmont] 2012-01-16 17:06:42 +00:00
Miodrag Milanovic
cda1b4765c Commented (per Kale's request) not removed libcothread usage in core (requires clean build), (no whatsnew)
We can safely remove comments and cothread.* from /emu and /lib/cothread if it's confirmed way to go
2011-11-30 16:00:43 +00:00
Miodrag Milanovic
c9891545fd Changed makefile in order to make sequential compilation of MAME and MESS and their sub targets less resource demanding [Miodrag Milanovic] 2011-11-22 09:10:58 +00:00
Miodrag Milanovic
be8bd3552f Move per emulator constants info into separate class [Miodrag Milanovic]
out of log:
This way it is possible to link two or more separated executables with different 
copyright/xml out/name/... in one compilation, just one step closer...
2011-11-17 10:02:55 +00:00
Angelo Salese
ef6b961f2c Obviously makefile isn't supposed to change ... 2011-11-09 21:40:29 +00:00
Angelo Salese
28b51c152b Implemented FRC hook-up to Sega System 24 HW, fixes missing SFXs to Bonanza Bros. [Angelo Salese, Phil Bennett, Charles MacDonald] 2011-11-09 21:39:59 +00:00
R. Belmont
fd0be74ab4 SDL: Add TAP/TUN networking capability and shell script for configuration [Carl] 2011-10-31 01:30:24 +00:00
Miodrag Milanovic
3bdfb55b35 - Updated romload so devices are loaded from separate files [Miodrag Milanovic]
- Removed LOADBYNAME, since it is deprecated by using per device rom load_software_part_region

- Created makedev tool to generate array of devices, and created lst file according to current devices usage.

- Changed listxml command to output device roms too
2011-08-02 15:09:21 +00:00
Aaron Giles
f8adbd63fa Added byuu's cothread library, along with a wrapper class. Switched to
using one cothread for each executable device. This functionality is
strictly internal and should result in no changes in scheduling
behavior. However, it now becomes possible to exit out of a device's 
execution in the midst of an instruction by calling 
machine().scheduler().make_active(). Note that this is somewhat dangerous
for cores that have logic at the start of their execute loop to check for
interrupts or other conditions, as those checks will be skipped upon
resume, so consider this sort of early exiting to be highly experimental 
for now. [Aaron Giles, Miodrag Milanovic, byuu]
2011-06-25 07:03:07 +00:00
Scott Stone
dfa747f471 Removed duplicated includes from INCPATH. [Oliver Stoneberg] 2011-06-15 21:21:51 +00:00
Miodrag Milanovic
62d841c270 Moved format handling and all formats to separate library [Miodrag Milanovic] 2011-05-06 19:42:26 +00:00
Aaron Giles
00d745ca77 (Big tangle of changes that all happened as I was looking into the ROM
loader rewrite, which is still in progress....)

Replaced mamedriv.c with a new driver list mechanism that is generated
by the build tools. The emulator core now expects the presence of a
file called src/$(TARGET)/$(SUBTARGET).lst which is just a raw list of
driver names, one per line. C and C++ comments are still permitted.
This file is parsed by a new build tool makelist which extracts the
driver names, sorts them, and generates a file called drivlist.c, which
is consumed by the core. [Aaron Giles]

Added new osdcore function osd_malloc_array() which is identical to
osd_malloc() but obviously hints that the underlying allocation is for
an array. Updated all callers to use the appropriate form. Modified the
Windows allocator to only use guard pages for array-style allocations,
allowing us to enable them once again in debug builds. [Aaron Giles]

Created new static class driver_list to wrap accesses to the list of
available drivers. Improved speed of driver lookups by relying on the
presorting done by makelist. [Aaron Giles]

Created helper class driver_enumerator as a helper for iterating through 
the list of drivers. This class supports basic filtering and iteration,
and also serves as a temporary cache of machine_configs. [Aaron Giles]

Created cli_frontend object to wrap all the CLI handling code in
clifront.c. Updated/simplified all the code to take advantage of the
driver_enumerator. [Aaron Giles]

Created media_auditor object to wrap all the auditing functions in
audit.c. Updated all users to the new interface. Note that the new
auditing mechanism is slightly out of sync with the romload code in
terms of finding ROMs owned by devices, so it may mis-report some
issues until the new ROM loading code is in. [Aaron Giles]

Added concept of a per-device searchpath. For most devices, their 
searchpath is just the short name of the device. For driver_devices, the
searchpath is driver[;parent[;bios]]. This searchpath will eventually be
used by the rom loader to find ROMs. For now it is used by the media
auditor only. [Aaron Giles]

Created info_xml_creator object to wrap all the info generation functions
in info.c. Converted the file to C++ and cleaned up the input processing
code. [Aaron Giles]

(not for whatsnew ... Known issues: auditing of CHDs appears busted, and 
debug builds report unfreed memory if you use the built-in game picker)
2011-04-13 20:31:00 +00:00
Curt Coder
70efaaf040 Delete symbols file if defined when invoking clean target. [Curt Coder] 2011-02-12 22:17:46 +00:00
R. Belmont
28e34ea140 NetBSD support [Thomas Klausner]
Not for whatsnew: I added -Wno-conversion unconditionally to disable the 
warnings Thomas reported.  That setting is the default for GCC out-of-the-box 
but apparently not on NetBSD.  As far as I know it shouldn't cause a problem 
with any GCC version back to at least 4.0.0 so we're safe even on PPC OSX, 
but do let me know if hilarity ensues.
2011-02-02 03:29:54 +00:00
Andrew Gardner
ffc1d29080 Silly. 2010-12-30 06:50:24 +00:00
Andrew Gardner
ea5f8009fa plygonet.c : Fixed save state & device handler regressions. [Andrew Gardner] 2010-12-30 04:47:25 +00:00
Miodrag Milanovic
689a7d16d2 Made depend creation target independent (no whatsnew) 2010-09-28 07:33:09 +00:00
Aaron Giles
db797ba791 New build tool makedep.c, derived from src2html.c (really!).
Does basic dependency analysis and supports excluding paths.

Makefile now supports a depend target which will run makedep
on the src/$(TARGET) tree and create dependencies. It deliberately
excludes the root of src/emu as well as the osd directories in
order to keep the dependency file down to a reasonable size, so
if a core header file changes, you still need to clean and build
all.
2010-09-14 01:15:26 +00:00
Aaron Giles
c70c5fee5a Created CPU-specific device types for all CPUs, using new macros
DECLARE_LEGACY_CPU_DEVICE and DEFINE_LEGACY_CPU_DEVICE. Changed CPUs
to be their own device types, rather than all of type CPU with a
special internal subtype. Note that as part of this process I removed
the CPU_ prefix from the ALL-CAPS device name, so CPU_Z80 is just
plain old Z80 now. This required changing a couple of names like
8080 to I8080 so that there was an alphabetic first character.

Added memory interfaces to the list of fast-access interfaces. To do
this properly I had to add a separate method to devices which is
called immediately after construction, when it is possible to perform
dynamic_casts on fully-constructed objects. (This is just internal,
no changes necessary to the devices themselves.)

Some additional notes:
 * SH2 and SH4 had typedefs that conflicted with their CPU_-less names
    so I bulk renamed to structures to sh2_state and sh4_state; RB, feel
    free to choose alternate names if you don't like 'em
 * SCSP was caught doing something to the 3rd indexed CPU. Since several
    systems that use SCSP don't even have 3 CPUs, I had no idea what
    this was supposed to do, so I changed to it reference "audiocpu"
    assuming that stv was the assumed target. This is really gross and
    should be a configuration parameter, not a hard-coded assumption.
2010-07-03 00:12:44 +00:00
Aaron Giles
b67fd48c9f Winmain cleanup:
* created dynamic_bind<> template class to handle dynamically binding to
    optionally-supported functions
 * wrapped stack walking code in a class
 * wrapped symbol lookup code in a class
 * added support for parsing objdump-produced symbol dumps which include
    non-global functions for much better stack dumps and profiling in gcc builds

Also: modified makefile for win32 targets to automatically run objdump and
produce a .sym file if SYMBOLS is enabled.
2010-07-02 03:49:56 +00:00
Aaron Giles
7eb08a94fb Clean up profiling flags in the makefile. Removed GPROF flag, it is now just
PROFILE. When enabled, automatically turn on basic symbols. Also added new
SYMLEVEL option to control the symbols level (defaults to 2). [Aaron Giles]
2010-06-11 23:07:16 +00:00
Michaël Banaan Ananas
0035e1cd17 documentation: -march option core2 is in gcc since 4.3 2010-05-13 18:12:53 +00:00
Phil Bennett
37da163717 Added makefile PPC64 autodetection [Julian Sikorski] 2010-04-14 13:51:37 +00:00
Aaron Giles
717a11337e Added gprof support to the makefile. [Bryan Ischo]
Added a check for the OPTION_READCONFIG option before executing 
the code which would attempt to incorporate configuration file
settings into the current configuration, because if OPTION_READCONFIG 
is set to false, then there is no reason to even try to do this as 
every single configuration file will be ignored (because config files 
have been turned off by OPTION_READCONFIG). [Bryan Ischo]

Fixed small memory leak in mame.c. [Bryan Ischo]

Fixed double-free error in render.c. [Bryan Ischo]

Made core_strdup use osd_malloc instead of malloc. [Bryan Ischo]
2010-04-08 06:10:18 +00:00
R. Belmont
1afbd40efb [#3792, #3793] SDL compile fixes [Christian MArillat]
- Autodetect FreeBSD variant
- Altivec/VMX fixes for non-Mac PPC
2010-03-24 04:06:07 +00:00
R. Belmont
beeffeb5e7 Add MAME-ified version of SoftFloat library [John R. Hauser]
As previously discussed, this will be used for the MC680x0 FPU in 
order to handle high-precision floats portably.  The license is 
included in README.txt and is MAME compatible.
2010-03-02 04:26:48 +00:00
Couriersud
6d89d0cedf Fixed MT3698 (NOWERROR=1 casues -fno-strict-aliasing to be dropped).
[couriersud]
2010-03-01 21:59:28 +00:00
R. Belmont
f31c069a53 Fix for non-standard OS X builds [Scott Michel] 2010-02-14 17:44:34 +00:00
Couriersud
c55eb7889c Fix os2 auto-detect [Credit: KO Myung-Hun] 2010-02-03 20:00:10 +00:00
Couriersud
6815e7cf8f It's late, last fix for today to avoid introducing new ones. 2010-01-20 01:32:08 +00:00
Couriersud
eb9ed61a68 OpenBSD support in makefile/sdl.mak
Fix XBSD detection of PTR64 (uses amd64)
Cosmetic change to sdlprefix.h
2010-01-20 01:18:35 +00:00
Couriersud
0328f34acb Autodetection of PTR64 can be inhibited now by specifying PTR64=0.
On mixed 32bit/64bit targets identifying themselves as 64bit this can be used to build a 32bit executable.
2010-01-19 22:09:45 +00:00
Couriersud
d991c43b73 Add OS/2 autodetect to makefile 2010-01-19 21:53:06 +00:00
Couriersud
b423367224 Allow that zlib and expat can be linked dynamically without changing the makefile by specifying "=0":
make BUILD_ZLIB=0 BUILD_EXPAT=0

This was possible before as well but this is more what users (and myself) would expect.
2010-01-17 20:36:46 +00:00
Couriersud
ecec9ae9b1 Added checkautodetect target to makefile delivering e.g. on linux 64 bit:
TARGETOS=unix
PTR64=1
BIGENDIAN=
UNAME=Linux core 2.6.28-17-generic #58-Ubuntu SMP Tue Dec 1 21:27:25 UTC 2009 x86_64 GNU/Linux
2010-01-17 20:26:49 +00:00
Couriersud
feb8630108 Autotest for BIGENDIAN. A bit hacked, though. 2010-01-16 13:02:03 +00:00
Aaron Giles
f373246c42 Fix PTR64 autodetect for Windows 2010-01-16 04:40:55 +00:00
Couriersud
25b0e97ca1 - Fix TARGETOS detection on OS X.
- Do not try to check TARGETOS when cross-compiling
- For non-windows targets, try to auto-detect PTR64
2010-01-15 22:05:00 +00:00
R. Belmont
9ba62e6bce SDLMAME: improved OS X and SDL 1.3 SVN support, try to autodetect SDLMAME targets [Couriersud] 2010-01-15 21:05:29 +00:00
Aaron Giles
4169b811db Makefile changes:
1. If OSD is not defined, we look for the built-in Windows
environment variable 'OS' and if it is set to 'Windows_NT',
we assume OSD=windows; otherwise we assume OSD=sdl.

2. If TARGETOS is not defined, we look for the same variable
and set TARGETOS=win32 if it is set to 'Windows_NT'.

3. Windows SDL builds have an 'sdl' prefix on the executable
so they can live side-by-side.

The upshot of this is that on Windows systems:

make -> standard Windows build producing mame.exe
make OSD=sdl -> SDL Windows builds producing sdlmame.exe

On non-Windows systems:

make -> SDL build by default (don't need to say OSD=sdl)
2010-01-13 16:27:27 +00:00
R. Belmont
f8b28bd2f1 Merge makefile with outstanding SDLMAME changes (no whatsnew)
This turns off -Werror on a few OSes and fixes multithreaded version.c building.
2010-01-13 03:49:37 +00:00
Aaron Giles
5885e973db Makefile changes:
- Changed INLINE to map to "static inline"
 - (Windows only) Made -static-libgcc standard for both 32-bit and 64-bit
 - (Windows only) Some fixes for MSVC builds
2010-01-05 22:01:10 +00:00
Aaron Giles
b4099c91bc Changes to sync with new toolchain:
1. Removed CPP_COMPILE option. All files (except expat and zlib)
are now compiled as C++ by default. For now, imagine nothing has
changed. The goal is not to go hog-wild with C++isms, but to
leverage it where it makes the most sense.

2. Mapped INLINE to plain old C++ inline now, fixing several
cases where this was problematic.

3. Marked global const structures explicitly extern since consts
are locally-scoped by default in C++.

4. Added new 'default' make target which just builds the emulator.
Use 'make all' to build everything including the tools.

5. 64-bit builds now get a '64' suffix on them. We might want to
just make this true for Windows builds, but it's on for everyone
at the moment.

6. (Windows) Removed UNICODE option. UNICODE is enabled by default
on all Windows builds now. The 32-bit version links against
libunicows.a for continued Win9x compatibility.

7. (Windows) Removed hacks surrounding unicode handling of main().
They are no longer necessary with the new tools.
2010-01-03 21:31:44 +00:00
Aaron Giles
3df8953bca Removed the various HAS_xxxx for sound cores. To select sound cores,
just choose them in the make system. Further granularity is not
necessary. This also means that the samples core is always required.
2010-01-02 20:21:00 +00:00
Phil Bennett
2fd263c18b Removed the global "includes" include and instead specify the "includes" path in all #include occurences. [Oliver Stoneberg]
---------- Forwarded message ----------
From: Oliver Stöneberg <oliverst@online.de>
Date: Sat, Dec 12, 2009 at 3:27 PM
Subject: includes cleanup
To: submit@mamedev.org


This patch removes the global "includes" include and explcitly
specifies the "includes" path in all #include occurances.
2009-12-21 23:09:02 +00:00
Aaron Giles
38978f878a Move MSVC clean out of core makefile and into windows.mak where it belongs. 2009-09-21 09:03:25 +00:00
Curt Coder
33bf61f326 Added deletion of MSVC specific files to clean task. 2009-09-16 07:20:32 +00:00
Aaron Giles
f474114e1d Added infrastructure to compile universal standalone disassembler:
- added unidasm to the tools build
 - split the disassemblers out of libcpu and into new libdasm
 - ensured the disassembly entry points for all disassemblers are
    in the source file for the disassembler (sometimes new generic
    versions were created)

Still needs command line options and file loading, but the 
fundamentals are present, and it links.
2009-08-22 06:25:07 +00:00
Ryan Holtz
98ca3ea7c1 Now turn symbols and mapfile generation off... man, I'm dumb. (no whatsnew) 2009-07-29 22:52:54 +00:00
Ryan Holtz
efe16bb749 Turning debug flag back off in the makefile (no whatsnew) 2009-07-29 22:46:08 +00:00