aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2022-10-16 23:58:05 +0200
committerspicyjpeg <thatspicyjpeg@gmail.com>2022-10-16 23:58:05 +0200
commit8770122c970eeedb145ee903e2243b7d4a18605b (patch)
tree40c5c63ebd9b10bc624050215ef566a198106f34 /examples
parent03434a230d8c3ed2e32a3885128e05e42ee11769 (diff)
downloadpsn00bsdk-8770122c970eeedb145ee903e2243b7d4a18605b.tar.gz
Fix sound/spustream, update README and changelog
Diffstat (limited to 'examples')
-rw-r--r--examples/README.md11
-rw-r--r--examples/io/pads/spi.c6
-rw-r--r--examples/sound/spustream/main.c12
3 files changed, 16 insertions, 13 deletions
diff --git a/examples/README.md b/examples/README.md
index b63b2a9..ade94b0 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -24,7 +24,8 @@ Additional information may be found in the source code of each example.
| [`io/pads`](./io/pads) | Demonstrates reading controllers via low-level access | EXE | 3 |
| [`io/system573`](./io/system573) | Konami System 573 (PS1-based arcade board) example | CD | |
| [`lowlevel/cartrom`](./lowlevel/cartrom) | ROM firmware for cheat devices written using GNU GAS | ROM | 4 |
-| [`mdec/mdecimage`](./mdec/mdecimage) | Displays a (raw) MDEC format image using libpsxpress | EXE | |
+| [`mdec/mdecimage`](./mdec/mdecimage) | Displays a (raw) MDEC format image | EXE | |
+| [`mdec/strvideo`](./mdec/strvideo) | Plays a .STR video file using the MDEC | CD | 1 |
| [`sound/spustream`](./sound/spustream) | Custom (non XA) CD-ROM audio streaming using the SPU | CD | |
| [`sound/vagsample`](./sound/vagsample) | Demonstrates playing VAG sound files using the SPU | EXE | |
| [`system/childexec`](./system/childexec) | Loading a child program and returning to parent | EXE | |
@@ -35,9 +36,9 @@ Additional information may be found in the source code of each example.
Notes:
-1. `cdrom/cdxa` does not come with an example XA audio file. In order to run
- this example you'll have to provide your own file and build the CD image
- manually.
+1. `cdrom/cdxa` and `mdec/strvideo` do not come with example files. In order
+ to run these examples you'll have to provide your own files and build the CD
+ image manually.
2. `demos/n00bdemo` suffers from flickering on real hardware, especially when
masking/stencil buffering is used.
3. `io/pads` seems to work on real hardware, but fails to automatically enable
@@ -84,4 +85,4 @@ are for rebuilding the examples *after* the SDK has been installed.
CD images for each example.
-----------------------------------------
-_Last updated on 2022-10-11 by spicyjpeg_
+_Last updated on 2022-10-16 by spicyjpeg_
diff --git a/examples/io/pads/spi.c b/examples/io/pads/spi.c
index 133782c..292e682 100644
--- a/examples/io/pads/spi.c
+++ b/examples/io/pads/spi.c
@@ -46,9 +46,9 @@ typedef struct _SPI_Context {
SPI_Callback callback;
} SPI_Context;
-static volatile SPI_Context _context;
-static volatile SPI_Request volatile *_current_req;
-static volatile SPI_Callback _default_cb;
+static volatile SPI_Context _context;
+static volatile SPI_Request *_current_req;
+static volatile SPI_Callback _default_cb;
/* Request queue management */
diff --git a/examples/sound/spustream/main.c b/examples/sound/spustream/main.c
index acd4f60..1fee883 100644
--- a/examples/sound/spustream/main.c
+++ b/examples/sound/spustream/main.c
@@ -181,12 +181,14 @@ void display(RenderContext *ctx) {
#define CHUNK_SIZE (BUFFER_SIZE * NUM_CHANNELS)
typedef struct {
- int lba, length, pos;
- int spu_addr, spu_pos;
- int db_active;
+ int lba, length;
+
+ volatile int pos;
+ volatile int spu_addr, spu_pos;
+ volatile int db_active;
} StreamContext;
-static volatile StreamContext str_ctx;
+static StreamContext str_ctx;
// This buffer is used by cd_event_handler() as a temporary area for sectors
// read from the CD and uploaded to SPU RAM. Due to DMA limitations it can't be
@@ -328,8 +330,8 @@ void start_stream(void) {
SPU_CH_VOL_L(1) = 0x0000;
SPU_CH_VOL_R(1) = 0x3fff;
- spu_irq_handler();
SPU_KEY_ON = CHANNEL_MASK;
+ spu_irq_handler();
}
// This is basically a variant of reset_spu_channels() that only resets the