Commit graph

455 commits

Author SHA1 Message Date
Bobby Smiles
68dfb41b80 Move align function to hle.h 2014-01-18 15:17:08 +01:00
Bobby Smiles
3921889f3b Share some ADPCM bits as well. 2014-01-18 15:14:46 +01:00
Bobby Smiles
1b713d92a1 Share RESAMPLE_LUT between alist based ucodes and musyx ucodes.
I also corrected the size of RESAMPLE_LUT which was bigger than needed.
2014-01-18 15:04:00 +01:00
Bobby Smiles
350360de46 Remove some comments. 2014-01-18 14:50:22 +01:00
Bobby Smiles
3bd4166cae Refactor alist setbuff commands. 2014-01-18 14:47:05 +01:00
Bobby Smiles
f1707b5d45 Refactor alist setvol commands. 2014-01-18 14:43:34 +01:00
Bobby Smiles
7fdab9701c Refactor alist loadadpcm commands. 2014-01-18 14:35:24 +01:00
Bobby Smiles
9e00afd7e2 Remove uneeded macro. 2014-01-18 14:26:56 +01:00
Bobby Smiles
df518b6317 Refactor alist adpcm commands. 2014-01-18 14:20:49 +01:00
Richard Goedeken
cb8de21803 Merge pull request #6 from bsmiles32/fix_normal_task_dispatching
Fix regression introduced by commit 488e73c
2014-01-17 22:36:49 -08:00
Bobby Smiles
6f2fd295cc Refactor alist resample commands. 2014-01-18 03:31:08 +01:00
Bobby Smiles
3584be1d1c Refactor alist clear commands. 2014-01-18 03:29:02 +01:00
Bobby Smiles
39f854b3e1 Refactor alist load/save commands. 2014-01-18 01:51:07 +01:00
Bobby Smiles
95ca916c49 Refactor alist move commands. 2014-01-18 01:33:40 +01:00
Bobby Smiles
09e166e4f9 Refactor alist mix commands. 2014-01-18 01:19:44 +01:00
Bobby Smiles
6b54565dde Refactor alist interleave commands. 2014-01-18 01:02:27 +01:00
Bobby Smiles
03a5dbce46 Rename inst{1,2} to w{1,2}. 2014-01-17 22:27:52 +01:00
Bobby Smiles
8cc0ddd027 Remove uneeded headers. 2014-01-17 22:23:57 +01:00
Bobby Smiles
d7cd56382d Move MP3 declaration to ucode3. 2014-01-17 22:09:03 +01:00
Bobby Smiles
788f21043a Move each alist_process_* to their respective file. 2014-01-17 22:04:33 +01:00
Bobby Smiles
e54e1cbeaa Pack each ucode state into a local structure. 2014-01-17 21:47:35 +01:00
Bobby Smiles
51d2dd95e6 hleMixerWorkArea doesn't need to be global. 2014-01-17 21:14:24 +01:00
Bobby Smiles
2f7e184038 Move BufferSpace to alist.c and alist_internal.h 2014-01-17 21:08:47 +01:00
Bobby Smiles
c02c0b7af5 Improve audio ucode identification.
Previously, alist based ucodes were classified as either ABI1, ABI2 or ABI3.
This classification is too simple to take into account all versions/revisions
that really exist in the wild. Furthermore, it prevents from implementing some
version/revision specific behaviors.

There are indeed 3 big "families" of alist based ucodes:
-ABI1 (or audio) which seems to be the very first version developed.
It was distributed to 3rd party devs and is the most common.
2 minor revisions were made by Rare for GoldenEye, BlastCorp and DiddyKongRacing.

-ABI3 (or naudio) which is the later revision.
It was as distributed to 3rd party devs as well and is the second most common.
4 revisions were made by Rare for BanjoKazooie, DonkeyKong, BanjoTooie, JetForceGemini,
MickeySpeedway, PerfectDark and ConkerBadFurDay.

-ABI2 (or what I'd call NEAD) which was Nintendo Entertainment Analysis & Development exclusive.
There are many versions/revisions in this category (almost one for each game they developed).

This commit try to better identify audio ucodes.
2014-01-17 19:51:53 +01:00
Bobby Smiles
f910e3b4ee Fix regression introduced by commit 488e73c 2014-01-17 19:18:55 +01:00
Richard Goedeken
4a00ea8fb2 Merge pull request #5 from bsmiles32/master
Consolidate memory accesses
2014-01-16 16:52:35 -08:00
Bobby Smiles
99c46ef83f Prefer memory access primitives over struct OSTask_t.
Structure fields alignment is compiler dependent and therefore can be fragile.
We replace all occurences of OSTask_t structure by memory access primitives.
2014-01-14 23:19:47 +01:00
Bobby Smiles
abad8fca0c Use dram access primitives in alist.c 2014-01-14 23:19:47 +01:00
Bobby Smiles
488e73cf0b Use dram access primitives for remaining cases in main.c 2014-01-14 23:19:47 +01:00
Bobby Smiles
bdb4733f33 Rewrite audio ucode identification using the new RDRAM access primitives. 2014-01-14 23:19:47 +01:00
Bobby Smiles
757a12729f Remove duplication of memory access functions between jpeg and musyx modules. 2014-01-14 23:19:47 +01:00
Richard Goedeken
109ce2817f Merge pull request #4 from ecsv/musyx
Implement SFX stage for musyx ucode (on nocpp branch)
2014-01-05 16:38:48 -08:00
Richard Goedeken
7c28bc8467 Merge pull request #3 from ecsv/nocpp
Add additional cleanup changes
2014-01-05 16:38:06 -08:00
Bobby Smiles
c7bec87096 Implement SFX stage for musyx ucode.
With this patch, delay-based effects should work.
Basically, the SFX stage mixes up to 8 delayed subframes together and add the
resulting subframe to left and right subframes. Furthermore, a filtered version
of this subframe is used to update the sample history.

Games that use the SFX stage include:
The World is not Enough, Tarzan, Resident Evil 2, Polaris SnowCross

Musyx ucode implementation should now be complete !
2014-01-05 23:37:23 +01:00
Sven Eckelmann
8b50f92016 Use clamp_s16 to clamp values to int16_t range 2014-01-05 10:16:35 +01:00
Sven Eckelmann
026a2089c0 Cleanup oneline if statements 2013-12-30 23:13:15 +01:00
Sven Eckelmann
1646550dba Move longer comments to separate line before the code 2013-12-30 22:10:52 +01:00
Sven Eckelmann
53c9d39c7d Fix wrong code alignment on linestart 2013-12-30 21:52:34 +01:00
Sven Eckelmann
c43d08aed9 Replace C++ comments with C comments 2013-12-30 21:52:34 +01:00
Sven Eckelmann
c1519b84d9 Remove code which only exist as comment 2013-12-30 21:52:33 +01:00
Sven Eckelmann
27e1db3691 Remove unused extern declarations 2013-12-30 21:38:20 +01:00
Sven Eckelmann
2eb0061541 Remove dead assignments 2013-12-30 20:31:46 +01:00
Sven Eckelmann
8c7c556248 Only include what each source file needs 2013-12-30 20:31:45 +01:00
Sven Eckelmann
d7cf796208 Always use standard ISO C99 datatypes for sized variables 2013-12-30 20:31:45 +01:00
Sven Eckelmann
ce771d1026 Move shared MP3 symbol definition to header 2013-12-30 20:31:45 +01:00
Sven Eckelmann
1d4cd7db1d Move all extern definitions to the header files 2013-12-30 20:31:45 +01:00
Sven Eckelmann
0437601e5f Mark only locally used symbols as static 2013-12-30 20:31:45 +01:00
Sven Eckelmann
a9cdda0ae3 Add missing includes for global declaration 2013-12-30 20:31:45 +01:00
Sven Eckelmann
3930a84625 Fix function declaration for functions without parameter 2013-12-30 20:31:45 +01:00
Sven Eckelmann
6e12c395f3 Don't mix declaration and code
C90 only supports variable declaration at the beginning of a scope. Not doing
so will break builds in MSVC.
2013-12-30 18:12:28 +01:00