Go to file
Angelo Salese b88fe8a45e
Miscellaneous late 90s Jaleco HW fixes and cleanups (#7445)
* ms32.cpp: fix/document memory map

* ms32.cpp: preliminary CRTC hookup

* ms32.cpp: implement sprite direction bit, nuke per-game kludges

* Move note where it belongs (nw)

* ms32.cpp, bnstars.cpp: correct sprite RAM ranges

* tetrisp2.cpp: kill some legacy screen params, need those anyway

* Improve notes (nw)

* ms32.cpp: move CRTC to a new sysctrl device

Also added a bare-bones Python script for generating new device file
defs to src/mame/etc

* gen_python_def.py: address issues, misc improvements

* Kill device_memory_interface in favour of direct address_map, QA always broken flip_screen in flags

* ms32.cpp: reinstated flip screen thru callback

* ms32.cpp: Make mixing to honor cliprects instead of erratic screen.width / height call

* Need a safeguard somehow, and a symbols build doesn't help here lalala

* Fix notes, cannot repro the bug, next

* Move irq assert/clear lines to device, add preliminary prg timer, make 30 Hz irq to behave like one.
(Note: very untested, feedback is appreciated)

* Send a prg timer ack if irq is disabled

* Misc cleanups

* Nuke emu_timers in favour of configure_scanline, preliminary bnstars1 hookup

* No magic number please

* Add sysctrl to tetrisp2.cpp, move rockms stuff into its own state machine, misc

* Kill off 30 Hz refresh rate hack in stepstag/vjdash sub screens

* Flag all those xtals as unknown

* Move has_zoom/has_yuv in ms32_sprite init constructor, fix dummy config bug with stepstag right screen update

* jalcrpt.h doesn't belong to tetrisp2.cpp, errata on sysctrl reset line

* Fix build

* Left-over

* Fix bool comparison to itself (blame JS habits), nuke bnstars1 mahjong
switch case altogether.

* Notes

* Fix bnstars1 crash

* update_color fn doesn't work without a memory_share_creator, documentation

* Translate clamp_to_12bits_neg to a constexpr method

* Fix crashing in main ms32 driver, except it now has very broken priority for seemingly no reason

* Fix nasty spriteram buffer RAM allocation bug

* Make objectram_size to be calculated at init time

* First (naive) pass in moving common interface to a ms32_base_state

Move m_irqreg save state from video_start to machine_start fn;
Fix embarassing palette overflow bug in ms32.cpp;
Add bitswap for bnstars1 mahjong panel;
.bytes() -> .length() for objectram_size;

* bnstars: template video handlers

* bnstars: fix config, split sprite chips/gfxdecode/palette into two, fix palette ranges

* ms32.cpp: implement proper irq acknowledge lines

* Add config setter in sysctrl for inverted vblank/field lines, make tp2ms32 and wpksocv2 happy

* Move f1superb to own state

* MS32 merge sound maps

* Remove TIMER_DEVICE_CALLBACK_MEMBER in favour of emu_timer
2020-11-25 21:14:04 +11:00
.github/workflows ci-windows.yml: Bump microsoft/setup-msbuild to 1.0.2 2020-11-06 10:02:52 +01:00
3rdparty Minimal changes to sol2 and bgfx to compile as C++17. 2020-11-15 03:57:08 +11:00
android-project Bump version to 0.226 2020-10-27 12:00:36 +11:00
artwork
benchmarks
bgfx -bgfx: Corrected hlsl.json to apply the intended screen tint. [Ryan Holtz] 2020-06-20 15:42:50 +02:00
ctrlr
docs Work around GNU libstdc++ wanting to stack large temporaries when vector elements can be trivially constructed. 2020-11-23 10:29:23 +11:00
doxygen
hash Plug and Play bits (working and not working machines) (#7509) 2020-11-25 14:44:37 +11:00
hlsl
ini
keymaps (nw) More license shuffling 2020-03-07 22:02:56 +11:00
language Fixed Portuguese_Brazil translation errors noted in issue 7510 2020-11-22 16:44:13 -05:00
plugins Fairly significant overhaul of Lua engine and some cleanup. 2020-11-25 19:18:26 +11:00
projects
regtests jedutil updates: [keshbach] 2020-05-19 20:42:50 -04:00
roms
samples
scripts Miscellaneous late 90s Jaleco HW fixes and cleanups (#7445) 2020-11-25 21:14:04 +11:00
src Miscellaneous late 90s Jaleco HW fixes and cleanups (#7445) 2020-11-25 21:14:04 +11:00
tests
web
.editorconfig docs: Add naming conventions for certain things. 2020-08-24 13:01:37 +10:00
.gitattributes
.gitignore Create GitHub Actions for CI (#7335) 2020-10-21 22:42:17 +11:00
.travis.yml Create GitHub Actions for CI (#7335) 2020-10-21 22:42:17 +11:00
COPYING -Switch to building MAME as C++17. 2020-11-15 03:53:47 +11:00
dist.mak Maintenance: 2020-03-04 22:41:15 +11:00
makefile mulcd: Switch to a svg [O. Galibert] 2020-11-04 12:52:02 +01:00
README.md Create GitHub Actions for CI (#7335) 2020-10-21 22:42:17 +11:00
uismall.bdf

MAME

Join the chat at https://gitter.im/mamedev/mame

Build status:

OS/Compiler Status
Linux/GCC and Clang CI (Linux) Build Status
Windows/GCC and MSVC CI (Windows)
macOS/Clang CI (macOS)

Static analysis status for entire build (except for third-party parts of project):

Coverity Scan Status

What is MAME?

MAME is a multi-purpose emulation framework.

MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.

How to compile?

If you're on a *NIX or OSX system, it could be as easy as typing

make

for a MAME build,

make SUBTARGET=arcade

for an arcade-only build, or

make SUBTARGET=mess

for MESS build.

See the Compiling MAME page on our documentation site for more information, including prerequisites for Mac OS X and popular Linux distributions.

For recent versions of OSX you need to install Xcode including command-line tools and SDL 2.0.

For Windows users, we provide a ready-made build environment based on MinGW-w64.

Visual Studio builds are also possible, but you still need build environment based on MinGW-w64. In order to generate solution and project files just run:

make vs2017

or use this command to build it directly using msbuild

make vs2017 MSBUILD=1

Where can I find out more?

Contributing

Coding standard

MAME source code should be viewed and edited with your editor set to use four spaces per tab. Tabs are used for initial indentation of lines, with one tab used per indentation level. Spaces are used for other alignment within a line.

Some parts of the code follow Allman style; some parts of the code follow K&R style -- mostly depending on who wrote the original version. Above all else, be consistent with what you modify, and keep whitespace changes to a minimum when modifying existing source. For new code, the majority tends to prefer Allman style, so if you don't care much, use that.

All contributors need to either add a standard header for license info (on new files) or inform us of their wishes regarding which of the following licenses they would like their code to be made available under: the BSD-3-Clause license, the LGPL-2.1, or the GPL-2.0.

License

The MAME project as a whole is made available under the terms of the GNU General Public License, version 2 or later (GPL-2.0+), since it contains code made available under multiple GPL-compatible licenses. A great majority of the source files (over 90% including core files) are made available under the terms of the 3-clause BSD License, and we would encourage new contributors to make their contributions available under the terms of this license.

Please note that MAME is a registered trademark of Gregory Ember, and permission is required to use the "MAME" name, logo, or wordmark.

Copyright (C) 1997-2020  MAMEDev and contributors

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2, as provided in
docs/legal/GPL-2.0.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
more details.

Please see COPYING for more details.