| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
| |
- added CHA/CHB (tied to timers g/h) for DAC sound output on GPL951xx, which is used by bftetris
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
softlist entries) (#15334)
- continued work on GPL951xx and GPL162xx further documenting registers / differences
- created stub device for GPL951xx RTC allowing some sets to boot a bit further
- added LCDC to GPL951xx based games (all of them have one) and allow bftetris to render graphics as it programs it directly
- added 'timebase' timers to GPL951xx and GPL162xx emulation, which was also required by bftetris and others. Discovered that bornkidh and beijuehh have a protection function in the timebase interrupt that needs studying (disabled it in those cases for now)
- added 'scheduler' interrupt to GPL162xx instead of unknown timer hack, used by smartfp
- moved some code out into devices
- split GPL951xx and GPL162xx implementations as despite similarities there are many differences and sharing a base doesn't make much sense
- removed some hacks (dressmtv doesn't boot to title anymore, but that will be addressed later)
- moved a few files around (GPL951xx has no TV out, so moved those out of tvgames)
New working systems
-------------------
TV Joy Pro 15-in-1 (2500) [Team Europe, David Haywood]
TV Joy Pro 30-in-1 (2501) [Team Europe, David Haywood]
New clones marked not working
-----------------------------
Punirunes (HXR-1 PCB) [Team Europe]
New systems marked not working
------------------------------
Popstar Karaoke [Team Europe, David Haywood]
Wild King (Japan) [Team Europe, David Haywood]
Jewel Pad (Japan) [Team Europe, David Haywood]
Kimi mo Pokemon Hakase! Rotom Pad (Japan) [Team Europe]
Popstarz Karaoke (GK8000) [Team Europe]
Mini Arcade Machine 240-in-1 (translucent case) [Team Europe, David Haywood]
New software list items marked not working
------------------------------------------
popstar_cart.xml:
Popstar Karaoke - 5 Songs [Team Europe, David Haywood]
Popstar Karaoke Vol. 1 [Team Europe, David Haywood]
Popstar Karaoke Vol. 2 [Team Europe, David Haywood]
|
| |
|
|
|
|
| |
* pixtermu: Split up the APB peripherals
* pixtermu: Implement the LH79524 timer
* pixtermu: Implement dummy SSP
* pixtermu: Make it boot and LCD/TS work
|
| |
|
|
| |
improved the overall emulation. [R. Belmont]
|
| | |
|
| |
|
| |
cpu/i386, machine/i8087.cpp: Migrated to SoftFloat 3.
|
| | |
|
| |
|
|
| |
latter to mb87077)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Refactor 28-series EEPROM code
Refactor 28-series EEPROM code:
- Separate out a generic `eeprom28_device` template
- Create Xicor x28 instantiations with appropriate template parameters.
Add functionality to the `eeprom28_device` template to implement Atmel-style
- Identification Page
- Hardware Chip Erase
- Software Chip Erase
Add a templated `eeprom28_nvram_device` subclass that adds an `device_nvram_interface` implementation.
Add `at28.{h,cpp}` specializations implementing known Atmel AT28 devices.
Both X28 and AT28 devices are made available both with and without nvram support.
This also replaces the existing `at28c64b` implementation. This has two current users in the codebase, both of which are Apple II cards. I have very little experience with that, sadly. But with many thanks to @rb6502 I was able to test this in the `booti` device, which helped me identify and fix something I had missed in the ee28 implementation: while the EEPROM is buffering data, reads from the page being buffered will be sourced from the buffer, so will include whatever is currently being buffered. I've gathered more detailed results of testing and am happy to share those on request.
I'm using C++20 concepts to elide some member functions from the templates; and macros to simplify declaring device classes and types both with and without NVRAM.
All of this works, and adds what I think is quite complete support for a number of similar real-world devices in a way that I hope is reasonable documented and maintainable. I've tried to keep this in line with MAME's guidelines and coding standards and what I've observed as existing practices, but I'm sure there are things I've missed or got wrong. So any feedback or guidance would be greatly appreciated.
* ee28.* -> eeprom28.*
improve logging macros
|
| |
|
|
|
|
|
|
| |
(#15248)
* identified bl_handhelds_lcdc_device as st7735
* renamed implementation and moved to devices/video/st7735.cpp / .h
* fleshed out some logging to verify behavior so that it's easier to identify
* fixed an out of bounds access on the video update, which now respects cliprect
|
| |
|
|
|
|
|
|
| |
* moved GeneralPlus GPCE4 series SoC emulation from driver file into a device [David Haywood]
* begin to flesh out GPCE4 emulation a little more [David Haywood]
* move mapacman away from make-believe hookups to something a little more grounded in reality now that the chip has been identified [David Haywood]
* added internal ROM for digicolr set, replace with clean dump [Harold Seo]
* removed local implementation of LCDC previously used by mapacman and replaced it with the bl_handhelds_lcdc.cpp device, which looks like it's actually a ST7735SV (which is what these use) [David Haywood]
* mapacman display is now more stable [David Haywood]
|
| | |
|
| | |
|
| |
|
|
| |
* i7110_7220: Re-implemented Intel bubble memory subsystem
* hp98x6: HP98259 bubble memory module added
|
| |
|
|
|
|
| |
* Local fix for GENie resource include directory bug, sent upstream as bkaradzic/GENie#572
* Local fix to disable broken command line escaping
* Local fix to use MPARAM instead of hard-coded -m64
|
| |
|
| |
From asmjit/asmjit@0bd5787b54b575ed94bf32ac452153b34385c514
|
| | |
|
| |
|
|
|
|
|
|
| |
an LFO on the prophet5. (#15153)
* sound/cem3340.cpp: Initial implementation of CEM3340.
sequential/prophet5.cpp: Incorporated CEM3340 LFO. Corrected mod wheel range.
* src/sound.lua: added cem3340.
|
| |
|
|
| |
* remove MODERN_WIN_API flag
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cpu/drcbex86.cpp: Removed i686 recompiler back-end. Without a practical
way to make Windows i686 builds, it's just going to rot. Also, x86-64
is now older than Pac-Man was when MAME was initially created. It's
dead on the desktop
tools: Removed aueffectutil - it's no longer useful.
emu/video/rgbutil.cpp: Removed Altivec/VMX bilinear filtering
implementation. PowerPC on desktop is dead.
file/posixptty.cpp, sdl, sdl3, scripts: Removed support for SysV
operating systems. They’re dead on the desktop.
scripts: Removed outdated Lua compatibility macros. They weren't doing
anything sice we updated to Lua 5.4 (the compatibility options changed,
but we just left the old macros in place, which no longer had any
effect).
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* Bumped minimum clang version to 13 - clang 12 is just too buggy.
* Assume Qt 6 will be used, dropped Qt 5 support.
* Fixed finding Qt headers on Fedora and hopefully other distros.
* Always use static SDL2 on Windows.
* debugger/qt/debuggerview.cpp: Fixed build with Qt < 6.6.
* imgtool/modules/vzdos.cpp: Fixed build with Linux GCC 11.
|
| |
|
|
|
|
| |
Qt provides inline definitions of dllimport functions, which causes a
warning. There are too many of them to practically leave the warning
enabled for this module.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
docs: It's no longer possible to get a working Qt 5 setup with MSYS2,
and there's no 32-bit Qt 6 package. Updated docs to reflect this.
Use Qt 6 on Windows, use qmake to find moc.
Fixed linking on Windows with static SDL3.
input/input_dinput.cpp: Support SDL3.
|
| |
|
|
|
|
|
|
|
|
| |
* emu/device.cpp: Take std::string_view tag in constructor.
* emu/save.cpp: Cleaned up interface for reporting error messages.
* docs: Cleaned up stuff that's no longer relevant.
* machine/s3c44b0.cpp: Overhauled logging.
* osd/modules/lib/osdobj_common.cpp: Removed CoreAudio options that
no longer do anything.
* Cleaned up some more stuff to prepare for 64-bit offs_t.
|
| |
|
|
| |
emu/sound.h: removed unused function declarations
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
(#15182)
* Hackery to allow UTF-8 strings as well as plain strings:
- emu/ioport.h: Allow char8_t for names in field configuration helper.
- emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers.
- util/language.h: Allow char8_t message input.
* util/strformat.h: Allow char8_t format and string arguments with char output.
* ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type.
* osd/windows: Assume Windows 8 or later.
|
| |
|
|
|
|
| |
* C-Media CMI8738/C3DX
* Cirrus Logic Crystal CS4281 "SoundFusion"
* Yamaha YMF740C DS-1L
|
| | |
|
| |
|
|
|
|
|
|
|
| |
-vfx: [CBrunschen]
* Added a timer to complete the write cycle.
* X27C256 -> X28C256
* Added a generic implementation for Xicor X28 series EEPROMs, and use it in vfxcart.
* Added license and copyright holder comments.
* Improved some indentation, braces, and comments.
* Improved comments documenting the different devices.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* base implementation of a Winbond W83877TF Super I/O
* taito/taitowlf.cpp: hookup Super I/O
New systems marked not working
------------------------------
Gigabyte GA-6VX [The Retro Web]
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tmp94c241: Add serial port sub-device with I/O interface mode
Replace the inline serial stubs (which just instantly set TX-complete)
with a proper sub-device implementation supporting:
- I/O interface mode (mode 0): Synchronous clocked serial using SCLK
pin. Supports both internal (baud rate generator) and external
(IOC=1) clock sources. TX double buffering with auto-load from
buffer to shift register. Pre-outputs bit 0 on TXD before first
clock edge so receiver can sample it on the rising edge.
- Baud rate generator: Configurable via BRxCR register with divisor
and clock source selection. Timer drives SCLK at the configured
rate. Clock frequency derived from CPU clock.
- TX/RX data callbacks: txd(), rxd(), sclk_out(), sclk_in() for
connecting external devices to the serial ports.
- tx_start callback: Signals the start of each byte transmission with
the current PFFC pin function state, allowing connected devices to
distinguish real transmissions from phantom ones.
The serial registers (SC0BUF/SC1BUF, SC0CR/SC1CR, SC0MOD/SC1MOD,
BR0CR/BR1CR) are now delegated to the sub-devices in the internal
memory map. TX-complete flags (INTES0/INTES1 bit 7) are set at
device_reset to indicate empty TX buffers at power-on.
UART modes (7/8/9-bit) are recognized but not yet implemented.
Also moves interrupt register indices from a file-scope enum to
public static constexpr members of tmp94c241_device.
* tmp94c241: move irq vector map to static const class member
Per galibert's review suggestion: defining the IRQ vector table as a
static const member of tmp94c241_device and providing the out-of-class
definition in class scope allows the INTE* constants to be referenced
without tmp94c241_device:: qualifiers in the initializer.
The nested struct is named irq_vector_entry. NUM_MASKABLE_IRQS is
replaced by std::size(irq_vector_map) directly at each use site inside
member functions.
* tmp94c241: use enum for public interrupt index constants
* tmp94c241: use required_device for serial sub-device parent access
Replace dynamic_cast with required_device<tmp94c241_device> using
DEVICE_SELF_OWNER to access the parent CPU from the serial sub-device.
This provides automatic type checking during MAME's -valid pass.
Break the circular header dependency by replacing the #include of
tmp94c241_serial.h in tmp94c241.h with a forward declaration, and
having tmp94c241_serial.h include tmp94c241.h instead. The .cpp
files include what they need directly.
Addresses review feedback from galibert on PR #15015.
|
| |
|
|
| |
* Initial check-in of CL-GD5434 "Alpine" based PCI cards;
* Initial check-in of Intel 82091AA AIP Super I/O;
|
| | |
|
| |
|
|
|
|
|
|
| |
(#15093)
* video/x1_020_dx_101.cpp (former seta/seta2_v.cpp): Minor optimisation, reduced duplication, expanded notes.
* namco/funcube.cpp, namco/funcube_touchscreen.cpp: Moved Funcube hardware emulation out of seta/seta2.cpp.
* namco/namcoeva.cpp: Moved to the namco project from the seta project, removed dependency on seta/seta2.cpp.
* seta/seta2.cpp: Consolidated into a single file, reduced literal tags, and cleaned up code, updated notes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
devices. (#15010)
* sigma/sammymdl.cpp: Separated Sammy medal games from Sigma B-98 games in sigma/sigmab98.cpp.
* sigma/sigmab98.cpp: Cleaned up code.
* Use multibyte helpers for 16-bit parameters, use BIT helper to extract bits.
* Reduced duplication, improved names.
* Use abbreviated integer type names consistently.
* Updated notes.
-sigma/sigmab98.cpp: Marked dodghero as MACHINE_IMPERFECT_TIMING.
* Its title screen runs faster than should, which causes desyncing title call.
|
| |
|
|
| |
Synthesizer Interface
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Add cv1k SH7709S cache handling behavior for slowdown emulation
- Handles some basic caching for the sh7709s used for cv1k titles so that they run at more appropriate speeds
* sh7709s.cpp: Fix up a couple of timing handling bugs
- Use the writeback flag instead of write flag as the access to external memory is what matters for those
- Fix up the writeback buffer timing, we don't need to precharge twice for writes. Also rolled up the command costs the SDRAM region handling so the writes only need to add trwl to the penalty
- Check for burst mode availability when determining the base cycle cost, only burst ROM and sdram can use burst access to each other area requires 4 separate accesses
* sh7709s.cpp: Add some comments explaining missing/unimplemented features
- Add the non-burst timing table for WCR2
- Updates and adds a couple of extra comments related to the penalties/timing
|