| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
* Implemented short word sign extension.
* Fixed DAG2 (PM) register display in debugger.
* Track AF dependencies when analysing instructions.
* Log analysed instructions when logging UML code.
* Removed misplaced break in cpu/sharc/sharcfe.cpp.
* cpu/uml.h: Let C functions take any pointer/reference parameter.
|
| |
|
|
| |
recompiler ASTAT for saved states.
|
| |
|
|
|
|
|
|
|
| |
* Implemented bit-accurate RECIPS and RSQRTS in recompiler (fast
approximation can be enabled by setting a macro).
* Fixed/optimised RECIPS flag calculation for interpreter.
* Fixed FIX for negative numbers when MODE1 TRUNC bit it set for
interpreter and recompiler (should round towards negative infinity).
* Don't regenerate static helpers on cache flush.
|
| | |
|
| |
|
|
| |
collection(toggle)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fixed shift with variable count when count is positive (should shift
left, was shifting right).
* Use recently-introduced UML bit field extract instructions.
* Don't follow arithmetic with redundant compare to zero if only zero
flag is required.
* Let the back-end take care of fetching source from memory or immediate
for simple arithmetic.
* Assume the back-end knows how to generate conditional CALLH.
* Use BIT helper.
* Don't assume x86-like magic sequence breaking on self-XOR.
* Corrected a comment that didn't match the code.
-docs: Corrected syntax for generating UML conditional CALLH
instructions.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(#14550)
Also adds another text alignment option to stretch the text to fill its bounds horizontally.
The current code calculating the aspect ratio for text involves looping, calculating the width of text for a variety of decreasing aspect ratios until the text's width is less than the available bounds. However, this string width calculation performs the same loop over the text each time, finally multiplying by the candidate aspect ratio. That text width calculation thus really only needs to be done once. Further, instead of trying different aspect ratios, the ratio can simply be calculated directly by dividing the width of the bounds by the string's width. This also calculates a more accurate aspect ratio, rather than always resulting in an aspect ratio of (0.95)^n.
For example, when trying to fit a 101-pixel wide text into a 100-pixel wide space, the current code would result in an aspect ratio of 0.95, making the text 96 pixels wide, leaving 4 pixels unused; the new code will instead calculate the aspect ratio as 100/101 == 0.9900990099... , making the text use the full 100 available pixels.
This in turn allows us to easily calculate the ratio also if we want to not just schrink but also stretch the text to fill the available space, so we add that as another text alignment option, number 3 (three).
This PR also demonstrates this in the VFX family of layouts, where on the default Full view, the text "MUSIC PRODUCTION SYNTHESIZER" ("DYNAMIC COMPONENT SYNTHESIZER" on the VFX), the logo-like text "ensoniq", and the keyboard-specific markers "VFX", "VFX-SD", "SD-1" and "3 2 V O I C E" can now be made to fill their available space horizontally as they should, making it all look that much more like the real thing.
|
| |
|
|
|
|
| |
cpu/drcbex64.cpp: Also added LZCNT implementation using x86 LZCNT
instruction and optimised the BSR-based implementation.
cpu/e132xs: Use bit field extract instructions.
|
| |
|
|
|
|
|
|
|
|
| |
* cpu/drcbex64.cpp: Optimised GETFLGS: LEA to avoid the need to
save/restore flags for more flag combinations, choose registers more
wisely to avoid unnecessary copies and reduce REX prefixes, use more
efficient strategy to save and restore flags.
* cpu/drcbearm64.cpp: Save an instruction when calculating carry flag
for shifts with immediate count.
* docs: Documented the last of the UML instructions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cpu/drcbex64.cpp: Simplified and ptimised flag calculations for rotate
instructions.
* cpu/drcbex64.cpp, cpu/drcbex86.cpp: Mask flags when setting via
SETFLGS or RESTORE to avoid possible buffer overrun, slightly
optimised SETFLGS with an immediate operand.
* cpu/drcbex64.cpp, cpu/drcbex86.cpp: Optimised FCMP when only the
unordered flags is required.
* drcbearm64.cpp, drcbec.cpp: Fixed default floating point rounding mode
not applying after RESTORE.
* drcbearm64.cpp: Optimised generated code for SETFLGS a little.
* docs: Documented a few more UML instructions.
-sound/l7a1045_l6028_dsp_a.cpp: More plausible loop point calculation.
|
| |
|
|
|
|
|
|
|
|
|
| |
* cpu/uml.cpp: Marked BREAK as clobbering all flags, and marked LOAD,
LOADS, STORE, SET, FLOAD and FSTORE as not modifying flags. CPUs
already depend on SET not modifying flags.
* cpu/drcbex64.cpp, cpu/drcbex86.cpp: Clear the zero and carry flags for
unordered floating point comparisons for consistency with the
documentation and the other back-ends.
* cpu/drcbex64.cpp: Slightly optimised flag calculation for some shifts
and rotates.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* cpu/drcbearm64.cpp: Use bfxil to save an instruction for smae cases of
CARRY and ROLINS.
* cpu/drcbec.cpp: Fixed code for ROLC that played fast and loose with
integer promotion, producing incorrect results for some
compilers/targets.
* cpu/uml.cpp: Truncate immediate operands for CARRY.
* docs: Documented a few more UML instructions.
-igs/igs_m027xa.cpp: Got rid of some stuff carried over from
igs_m027.cpp that no games on this platform seem to use.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Avoid unnecessary operand loads for add/subtract operations where both
sources are identical.
* Improved code generation for rotate through carry with immediate shift
count and/or immediate zero source.
-cpu/uml.cpp: Fixed potential assertion failure when a degenerate rotate
through carry is converted to a move.
-dynax/ddenlovr.cpp: Fixed DIP switch labels and added locations for
Mahjong Dai Touyouken and Return of Sel Jan 2.
-docs: Documented DRC UML rotate through carry instructions.
|
| |
|
|
|
|
|
|
|
| |
* cpu/drcbex64.cpp: Slightly optimised flag calculation for some
variants of the multiply instructions.
* docs: Documented the DRC UML integer multiplication and division
instructions.
* cpu/drcbearm64.cpp: Added NEON vector register assignments to the
header comment.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
-cpu/uml.cpp: Added a simplification rule for pathological cases of
SEXT.
-docs: Documented the DRC UML SEXT instruction.
-Tidied some random stuff.
|
| |
|
|
| |
-docs: Documented several DRC UML shift/rotate instructions.
|
| |
|
|
|
| |
Also optimised code generation for UML ROL (rotate left) and slightly
optimised carry flag calculation for left shift (save one instruction).
|
| |
|
|
|
|
|
| |
* cpu/uml.cpp: Added simplification rules for FFRINT and FFRFLT.
* cup/drcumlsh.h: Use "src" rather than "src1" if there's only one
source operand.
* cpu/drcbearm64.cpp: Added a fixme comment.
|
| |
|
|
|
|
|
| |
* Also replaced mathematical symbols for Boolean algebra with less
desirable C operators as they were upsetting pdflatex.
-cpu/uml.cpp: Got rid of a redundant assignment.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
misc/crystal.cpp: Added lamp outputs used by Office Yeoin Cheonha and
Urachacha Mudaeri, and fixed button order/names for Urachacha Mudaeri.
cpu/uml.cpp: Added a couple of simplification rules. ADDC's inputs are
commutative, and TEST with an immediate zero operand effectively ignores
the other operand.
namco/namcos23.cpp: Treat spinny things as a dial rather than half a
mouse.
cpu/arm7: Removed the recompiler that had never been completed.
cpu/drcumlsh.h: Removed helpers for generating the unimplemented JMPH
instrcution. Trying to use it would cause a compile error.
docs: Documented the most common DRC UML integer arithmetic and logical
instructions.
|
| |
|
|
|
|
|
| |
Also made order of parsing view element more logical (makes interation
with parameter elements less confusing).
Some layouts have been updated, others still need work.
|
| | |
|
| | |
|
| |
|
|
| |
audiomix: fix mistake on microphone channel mapping
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Should be added soon:
- mute
- speaker/microphone resampling
To be added a little later:
- compression
- reverb
Needs to be added by someone else:
- coreaudio
- direct
- portaudio
- xaudio2
- js
|
| |
|
|
|
|
|
|
|
|
|
| |
* cpu/drcbec.cpp: Interpret index operand for load/store instructions as
a signed value for consistency with other back-ends.
* cpu/drcbec.cpp: Honour alignment rules when packing immediate values.
* cpu/drcbex64.cpp: Don't special-case SEXT with an immediate source -
the simplifier takes care of this.
* cpu/drcbex86.cpp: Be explicit about preserving flags in load/store
instructions.
* docs: Added a couple more UML data movement instructions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
recompiler issues:
* cpu/drcbearm64.cpp Interpret index operand for load and store
instructions as a signed 32-bit value for consistency with x86-64.
Moved code to interpret load and scale the index for integer
load/store to a helper function to make it easier to update if it
needs changes or fixes.
* cpu/drcbearm64.cpp: Use and/orr to set carry flag directly rahter than
using an intermediate register when both operands of a CARRY
instruction are immediates.
* cpu/drcbearm64.cpp: Fixed incorrect operand type assertion for FREAD.
* cpu/drcbearm64.cpp: Use less verbose asmjit helper functions for shift
operations and addressing modes.
* cpu/drcbex64.cpp: Interpret index operand for floating point
load/store as a signed 32-bit value for consistency with integer
load/store.
* cpu/drcbex64.cpp: Guard against any possibility of load and store
instructions altering the flags.
* cpu/drcbex64.cpp: Reduced copy/paste in floating point load/store
instructions.
* cpu/drcbex64.cpp: Cleaned up some casts between integer types with
differing size and signedness.
* docs: Added reference for UML flow control, data movement and emulated
memory access instructions.
* cpu/uml.cpp: Truncate immediates to size for a few more instructions.
* cpu/uml.cpp: Added SPACE_OPCODES since it's a well-known address space
now.
* cpu/uml.cpp: Removed SCALE_DEFAULT. It's unimplemented by back-ends
and unused by front-ends.
* cpu/uml.h, cpu/drcumlsh.h: Less confusing names for parameters to read
and write instruction generators.
* cpu/drcbex86.cpp: Templated 64-bit multiplication helpers on the
zero/sign flag source, cleaned up casting pointers to integers.
|
| |
|
|
|
|
|
|
| |
Clones promoted to working
--------------------------
Indoor Soccer (set 2) [hap]
Indoor Soccer (Tecfri) [hap]
American Soccer (Japan) [hap]
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
-docs: Fixed editing error.
|
| |
|
|
|
|
| |
-ui/tapectrl.cpp: Ensure device monitored for media change is up-to-date.
-osd/windows: Changed a pointer to a const reference in an API.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Feed mouse/pen/touch pointer events through UI input manager with Win32 and SDL.
* Started migrating UI code to use new API and reworking mouse/touch interaction.
* emu/render.cpp: Support pressing multiple clickable layout items simultaneously.
* emu/render.cpp: Allow UI elements to be drawn in any window.
* emu/rendlay.cpp, luaengine_render.cpp: Added layout view events for pointer input.
* ui/ui.cpp: Allow the UI handler to control pointer display.
* ui/analogipt.cpp: Added mouse/touch and more keys for navigating field state list.
* ui/menu.cpp: Use vertical swipe to scroll and horizontal swipe to adjust.
* ui/menu.cpp: Draw after processing input - greatly improves responsiveness.
* ui/menu.cpp: Ignore keyboard/gamepad input during pointer actions.
* ui/selmenu.cpp: Made left/right info pane arrows repeat when held.
* ui/selmenu.cpp: Use middle click to move keyboard focus.
* ui/selmenu.cpp: Let filter list scroll if it's too tall, and use a bit of horizontal padding.
* ui/selmenu.cpp: Improved divider sizing.
* ui/state.cpp: Don't allow clicks to pass through the confirm deletion prompt to the menu.
* ui/simpleselgame.cpp: Fixed error message display and graphics/sound status not showing.
* ui/simpleselgame.cpp: Allow tap/click to dismiss error message.
* ui/utils.cpp: Show UI for choice filters when there are no choices - it's less confusing.
* modules/input/input_sdl.cpp: Made scaling for mouse scroll better match RawInput and DirectInput.
* modules/input/input_rawinput.cpp: Added support for horizontal scroll axis.
* modules/input/input_win32.cpp: Added support for scroll axes and more buttons to mouse/lightgun.
* modules/debugger/debugimgui.cpp: Don't fight over events with the UI manager - it breaks menus.
* osd/windows/window.cpp: Translate mouse position to window cooridinates for scroll wheel events.
* osd/sdl/window.cpp: Supply last mouse position for scroll wheel events if possible.
* scripts/build/complay.py: Made zero input mask an error - it was only being used to block clicks.
|
| |
|
|
|
|
|
|
|
|
| |
Systems promoted to working
---------------------------
Sega TV Ocha-Ken [QUFB]
Software list items promoted to working (tvochken.xml)
------------------------------------------------------
TV to Ocha-Card: Ocha-Ken 'Ho' to Seikatsu [Vas Crabb]
|
| |
|
|
|
|
| |
* docs: Updated example layout links to latest tagged release (0.261).
* capcom/1943.cpp: Improved DIP switch setting labels (MT08797).
* sega/sms.cpp: Original Master System/Gam*Boy wasn't numbered (MT08754).
|
| |
|
|
|
|
|
|
|
| |
sega_beena_cart.xml: Put page scans in individual data areas.
frontend/mame/luaengine_mem.cpp: Added a raw read function for memory
regions.
plugins/layout: Added bitmap classes to layout sandbox.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Use VirtualAlloc rather than VirtualProtect on Windows to change page
protection, as the latter can cause severe performance issues with some
antivirus software.
Added noexcept to lots of hash- and bitmap-related things, and added a
little more error checking. Yes, I realise it will abort if an
allocation fails while printing a log message, but if you get to that
point, you're probably screwed already.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Moved several machine lifecycle callbacks to the notifier/subscriber
model. The old callback registration model is still available for
them for now, but prints a deprecation warning.
* Added pre-save/post-load notifications.
* Use a single allocated timer rather than one anonymous timer per
waiter. Waiters no longer prevent saved states from being loaded.
* Clean up outstanding waiters on stop or state load rather than just
leaking them.
* Started documenting parts of the emulator interface object that should
be relatively stable.
-imagedev/avivideo.cpp: Fixed an object leak on unload. Also changed
some other media image devices to use smart pointers.
|
| |
|
|
|
|
|
|
|
| |
- Remove the seterror method for recording error messages and conditions. Condition codes have been made return values for call_load, call_create and various related callbacks. Error messages (which many devices weren't generating) are now displayed through osd_printf_error.
- Eliminate the image_init_result and image_verify_result pass/fail enumeration types. Update many functions that were returning these enumerations or simply bools to return std::error_condition instead. In some cases, this type is now passed down from internal parsing/loading functions which were already returning it. In various other cases, the former default UNSPECIFIED has been used as a catchall for I/O errors; anticipated future refactorings should make these error returns more specific.
- Expand the image_error categories to include INVALIDLENGTH, NOSOFTWARE and BADSOFTWARE. The first is largely self-explanatory. The second is generated by the core to indicate failure to find software items in lists. The third is provided for devices to indicate semantic errors in software list entries.
- Change the return type of floppy_image_device::identify to a pair so the potential error condition can be passed along to the UI without storing it in a member variable.
- Move device_image_interface::message down into snapshot_image_device and change its implementation to use string_format instead of printf.
- Correct a typo in the shortname of the generic snapshot device.
|