Ultimate Amiga

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: PSPUAE Dev Log of current changes from 0.90 Beta 4  (Read 54 times)

0 Members and 2 Guests are viewing this topic.

FOL

  • PSPUAE Dev Team
  • Site Admin
  • A4000T
  • ******
  • Karma: 690
  • Offline Offline
  • Gender: Male
  • Posts: 3,603
  • Amigakit.com Technical
    • PSPUAE
PSPUAE Dev Log of current changes from 0.90 Beta 4
« on: March 27, 2026, 07:59:49 AM »

New changes since 0.90B4
Added ME-based audio engine (me_audio.c / me_audio.h)
Added MP3 menu player system (menu_mp3.c / menu_mp3.h)
Added MP3 conversion script (convert_mp3.sh)

Removed
Removed psp_safe.c (legacy safety / wrapper layer)

Core changes that have happened
Audio System
Replaced entire PSP audio driver with ring buffer streaming system
Converted audio to ME-driven timing model
Added audio tick / timeline counter (global sync source)
Redirected UAE audio output into new mixer pipeline
Updated sound interface layer to match new backend
Fix audio reset issue, that caused the random lockup on reset and loading savestates

CPU / Timing
Added audio-driven CPU cycle budgeting
Introduced cycles-per-sample timing model
Synced CPU execution pacing to audio clock
CPU Accelerated, Acts like an Accelerator card. It auto adjusts to load and increases and decreases speed on fly. Tweaked some more to make it run as 28 MHz. So it now steps between 7 -28 MHz depending on load.

PSP Integration
Integrated ME audio system into main PSP loop (psp.c)
Added MP3 playback control hooks (pause/resume/init)
Linked menu system with MP3 playback

Build / Compile
Updated Makefile with new compile flags and modules
Included new audio + MP3 components in build

Graphics / Misc stuff
Cleaned and optimized gfxutil color handling (To fix AGA)
Minor fixes and corrections in custom.c (bitplane / fetch logic to fix AGA)
Improve Auto FrameSkip, add buffering. This makes everything silky smooth, even when running slow. Everything is still synced, no sound popping and clicking, just gfx slow.
Blitter now on ME, however its slow. I have manged to increase its speed, but nothing like UAE CPU running it. Currently I have Blit scheduler that decides which CPU to use. So its using both PSP CPU's to Blit. Main focus is on getting ME Blitting to full speed. Once thats done, I will replace Blit decide with "just use ME".
Fixed two 21 year old bugs. Random lockup when loading savestates and certain configs. We were missing audio reset during these runtime states.

Config Changes
Disabled cycle switch system via sysconfig (Not needed any more, will be replaced with software accelerator)
Adjusted interrupt/audio related config behavior


Changes summed up
Shift from CPU-driven timing → Audio-driven timing
Shift from blocking audio → asynchronous ring buffer audio
Shift from blocking Blitter → asynchronous Blitter on ME CPU

Introduction of Media Engine (ME) as core audio processor
Separation of:
Paula audio generation - This gives biggest speed increase, just having issues moving last remaining bits.
Output mixing / streaming
Addition of independent MP3 playback path for UI

Currently working on;
Blitter on ME is a dead end.
Touched on implementing JIT (Accelerated option, uses some JIT like code), so will come back to this later to add a system wide JIT.
« Last Edit: Today at 09:09:49 AM by FOL »
Logged
Quote
Resolute and Industrious
Grand ruler of the yellow people and the Ultimate Amiga Empire

FOL

  • PSPUAE Dev Team
  • Site Admin
  • A4000T
  • ******
  • Karma: 690
  • Offline Offline
  • Gender: Male
  • Posts: 3,603
  • Amigakit.com Technical
    • PSPUAE
Re: PSPUAE Dev Log of current changes from 0.90 Beta 4
« Reply #1 on: Today at 09:21:03 AM »

Update;

Blitter on ME is deadend. Spent 2 days trying to get it to run faster, no joy.
So reverted it back to Main CPU.
So far everything I have tried, has not yielded much in speed increase.
Tried;
Memory fast paths for blitter,
re-writing blitter (that sucked, over 10 hours),
Lots of CPU optimisation, got some speed up, as CPU now never asks if events are done all the time.

Only thing that has given 3 to 6 FPS, is moving Paula to ME.
There is still some more Paula stuff I need to move. Tried yesterday, code is working, just no sound at moment.
Got another 2 to 3 FPS, so I know that route is a good one. Will stick at it.

Still have have JIT up my sleeve. Will get audio out of way first.
After that, I think I have explored every avenue to squeeze speed out of it.
I could maybe try making some stuff independant, so takes load off Main CPU.
Maybe Floppy, as floppy accesses kill cpu while in operation and CPU struggles to keep up.
« Last Edit: Today at 11:26:58 AM by FOL »
Logged
Quote
Resolute and Industrious
Grand ruler of the yellow people and the Ultimate Amiga Empire
Pages: [1]   Go Up
 

TinyPortal 2.3.1 © 2005-2023