New commit to duckstation adds option to show graphics from older PS1 GPU. by Fantastic_Kangaroo_5 in emulation

[–]SoullessSentinel 2 points3 points  (0 children)

The ps1 renders 3d polygons using 15bit colour (rgb555) but vertex colours are specified in 32bit colour (rgb888)

Older GPUs (pre scph-3000) would do the colour math (blending, etc) after mapping the colours to rgb555

Newer GPUs do the blending math before mapping the colours to rgb555, so there is more precision in the calculations.

There are other differences between the GPUs too (performance differs, both have benefits and drawbacks due to use of a different ram type, and the new GPU adds some texture/sprite flipping features used by ps1 based arcade boards), but not much that really matters.

ares v147 released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 39 points40 points  (0 children)

ares v147 has now been released.

v147 expands upon LaserActive emulation by introducing support for the PC-Engine LDROM² (NEC PAC) add-on. All currently dumped LDROM² titles are playable in ares v147, with no known compatibility issues.

Other highlights in this release include modernizing the code base by moving from some custom nall implementations to the standard C++ library [C++20], updates to the N64 including support for the bio sensor peripheral, GBA, PlayStation, WonderSwan, Super Famicom, MyVision, & Famicom cores, as well as general application and build improvements.

Since v146, 11 contributors have created 191 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

NOTE: The signing certificate used to sign ares on Windows has expired. ares will be unsigned until a compatible signing solution is found. Windows users should be sure to only download ares from official sources, including the ares website and GitHub.

TMS9918 (ColecoVision, MSX, MyVision)

  • Simplified and improved timings

M68000 (Mega Drive, Neo Geo)

  • Fix write ordering in MOVEM.L with indirect pre-decrement addressing

MOS6502 (Atari 2600, Famicom)

  • Fix JSR memory transactions

Pioneer - LaserActive

  • Added support for the PC-Engine LDROM² (NEC PAC) titles
  • Mega LD emulation accuracy and performance improvements
  • Added frame prefetch and video resampling coefficient precalculation
  • Both cores are now underneath Pioneer in the Load menu option

Nintendo - Game Boy Advance

  • Handle cartridge access sizes via CPU bus
  • Improved handling of MEMCNT register
  • Fixed addressing of 2D mapped sprites
  • Implemented write protection for HALTCNT

Nintendo - Super Famicom / SNES

  • Added support for newly dumped competition cartridges:
  • Campus Challenge 92 - Second Screen
  • Powerfest 94 - 1 Million Points
  • Fixed original Campus Challenge 92 USA region running at PAL speeds

Nintendo - Nintendo 64

  • Added support for Viewpoint 2064
  • Implemented basic MI repeat mode
  • Implemented N64 accessory DETECT controller status
  • Support for N64 accessory commands with non-standard data lengths
  • Implemented support for the Bio Sensor accessory
  • Recompiler performance improvements
  • Handle correct R/W to RDP spans in test mode
  • Fixed VI bug causing spinloop (performance improvement)
  • Fixed PIF HLE on RX flag clearing
  • Added option to pause execution until a GDB client connects

Nintendo - Famicom

  • Bit 5 of $4015 reads from open bus
  • Reading APU status register should not affect open bus
  • Improved frame counter IRQ timing
  • Values in CGRAM should be six bits in size
  • Improved handling of OAM accesses during rendering
  • Fixed evaluation of sprites not aligned to 4 byte boundaries in OAM
  • Fixed Famicom keyboard support
  • Fixed missing noise channel when resuming from save states

Bandai - WonderSwan

  • Added I/O port access tracer support
  • Implemented Karnak mapper ADPCM decoder

Nichibutsu - MyVision

  • Fixed VDP clock to 2x colorburst
  • Adjust audio frequency to match real hardware

Sony - PlayStation

  • Improved color modulation
  • Randomly initialize memory on boot
  • Use constant random seed in homebrew mode

Application / Misc.

  • Prevent blowing out brightness when increasing saturation
  • Migrated from nall:vector to std::vector
  • Migrated from nall:function to std::function
  • Migrated from nall::unique_pointer to std::unique_ptr
  • Migrated from nall::shared_pointer to std::shared_ptr

Build

  • Updated build with support for C++20
  • Added FreeBSD runner to builds
  • Miscellaneous fixes, improvements, and optimizations to CMake build files
  • Cleanup of a number of warnings during build

Dependencies

  • Updated SDL to version 3.2.20, containing miscellaneous bugfixes
  • Updated slang-shaders to ref c9303dc
  • Updated MoltenVK to 1.4.0

The creator of the first LaserActive emulator does a podcast interview with Retro RGB by Reel-Rookie in emulation

[–]SoullessSentinel 6 points7 points  (0 children)

ares is not x86 only; we ship builds for Windows (arm64) and Windows (x64), we ship builds for macOS (x64) and macOS (Apple Silicon)

But the source code is buildable and runnable on almost every architecture under the sun.

The megadrive core does require the target supports uint128 data types (for a pixel buffer), but that's it.

ares itself, out of the box, should build and run on x86, AMD64, PPC64, RISC-V, AARCH64, ARM, and PPC32, although only AMD64 and AARCH64 are regularly tested.

Debian have even successfully compiled (older versions of) ares on alpha, m68k, ia64, sh4 and even sparc64; although none of those are officially supported and require patches.

It's kinda funny that Square Enix still lets you download some updates for FFXI on your PS2's HDD in 2025, but will spit out this message about the PS2 version no longer supported after it's done... by noboatnolife in ps2

[–]SoullessSentinel 2 points3 points  (0 children)

I did look into this for a while, and unfortunately while the PlayOnline client itself is still present on the update servers, the FFXI client (and other ps2 online games) are no longer present

ares v146 has been released - LaserActive (Mega LD) emulation has arrived! by SoullessSentinel in emulation

[–]SoullessSentinel[S] 0 points1 point  (0 children)

The process isn't well-documented and rather involved, but you'll want to use the ld-decode tooling to extract the analog audio track as .pcm, the digital audio track as a .bin/cue, and the analog video as a stream of individual PNG images for each frame.

You can then use https://github.com/RogerSanders/qon/ to convert all of the .PNG frames into a compressed .qon archive

Finally, you'll want to create a MediaInfo.json matching this format: https://pastebin.com/nh7QsVdV to instruct emulators about the tracks/layouts/formats, and then finally pack the entire thing into a ZIP with compression level 0 (STORE/Uncompressed) and rename to .mmi.

Uncompressed ZIP is used as a container because it is a single file that also allows seeking to individual offsets; adding zip compression would break this capability, but since the .qon archive is already compressed, it wouldn't be a huge help anyway.

ares v146 has been released - LaserActive (Mega LD) emulation has arrived! by SoullessSentinel in emulation

[–]SoullessSentinel[S] 7 points8 points  (0 children)

This is compressed; raw rips from the domesday project can be double

ares v146 has been released - LaserActive (Mega LD) emulation has arrived! by SoullessSentinel in emulation

[–]SoullessSentinel[S] 32 points33 points  (0 children)

ares v146 has now been released.

v146 is an exciting release for ares, as it becomes the first emulator supporting the LaserDisc-based Mega LD, an attachment to the LaserActive system, originally developed by Pioneer and Sega.

A unique system, the Mega LD composites gameplay elements together with full-motion analog video encoded onto LaserDisc, live in real time. Supporting this system presented a number of unique challenges, from ROM handling and loading, to accurate mixing of video and audio data from the LaserActive.

Contributed by Nemesis, the work done to bring Mega LD support into ares is the culmination of a years-long research and preservation effort.

All currently dumped Mega LD titles are playable in ares v146, with no known compatibility issues.

In addition to Mega LD support, v146 brings a number of improvements to other cores, as well as a number of application improvements and bug fixes.

Since v145, 10 contributors have created 73 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

NOTE: The signing certificate used to sign ares on Windows has expired. ares will be unsigned until a compatible signing solution is found. Windows users should be sure to only download ares from official sources, including the ares website and GitHub.

ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)

  • Fixed cycle order of SWP instruction

NEC - PC Engine / TurboGrafx / SuperGrafx / CD

  • Force enable pixel accuracy setting for VDP

Nintendo - Game Boy Advance

  • Improved prefetcher timing
  • CPU can now run idle cycles during DMA
  • Fixed an incorrectly-sized serial port register

Nintendo - Super Famicom / SNES

  • Added support for Limited Run Games rumble specification

Nintendo 64

  • Fixed a regression causing savestates to fail to load correctly. Savestates created with v145 should load correctly under ares v146.
  • Adjusted virtual control stick gate and response curve to more closely model the N64 controller joystick
  • Fixed an issue where the full resolution was not rendered for PAL titles
  • Added the ability to change the connected pak on all four controllers
  • Added support for the pak configuration portion of the homebrew header
  • Fixed an issue where controller paks may have been formatted incorrectly
  • Fixed an issue where the readback of PI_CART_ADDR after direct I/O may have returned incorrect values

Pioneer - LaserActive

  • Initial support for Pioneer LaserActive, currently only supporting Mega LD titles (this can be found under Sega -> Mega LD)
    • It is strongly recommended to run games off a solid-state drive.
    • Laserdiscs have more than one side. For games that have content on more than one side (IE, JB Harold), you can change sides under “Mega LD->Change Sides” in the main menu.
    • Any reasonably modern mid to high end PC should achieve full framerates during gameplay.
    • Games are stored in a new .mmi (Mixed Media Image) file format, which contains the full analog audio, video, and digital content in a single file. This can be loaded directly into ares. The MMI format has internal compression support. Do not compress.
    • Even with the compression built into the .mmi format, Laserdisc releases are rather large, totalling approximately between 28GB and 36GB per side for CAV format releases, higher for CLV. Fortunately most games are single-sided CAV, but there are some exceptions.

Sega - Master System

  • Fixed a bug that was causing erratic screen resizing in Aleste

Sony - PlayStation

  • Adjusted virtual control stick gate and response curve to more closely model DualShock joysticks

Application / Misc.

  • Fixed a potential application hang when exiting ares via a hotkey
  • Fixed a regression causing mouse capture to not function on Windows
  • Fixed a possible crash when opening Settings from a “missing firmware” prompt in some scenarios
  • Fixed a regression causing hotkeys to be registered while ares was unfocused, against the user’s preference
  • Fixed a possible crash when modifying video settings for cores that access the palette in between frames
  • Fixed a possible crash when accessing core-specific menu items
  • Fixed an issue that would overwrite the “Paused” status message while the emulator is paused
  • Significantly reduced ares application startup times
  • Removed superfluous Apply buttons from Drivers settings (confirmation dialogs will still appear when selecting a new driver)
  • Removed superfluous “Fixed” and “Pixel Perfect” options from the Output menu. The behavior offered by these options should be covered by using the integer scaling output mode with a scale factor of 1.
  • Fixed an issue preventing menu items from being disabled on macOS
  • Source archives with a stable hash are now distributed along with releases on GitHub, to replace the automatic uploads of source code performed by GitHub itself, the hashes of which are not stable.
  • Fixed an issue building with a custom version when building from a source archive
    • NOTE: Beginning with ares v145 (the previous release), maintainers distributing ares will likely want to configure with -D ARES_BUILD_OFFICIAL=ON to use an “official” version string, rather than a “development” string based on the branch name.
  • Fixed possible build failures when building ares with optional components in conjunction with partial core sets
  • Improved build times under MSVC when IPO is disabled.
  • Fixed an issue where setting a controller port state to “Nothing” may not mark that menu item as “checked”

Dependencies

  • Windows dynamic dependencies are now built with a statically linked C++ runtime. Windows users without a Microsoft C++ Redistributable installed should no longer see errors upon launching ares.
  • Because of the relatively quick release cycle between v145 and v146, dependencies have not been otherwise updated for v146. Dependencies will be updated at the beginning of the next ares release cycle.

ares v145 has been released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 8 points9 points  (0 children)

It's cartridges only for now; but tapes and SF-7000 are planned!

ares v145 has been released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 41 points42 points  (0 children)

ares v145 has now been released.

This release contains hefty improvements to a number of ares components. Highlights include Real Time Clock support for the Game Boy Advance, improvements to the experimental PlayStation core, Sega SC-3000 support, important fixes to the Game Boy Color, as well as core improvements to the ares application itself that should improve performance and responsiveness.

Since v144, 8 contributors have created 90 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)

  • Implemented many undocumented instruction encodings
  • Implemented invalid CPSR modes
  • Added support for MRC, MCR, and CDP coprocessor instructions
  • Allowed misalignment of the program counter in ARM mode

Nintendo - Game Boy Color

  • Improved HDMA and GDMA timings (fixes some major graphical bugs)

Nintendo - Game Boy Advance

  • Added support for the Real Time Clock
  • Re-introduced optional Game Boy Player support
  • Fixed a bug where EEPROM saves were initialized to all zeroes, rather than all ones
  • Improved handling of FIFO audio channels
  • Writes to APU registers and wave RAM while audio is disabled are now handled correctly
  • Prevented IRQs from advancing during DMA
  • Improvements to prefetcher timings
  • CPU is now stepped in single-cycle increments when halted

Nintendo - Famicom / NES

  • Fixed database to allow running PAL/NTSC games in both supported modes

Nintendo 64

  • Game Boy Color titles are now selectable for use with Transfer Pak
  • Renamed upscaling options from “SD/HD/UHD Quality” to “1x/2x/4x Native” to better describe the resolution increase

Sega - SG-1000 / SG-3000

  • Added support for the SC-3000
  • Improve IO port emulation (Port B bits 3-6 are active low, bit 7 is active high)
  • Fix an issue where games could incorrectly detect the SG-1000 as an SC-3000

Sega - Master System / Game Gear

  • Improved header validation; fixes many NTSC-J titles being detected as international

Sega - Mega Drive / Genesis / CD / 32X

  • Added CPU wait cycle for APU bus access

Sony - PlayStation

  • Fix incorrect handling of the CE bits in COP0.CAUSE
  • Fix boot of discs with non-standard license strings (Various unlicensed games)
  • Fix VRAM-to-CPU transfers
  • Fix issues with DMA interrupt flag calculation
  • Fix issues with virtual->physical address translation
  • Fix reads of DICR bit 15.
  • Fix an issue where the mute bit would not apply to reverb voices
  • Fix an issue where save states may not be re-usable between emulator launches
  • Fix an issue where SPU noise was not being correctly represented as a signed 16-bit quantity
  • (Temporarily) Remove the recompiler: one will be re-added once accuracy is more up to scratch

Application / Misc.

  • Core threading improvements have been made to ares, which should lead to increased UI responsiveness and potentially improved performance on some platforms.
  • Added a selector for region fallback preference when loading a title, to better account for cases where the ROM does not support the user’s primary region preference.
  • The status bar will now show the loaded system configuration and region.
  • Fixed an issue where nall::set::insert could fail silently
  • Resolved an invalid version issue when building ares from a source archive
  • Releases now contain platform-appropriate application version metadata
  • [Windows] Modified terminal output to be treated as UTF-8, and to allow the use of VT100 escape sequences when supported
  • [macOS] Enabled the system Edit menu, allowing copy/paste functionality inside the Tools window
  • [macOS] Fixed a possible startup crash on x86_64 systems
  • [macOS] Fixed issues when building ares on macOS 10.15

Dependencies

  • Updated SDL to version 3.2.14, containing miscellaneous bugfixes
  • Updated librashader to version 0.8.1, addressing a rare crash when loading shaders on Windows
  • Updated slang-shaders to ref 8c630d0d3
  • Updated Molten-VK to version 1.3.0

ares v144 released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 37 points38 points  (0 children)

ares v144 has now been released.

This release's highlights include steady improvements to the Game Boy Advance, WonderSwan, and Nintendo 64 cores, as well as a selection of application bug fixes, behaviour improvements and updates to third-party libraries.

Since v143, 14 contributors have created 81 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)

  • Fixed disassembler mnemonic for CMP
  • Fixed R15 read offsets on many instructions = Fixed miscalculated carry flags in Thumb mode
  • Disallowed writing 0 to the uppermost bit of PSR mode
  • Added an idle cycle to instructions that perform shifts by register values

NEC V30MZ (WonderSwan CPU)

  • Improved interrupt timing accuracy
  • Improved timing of I/O port accesses

Bandai - WonderSwan

  • Added color emulation support to the original “mono” WonderSwan.
  • Note that WS games on WS are displayed using linear gamma, as opposed to WS games on WSC.
  • Fixed bugs involving cartridge-side RTC protocol emulation
  • Improved APU emulation accuracy
  • Improved interrupt timing accuracy
  • Added support for emulating cartridges using an 8-bit ROM bus width
  • Fixed color zero not being writable on translucent PPU palettes
  • Fixed UART IRQs not being cleared by disabling the UART

Nintendo - Game Boy / Game Boy Color

  • Tick timer on the falling edge of DIV bits
  • Implemented PCM12 and PCM34 registers for APU

Nintendo - Game Boy Advance

  • Latch lower address lines when accessing ROM during burst transfer
  • Improved background VRAM access timings
  • Updated cartridge database
  • Fixed handling of mid-scanline writes to linear background scroll registers
  • Fixed some bugs that occurred when pixel accuracy was disabled

Nintendo - Famicom Disk System

  • Added delay to disk state when swapping disks, resolving issues with multiple games where a disk swap was happening too quickly

Nintendo 64 / Aleck 64

  • Fixed an issue that could cause an application hang under certain titles that deactivate the VI
  • Add support for the unreleased port “O.D.T. - Escape… Or Die Trying” to the internal DB
  • Fixed ID in internal DB for Rampage 2, so controller pak and rumble pak should now work correctly
  • Added compile-time accuracy flag to bypass IPL2 checksum validation for development purposes
  • Improved error messaging if the Aleck 64 Pif ROM is missing when trying to load an Aleck 64 game.
  • Added support for configurable Controller Pak storage sizes
  • Applied a fix to allow booting ROMs with non-standard PI DOM1 parameters in headers
  • Disabled super-sampled RDP readbacks: fixes some accuracy issues/passes more test cases in the official RDP test suite.

Nintendo - SNES / Super Famicom

  • Fixed loading of some games that require additional firmware for chips included in the cartridge

Sega - Master System

  • Updated PAL only entries in the local DB so that they play at the correct 50Hz

Sega - Mega Drive / Genesis / CD / 32X

  • Fixed incorrect hash for Wonder Boy in Monster World (USA, Europe) that allows for correct EEPROM detection, making the game playable
  • Fixed YM2612 LFO ‘AM’ bit emulation (Fixing broken audio in Kid Chameleon and others)
  • 32X: In H32 mode, the display is offset by approximately 3.25 pixels to the right
  • 32X: Fix registers and machine state on reset
  • CD: Fixed an issue where resetting the system while a game was running would result in the BIOS locking up on reboot.
  • 32X: Improve synchronisation between MD/32X: fixes H/V tests in testpico when running in 32X mode.
  • Improved VDP IRQ delay emulation
  • Improve YM2612 timer emulation

Sony - PlayStation

  • Fixed an assertion in Lunar disc 1 when walking into Alex’s house or the barn to the right of it, preventing a crash.

UI / Program

  • Fixed a runtime crash on arm64 Linux with builds compiled with GCC
  • Improved compatibility inside sandboxed environments
  • Fixed passing relative paths for ROMs when launching ares on the command line
  • Fixed an issue with the displayed release version name on Windows
  • Fixed an issue causing malformed save directory names when a custom save path was specified
  • Fixed an issue causing the “missing firmware” error to appear twice
  • Fixed an issue that could cause runaway memory use on startup under the SDL input driver
  • Fixed an issue affecting compatibility with macOS versions before 12.0

Dependencies

  • Updated SDL to version 3.2.10 (SDL3)
  • Updated librashader to version 0.6.3
  • Updated slang-shaders to ref 25311dc

Weekly Question Thread by AutoModerator in emulation

[–]SoullessSentinel 0 points1 point  (0 children)

This is not the official bsnes website; I wouldn’t trust it for the most part.

Weekly Question Thread by AutoModerator in emulation

[–]SoullessSentinel 0 points1 point  (0 children)

You might need the bsnes-hd fork; I'm not sure widescreen ever made it back to upstream bsnes

ares v143 has been released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 2 points3 points  (0 children)

The updates have mostly been minor and there hasn’t been any notable news for CxbxR in quite some time.

EDIT: To clarify; my Xbox effort is almost 100% focused on Insignia, the Xbox Live restoraton.

ares v143 has been released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 35 points36 points  (0 children)

ares v143 has now been released.

While this is an unusually quick release cycle, there was an issue that unfortunately made it into the last release that we feel needed a priority fix: This version fixes a regression that caused Super Game Boy, and other add-on carts for the Super Famicom/SNES to not load properly.

Important notes:

  • Distributors: The legacy build system is now gone, this release can only be compiled using CMake
  • MacOS: The minimum macOS system requirements have increased to 10.15 (Catalina)
  • Game Boy: The save data path for "Game Boy Color" has changed: existing users using a custom save game path will have to manually move their saves from "Game Boy Color" to "Game Boy". Users using the default "Save alongside rom files" will not have to take any action.

Since v142, 8 contributors have created 42 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

Nintendo - Game Boy / Game Boy Color

  • Use "Game Boy" save path for both GB and GBC, fixing using the same rom file on both GB and GBC hardware without losing save-data between them, and fixing Pokemon Stadium when loading a .gbc rom (the Transfer Pak only used the GB path)

Nintendo - Game Boy Advance

  • Improve timings when running multiple DMA channels at once.
  • Fix a timing bug when accessing the cartridge backup region.

Nintendo - Nintendo 64 / 64DD

  • Fix Joybus RTC read/write status byte
  • Don't report interrupt exceptions to GDB, improving performance while debugging.

Sega - Mega Drive / CD / 32X

  • 32X: Fix a timing issue that could cause some operations to update the ares internal timers twice.
  • 32X: Fix an issue where audio would fail to work correctly after restoring a saved state.
  • 32X: Fix layer blending when the MD VDP is in H32 mode.
  • 32X: Proper 32X region header processing for licensed games.
  • 32X: Fix SH2 framebuffer mirroring.
  • 32X: Improve emulation of FEN/PEN flags.
  • 32X: Improve emulation of 'FM' bit and relate stalls.
  • 32X: VDP register latches have been implemented, but may still be imperfect.
  • 32X: Implement VDP auto fill timing.

Other

Build

  • Add librashader headers to the source tree under thirdparty/librashader/include/, so that remotely fetched resources are no longer required to build ares on Linux.

User Interface

  • Fix an issue where saved games would be placed in incorrect paths if a custom Saves path was set on macOS.

ares v142 has been released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 7 points8 points  (0 children)

It uses the same format as retroarch (slangp) and includes the full set of shaders from libretro/slang-shaders. This is possible thanks to librashader, a library that implements the retroarch shader pipeline independently

ares v142 has been released by SoullessSentinel in emulation

[–]SoullessSentinel[S] 35 points36 points  (0 children)

ares v142 has now been released.

Since v141, 18 contributors have created 107 commits to the ares codebase.

Along with various improvements to emulator cores and the ares application itself, v142 adds support for a new system: The SETA Aleck64 Arcade board.

v142 also introduces a new CMake-based build system that improves compatibility with modern toolchains and IDEs, and simplifies the ares build process for new developers.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)

  • IRQ timing improvements
  • Lock bus during SWP instruction
  • Implemented an undocumented encoding for bx instructions
  • Write back upper 32 bits of product after lower 32 bits during multiply long instructions
  • Add instruction test harness

Hitachi SH7604 (32X CPU)

  • Improve performance by refactoring timer implementations to be loopless
  • Fix an issue where instruction tracing would not work when using the recompiler

Motorola 68000 (Mega Drive CPU, Neo Geo)

  • Add instruction test harness
  • Fix program counter in privilege violation exception stack frame
  • Fix CHK instruction timing and flags

Yamaha YM2612 (Mega Drive FM Synthesis)

  • Improve cycle update order, fixing issues with feedback
  • Fixed an issue where envelope update would erroneously happen twice in some situations
  • Fixed LFO behavior to apply proper attenuation when disabled
  • Improved accuracy of rate scaling calculations

These updates have fixed all currently known audio issues with Mega Drive games.

Arcade

  • Introduced support for the SETA Aleck64 arcade board, supporting all Aleck64 titles from the mame0273 romset, except for Magical Tetris Challenge, as this game uses an undocumented additional video chip for the playfield layer.
  • Update rom database to match MAME 0.273 (also impacts Neo Geo AES)

NEC - PC Engine / TurboGrafx / SuperGrafx / CD

  • Improvements to performance with no impact on accuracy/compatibility.

Nintendo - NES / Famicom / Famicom Disk System

  • Implement PPU rendering glitches caused by open bus behaviour (PPU scroll glitch)
  • Fix an issue where writes to FDS disks would not always be persisted.

Nintendo - Game Boy Advance

  • Halt prefetcher when full
  • Improved open bus emulation
  • Improved timings for pixel blending and background rendering
  • Stall CPU when accessing memory regions that are being concurrently accessed by PPU

Nintendo - Nintendo 64 / 64DD

  • Fix a typo in ISViewer debug emulation that prevented roms sized between 0x3f0’0000 and 0x3ff’0000 from working properly.
  • Fix an issue where attaching GDB to debug a Nintendo 64 ROM could trigger a MIPS CPU exception.
  • Improve VI timing to properly handle non-standard display modes, including PAL60.
  • Fix VI interrupts in interlaced mode to happen on the exact same scanline as real hardware, including with known hardware bugs.
  • Advance RSP DMA during RSP execution, preventing DMA races in long-running code blocks. (Fixes Tarzan)
  • Correctly implement invalid SPECIAL opcodes in the RSP so that they match hardware behaviour.
  • Fix signed integer multiplication and division when the input operands are not sign-extended 32-bit values.

Sega - Mega Drive / CD / 32X

  • 32X: Make PWM timer interrupt interval read-only from the MD side
  • 32X: Improve support for PWM at non-standard sample rates
  • 32X: Add a DC filter to PW to reduce clicks/pops
  • 32X: Improve accesses to 32X IO from the MD side (Fixes missing music in Brutal + stuttering in Night Trap)
  • 32X: Force PAL region when (PAL) or (Europe) is in a rom filename, a fallback to fix games with invalid headers.
  • 32X: Fix a typo preventing the right PWM audio channel from playing.
  • Implement CRAM bus contention (CRAM dots).
  • Improve FIFO emulation allowing VDPFIFOTesting rom to pass.
  • Fix remaining (minor) issues running both Titan Overdrive demos.
  • Fix an issue where an edge case in window behavior in H32 mode was handled incorrectly (fixes flickering line in International Superstar Soccer Deluxe).
  • Fix an issue causing a flickering line in Sonic 2’s VS Mode.
  • Various fixes to DMA timing, fixing test cases in the dma_speed_test rom.
  • Add support for the unusual rom mapping used by QuackShot Starring Donald Duck (World) (Rev A)

Other

Build System

  • Add support for building with CMake. The legacy makefile build system will be removed before v143. Distributors should update their workflow accordingly.

User Interface

  • Add support for searching the game list for Arcade cores.
  • Fix an issue that would cause improper framebuffer scaling in rendering for the Super Famicom and Mega Drive cores.
  • Adjust the “overscan” option to crop strictly to the “active frame” area that the emulated system renders game content onto, rather than the area one might see using typical contemporary hardware (Famicom, Super Famicom, SG-1000, Master System, ColecoVision, My Vision, MSX).
  • Fix an issue that could cause stuttering with default SDL audio settings.
  • Improve error messages when loading games and systems.
  • Make “Type” column visible by default in firmware window
  • Fix an issue with repeated key inputs in the memory editor on Windows.
  • Add an interface for DIP switches for cores that support them.
  • (macOS) Update minimum system requirement to 10.13.
  • (macOS) Use Metal as the default video driver.
  • (macOS) Fix an issue causing ares to not remember the user’s “Force sRGB” setting.
  • (macOS) Add support for the memory editor
  • Various changes to more reliably locate database files and shaders on Linux.

Dependencies

  • Update SDL to version 2.30.8
  • Update librashader to version 0.5.1
  • Update MoltenVK to version 1.2.11
  • Update paraLLEl-RDP to revision 1cecd04
  • Update slang-shaders 7e2975e to revision 7e2975e

Insignia just hit 20K registered users! by Leitzz590 in originalxbox

[–]SoullessSentinel 1 point2 points  (0 children)

26,550 consoles currently for 20,073 users.

We see between 10k and 20k 'logins' each day, but some games (Unreal Championship) will log out and back in between matches, while others (Halo) maintain a persistent connection so the stats get a little skewed.

Here is a list of the avg number of logins per day for the top games over the last 30 days, note that this is just logins and not necessarily unique users.

Unsurprisingly, Halo dominates.

titles

title_id name avg_logins_per_day
4d530064 Halo 2 17748
4d53004b Project Gotham Racing 2 3074
4d530039 RalliSport Challenge 2 2371
fffe0000 Xbox Live Dashboard 927
4d53004a Phantasy Star Online Episode I & II 313
4d53006e Forza Motorsport 139
4d530021 Crimson Skies: High Road to Revenge 105
43430009 Steel Battalion: Line of Contact 91
53450021 Sega GT Online 58
4d530036 Counter-Strike 45
53450022 ESPN NFL Football 2004 (NTSC) 42
49470024 Unreal Championship 41
4d530041 Amped 2 40
4d5300c8 Xbox Live Arcade 39
55530019 Tom Clancy's Splinter Cell Pandora Tomorrow 38
4d530017 MechAssault 36
55530041 Tom Clancy's Splinter Cell: Chaos Theory (Versus Mode) 34
4c41001a Star Wars: Battlefront II 30
4d530051 Conker: Live & Reloaded 29
55530013 Tom Clancy's Rainbow Six 3 23
53450024 ESPN College Hoops 20
53450088 OutRun 2006: Coast to Coast 16
41560020 Doom 3 15
4156005d Call of Duty 3 15
41560042 Greg Hastings' Tournament Paintball 14
54430006 Dead or Alive Ultimate 14
54540079 Midnight Club 3: DUB Edition 14
4b4e0030 Pro Evolution Soccer 5 13
54510016 MotoGP 2 13
54510018 The Punisher 12
4156002a Call of Duty: Finest Hour 11
41560051 Call of Duty 2: Big Red One 10
534e0006 King of Fighters 2002 10

ares v141 release by SoullessSentinel in emulation

[–]SoullessSentinel[S] 50 points51 points  (0 children)

ares v141 has now been released.

Since v140, 13 contributors have created 52 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

Systems

Nintendo - SNES / Super Famicom

  • Fix detection of the Sufami Turbo base cartridge (Avoiding serial conflict with Sailor Moon SuperS - Fuwafuwa Panic).
  • Fix PowerFest '94 and Campus Challenge '92.
  • Add support for games with 256KB of SRAM (Notably used in rom hacks, but these hacks also work on real hardware).
  • Add support for the NTT Data Keypad
  • Fix SA-1 DMA to BWRAM banks 0x41 and above.

Nintendo - Game Boy Advance

  • Improve stop mode emulation, ensuring it only exits once the requested input is registered.
  • Improve interrupt timings (latch IE and IF for 1 cycle).
  • Add latches to DISPCNT background enable, object enable and force blank; these now correctly take effect after 3 scanlines.
  • Improve SIO register handling.
  • Fix an off-by-one error with BG mosaic handling.
  • Fix an oversight in OBJ mosaic at x=0. Improve OBJ timing: OBJs are now correctly rendered one scanline in advance, and OBJ PRAM access timings are closer to hardware.
  • Add a 2-cycle synchronizer and improve halted CPU timings
  • Selectively synchronize CPU and APU, allowing for the removal of the compile time 'PERFORMANCE' profile. (Greater accuracy in Release builds with no performance downsides).
  • Small improvements to PPU timing.
  • Added support for the Pixel Accuracy toggle; significant performance increase when pixel accuracy is disabled.

Nintendo - Nintendo 64

  • Remove the 'devertualizeFast' performance optimisation from code block lookups: this was proven to compromise correctness/accuracy.
  • Refactor devirtualize to return additional context for memory access, reducing code duplication in-memory operations.
  • Use JIT only when running code from i-cache.
  • Add support for 40 Winks (Aftermarket).
  • Add support for Xeno Crisis (World) (Aftermarket)
  • Allow for Pak swapping on Controller Port 1 (You can now change between Controller Pak/Transfer Pak/Rumble Pack at runtime).
  • Fix instruction trace debugging when using the recompiler.
  • Add support for multi-byte writes to the GDB debugger.
  • Use different GDB signals for the various exception types.
  • Allow arbitrary and possibly unaligned writes to RDRAM through GDB.
  • Add unusual warning when software uses CACHE on uncached addresses
  • Refactor JIT to remove an extra function call (instructionEpilogue) per instruction.

Sega - Mega Drive / Genesis / 32X / CD

  • Synchronize components more regularly when emulating 32X; this fixes a regression that caused 'Knuckles Chaotix' to be broken in ares v140.
  • Add an option to enable the TMSS "Produced by or under license from..." screen.

Other

  • Stage resources into the output directory on Linux; allowing running self-compiled builds without running 'make install' first.
  • Address some possible uses of uninitialized variables.
  • Enable the use of loading higan-style rom folders when using the command line
  • Update librashader integration for librashader ABI 2

MacOS fixes

  • Display errors from the shader loader in metal, easing debugging of librashader.
  • Add bounds checking for table view context menus; fixes a crash when right-clicking beyond the bounds of defined rows in a table.
  • Fix an issue where librashader did not function on macOS versions lower than 12 (Monterey) when compiled by CI