Comments (5)
Hey muff1n1634,
thanks for pointing out the bug. we were not made aware this was in there.
sadly there are many forks of libogc that have fixes like this, but never upstream them (due to not knowing/thinking about it, not caring or even not wanting to).
we won't be cherry picking from said forks, as it would make the git history and even greater mess then it already is.
i will, however, look at fixing this.
is there any code you can supply to test this with? i have no knowledge of how this all works haha
from libogc.
basic example that just inits and deinits aesndlib
#include <stdio.h>
#include <gccore.h>
#include <wiiuse/wpad.h>
#include <aesndlib.h>
GXRModeObj * rmode;
void * xfb;
WPADData * wm0;
AESNDPB * voice;
int main(void)
{
// standard setup stuff
WPAD_Init();
wm0 = WPAD_Data(WPAD_CHAN_0);
VIDEO_Init();
rmode = VIDEO_GetPreferredMode(NULL);
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
VIDEO_Configure(rmode);
VIDEO_SetNextFramebuffer(xfb);
VIDEO_SetBlack(false);
VIDEO_Flush();
VIDEO_WaitVSync();
if (rmode->viTVMode & VI_NON_INTERLACE)
VIDEO_WaitVSync();
CON_Init(xfb,
20, 20,
rmode->fbWidth, rmode->xfbHeight,
rmode->fbWidth * VI_DISPLAY_PIX_SZ);
printf("\x1b[2;0H");
printf("I am a message\n");
// AESND_Init()
printf("calling AESND_Init()...\n");
AESND_Init();
printf("AESND_Init() called\n");
[[maybe_unused]] loop:
while (true)
{
WPAD_ScanPads();
wm0 = WPAD_Data(WPAD_CHAN_0);
if (wm0->btns_d & WPAD_BUTTON_HOME)
{
printf("Exiting\n");
goto exit;
}
VIDEO_WaitVSync();
}
exit:
// AESND_Reset()
printf("AESND_Reset()...\n");
AESND_Reset(); // execution hangs here with an unpatched aesndlib
printf("aesndlib was reset\n"); // this statement is never reached in that case
return 0;
}
from libogc.
while adding a comment to explain the change, i did notice that some earlier lines did this version of the comparison (lri
/cmp
vs cmpi
):
lri $acc0.m,#0xcdd1
cmp
jeq sys_commands
lri $acc0.m,#0xface
cmp
jne wait_commands
it seems the bug was avoided with these lines; perhaps the case with 0xdead
was overlooked?
from libogc.
it is possible. one off cases are often a case of being overlooked
from libogc.
as mentioned, this is now fixed. thanks for reporting and pointing out the fix!
from libogc.
Related Issues (20)
- net_getsockopt, net_getsockname, and struct pollfd not implemented HOT 4
- WPAD: Unable to read any Motion Plus data from the Wiimote HOT 3
- Card_Create() fails when game share filename prefixes HOT 2
- Wii MotionPlus being an expansion lead to issues with other expansions. HOT 1
- Ubuntu 21.04 Error: unknown type name 'BOOL' 13 | BOOL MP3Player_IsPlaying(void); HOT 2
- ogc_card_writepage() incorrectly calculates offset after block 1024 HOT 2
- GX_SetDispCopyDst takes a `ht` argument, however it is not used in the function. HOT 4
- Get track location in MP3Player? HOT 2
- Error when compiling with strict error reporting HOT 4
- DSP task code incorrectly sets flags instead of state in one case HOT 1
- Debug spins after hitting break point and trying to continue HOT 2
- SYSCONF's IPL.CB should be signed, but leads to other issues HOT 15
- [WiiU / vWii] libogc may mistakenly mount WiiU's USB storage drive when multiple USB drives are connected HOT 8
- gctypes.h:9:10: fatal error: 'stdbool.h' file not found HOT 1
- GameCube: printf() does not work properly HOT 7
- PAD_ScanPads() reports GameCube controller continuously connecting and disconnecting HOT 5
- Uncalibrated accelerometer data from the Nunchuck
- Stereo audio output plays with swapped channels HOT 8
- asndlib 2.6.0 has no sound on dolphin (DSP HLE) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libogc.