summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/snes_ppu.cpp
Commit message (Collapse)AuthorAgeFilesLines
* ds8874: move to video folder (led driver chip), hap2024-04-111-1/+1
| | | | misc: remove folder from self #include
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-3/+1
| | | | | | | | | | | | Read callbacks now need a default return value supplied at construction. Replaced isnull() with isunset() which tells you if the callback wasn't configured rather than whether it isn't safe to call. Enabled validation of device callbacks (it seems it was disabled at some point, probably accidentally). Device callbacks and object finders now implement the same interface for resolution.
* -Lua engine: run everything in coroutines. (#11019) Vas Crabb2023-03-251-6/+1
| | | | | | | | | * This lets you use emu.wait(...) directly without mucking around creating coroutines. * Allow emu.wait to accept an attotime argument. * Added a couple more wait helper functions. -emu/profiler.h: Actually use scope-based profiling helpers. * This makes the comment at the top of emu/profile.h less dishonest, and makes it easier to write exception-safe code. * Got rid of some do { ... } while (0) loops that only existed so break could be used like a goto.
* coretmpl.h: Add utility function for sign-extending values of arbitrary width AJR2022-11-011-4/+4
| | | | | * cpu/ccpu: Simplify code for right-shifting 12-bit values arithmetically * konami/3dom2_te.cpp: Fix probable copy-and-paste error
* Remove a few outdated references to MESS Dirk Best2021-12-021-1/+1
|
* Eliminate ARRAY_LENGTH template in favor of C++17's std::size AJR2021-02-141-11/+7
| | | | | | | | | | * osdcomm.h: Move definition of EQUIVALENT_ARRAY to coretmpl.h * sharc.cpp, gt64xxx.cpp, ym2413.cpp, gb_lcd.cpp, snes_ppu.cpp: Use STRUCT_MEMBER for save state registration * gio/newport.cpp, megadrive/svp.cpp, nes_ctrl/bcbattle.cpp, arm7.cpp, tms9995.cpp, pckeybrd.cpp, sa1110.cpp, sa1111.cpp, jangou_blitter.cpp, vic4567.cpp: Use std::fill(_n) instead of memset * emucore.h: Remove obsolete typedef
* snes_ppu: Coverity 316154 Robbbert2021-02-141-12/+3
|
* snes_ppu.cpp: Use device_palette_interface for Palette handling (#7375) cam9002020-10-261-44/+50
| | | | Use device_palette_interface for palette, fixed CGRAM size and direct color behavior
* Cleaned up bitmap API. Vas Crabb2020-09-271-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made const-qualified pixel accessors (pix, pixt, raw_pixptr) return const-qualified references/pointers to pixesl, and added non-const versions. This makes bitmap more like standard library containers where const protects the content as well as the dimensions. Made the templated pixt accessor protected - having it public makes it too easy to inadvertently get a pointer to the wrong location. Removed the pix(8|16|32|64) accessors from the specific bitmaps. You could only use the "correct" one anyway, and having the "incorrect" ones available prevented explicit instantiations of the class template because the static assertions would fail. You can still see the pixel type in the bitmap class names, and you can't assign the result of &pix(y, x) to the wrong kind of pointer without a cast. Added fill member functions to the specific bitmap template, and added a explicit instantiations. This allows the bitmap size check to be skipped on most bitmap fills, although the clipping check is still there. Also fixed a couple of places that were trying to fill an indexed 16-bit bitmap with rgb_t::black() exposed by this (replaced with zero to get the same net effect). The explicit template instantiations in the .cpp file mean the compiler can inline the function if necessary, but don't need to generate a local out-of-line body if it chooses not to. Extended the size of the fill value parameter in the base bitmap class to 64 bits so it works correctly for 64-bit bitmaps. Fixed places where IE15 and VGM visualiser weren't accounting for row bytes potentially being larger than width. Fixed an off-by-one in an HP-DIO card where it was treating the Topcat cursor right edge as exclusive. Updated everything to work with the API changes, reduced the scope of many variables, added more const, and replaced a few fill/copy loops with stuff from <algorithm>.
* drivers starting with p, q, r and s: some macro removal (nw) Ivan Vangelista2020-06-031-2/+2
|
* last batch of changes to make the ↵ Ivan Vangelista2020-05-211-2/+2
| | | | https://github.com/mamedev/mame/tree/devcb-no-space branch build. (nw)
* src/devices: simplified some handlers (nw) Ivan Vangelista2020-03-111-19/+19
|
* snes_ppu.cpp: reduce the number of save registrations by over a thousand (nw) Vas Crabb2019-12-111-43/+34
|
* srcclean and indentation cleanup (nw) Vas Crabb2019-11-241-8/+8
|
* -snes_ppu: Converted OAM code from bsnes ppu-fast, nw MooglyGuy2019-11-141-554/+282
|
* Fix clang error: use of undeclared identifier 's_tile_to_draw' (nw) AJR2019-11-061-1/+0
|
* Removed now-unused static debug var from snes_ppu, nw MooglyGuy2019-11-061-2/+0
|
* remove some stray debug logging from snes_ppu and correct the license on the ↵ MooglyGuy2019-11-061-25/+2
| | | | SuperFX core and snes_ppu based on recent contributions from byuu,nw
* -snes_ppu: Fixed Super Mario World sprite blending regression, nw Ryan Holtz2019-11-061-2/+29
|
* Fix clang error: unused variable 'table_obj_offset' ↵ AJR2019-11-051-12/+0
| | | | [-Werror,-Wunused-const-variable] (nw)
* -snes_ppu: Ported over more of bsnes's ppu-fast implementation. Fixes many ↵ MooglyGuy2019-11-051-637/+366
| | | | bugs, possibly causes more. [byuu, Ryan Holtz]
* -snes_ppu: Fixed doubled-up frames on interlaced games, nw MooglyGuy2019-11-031-1/+2
|
* -snes_ppu: Fixed rapid vertical scrolling in rexronan and other games. [Ryan ↵ MooglyGuy2019-11-031-2/+2
| | | | Holtz]
* srcclean (nw) Vas Crabb2019-10-261-11/+11
|
* -screen: Added support for screens that vary horizontal width mid-frame, and ↵ MooglyGuy2019-10-241-5/+5
| | | | hooked it up to the SNES driver. Fixes dkongcu intro and others. [Ryan Holtz]
* fix Clang compile (nw) arbee2019-10-191-1/+1
|
* -snes_ppu: Fixed some breakage from the port of bsnes ppu-fast, nw MooglyGuy2019-10-201-25/+17
|
* -snes_ppu: Fixed background layer drawing based on higan ppu-fast. [byuu, ↵ MooglyGuy2019-10-171-203/+356
| | | | Ryan Holtz]
* Multiple mispells over a comment (nw) Angelo Salese2019-10-161-1/+1
|
* -snes: Put debug prints behind a #define, nw MooglyGuy2019-10-161-0/+12
|
* -snes: The SNES only has 64kbytes of VRAM, not 128kbytes. Fixes graphics in ↵ Ryan Holtz2019-10-161-57/+54
| | | | Yoshi's Island, probably others. [Ryan Holtz, byuu]
* [snes] Run HTOTAL double only if needed AmatCoder2019-09-251-4/+4
| | | | | | Also run HDMA when vpos=0 Fix Vortex & Judge Dreed graphics
* Replace ATTOSECONDS_TO_HZ with as_hz where appropriate (nw) AJR2018-11-051-1/+1
|
* Allow passing std::unique_ptr<TYPE> directly to save_pointer and remove ↵ AJR2018-06-241-3/+3
| | | | now-superfluous .get() in many drivers/devices (nw)
* Privatize m_screen and other variables of device_video_interface (nw) AJR2018-01-051-15/+15
|
* Fix obvious bugs found by GCC 7.1 (nw) Miodrag Milanovic2017-05-151-1/+1
|
* Move static data out of devices into the device types. This is a ↵ Vas Crabb2017-05-141-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | significant change, so please pay attention. The core changes are: * Short name, full name and source file are no longer members of device_t, they are part of the device type * MACHINE_COFIG_START no longer needs a driver class * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary * Specify the state class you want in the GAME/COMP/CONS line * The compiler will work out the base class where the driver init member is declared * There is one static device type object per driver rather than one per machine configuration Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. Things I've actually messed with substantially: * More descriptive names for a lot of devices * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes * Changed DECO BSMT2000 ready callback into a device delegate * Untangled Microprose 3D noise from driver state * Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices * Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly * Started to break out common parts of Samsung ARM SoC devices * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++ * Tried to make Z180 table allocation/setup a bit safer * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size * Imporved encapsulation of Z80DART channels * Refactored the SPC7110 bit table generator loop to make it more readable * Added wrappers for SNES PPU operations so members can be made protected * Factored out some boilerplate for YM chips with PSG * toaplan2 gfx * stic/intv resolution * Video System video * Out Run/Y-board sprite alignment * GIC video hookup * Amstrad CPC ROM box members * IQ151 ROM cart region * MSX cart IRQ callback resolution time * SMS passthrough control devices starting subslots I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo). And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros. It feels like an uphill battle trying to get this stuff under control while more of it's added.
* Self-registering devices prep: Vas Crabb2017-02-271-1/+1
| | | | | | | | | | | | | | * Make device_creator a variable template and get rid of the ampersands * Remove screen.h and speaker.h from emu.h and add where necessary * Centralise instantiations of screen and speaker finder templates * Add/standardise #include guards in many hearers * Remove many redundant #includes * Order #includesr to help catch headers that can't be #included alone (nw) This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use.
* Improvements to rgb_t (nw) AJR2016-10-221-1/+1
| | | | | | | - Make most class methods constexpr - Make color constants (white, black, etc.) into constexpr factory methods, in order to fix a static initialization problem discussed on the MAMEWorld forums. (Note that while C++14 allows constexpr member variables to be initialized outside classes, current compilers' support for C++14 constexpr rules has proven to be lamentably deficient.) - Create bitmap_rgb32::erase to simplify syntax in update handlers
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-127/+127
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* Devfind revision phase 2 (nw) AJR2016-08-051-6/+11
| | | | | | | | | - Eliminate read_safe as a global function and make it a method of optional_ioport (and required_ioport, for which it makes less sense). - New constructor for optional_ioport_array and required_ioport_array using std::initializer_list to specify tag list - Remove pointer/reference conversion operators for required_ioport and optional_ioport. Explicit getters like found() and target() are now required when dereferencing isn't wanted. Many drivers have been changed to use required_ioport_array and optional_ioport_array to make this cleaner. - Update numerous drivers that were using read_safe to use I/O port finders generally. Port names have been kept the same as far as possible to avoid breaking saves.(Some of the optional finders should probably be required.) - Give edfbl and monkelf their own memory maps so hacky input reading routines can be removed. - Clean up some legacy static handlers in amiga.cpp and cubo.cpp.
* Cleanups and version bumpmame0174 Miodrag Milanovic2016-05-251-1/+1
|
* Moved around PAL variable, nw angelosa2016-05-111-3/+6
|
* reverting: Miodrag Milanovic2016-01-201-1/+1
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* tags are now strings (nw) Miodrag Milanovic2016-01-161-1/+1
| | | | fix start project for custom builds in Visual Studio (nw)
* cleanup (nw) Miodrag Milanovic2015-12-261-6/+6
|
* removed auto_bitmap_ind*_alloc and auto_bitmap_rgb32_alloc and replaced with ↵ Miodrag Milanovic2015-12-171-12/+12
| | | | | | | std::unique_ptr (nw) auto_alloc_array to unique_ptr Added make_unique_clear
* clang-modernize part 6 Miodrag Milanovic2015-12-041-24/+24
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+2949