This commit is contained in:
bnnm 2023-06-24 14:55:25 +02:00
parent e9df576d51
commit 46efa7c044
5 changed files with 10 additions and 7 deletions

View File

@ -146,6 +146,7 @@ VGMSTREAM* init_vgmstream_bnk_sony(STREAMFILE* sf) {
break;
case 0x1a: /* Demon's Souls (PS5) */
case 0x23: /* The Last of Us (PC) */
default:
vgm_logi("BNK: unknown version %x (report)\n", sblk_version);

View File

@ -479,7 +479,7 @@ static int _init_vgmstream_ogg_vorbis_tests(STREAMFILE* sf, ogg_vorbis_io_config
}
}
/* "Ultramarine3" (???) */
/* .um3: Ultramarine / Bruns Engine files */
if (check_extensions(sf,"um3")) {
if (!is_id32be(0x00,sf, "OggS")) {
ovmi->decryption_callback = um3_ogg_decryption_callback;

View File

@ -1,7 +1,7 @@
#include "meta.h"
#include "../coding/coding.h"
/* OGV - .ogg container (not related to ogv video) [Bloody Rondo (PC)] */
/* OGV - .ogg container (not related to ogv video) [Bloody Rondo (PC), Shinigami no Testament (PC)] */
VGMSTREAM* init_vgmstream_ogv_3rdeye(STREAMFILE* sf) {
uint32_t subfile_offset, subfile_size;

View File

@ -191,11 +191,11 @@ static int read_fmt(int big_endian, STREAMFILE* sf, off_t offset, riff_fmt_chunk
break;
#ifdef VGM_USE_MPEG
case 0x0055: /* MP3 [Bear in the Big Blue House: Bear's Imagine That! (PC)] (official) */
case 0x0055: /* MP3 [Bear in the Big Blue House: Bear's Imagine That! (PC), Eclipse (PC)] (official) */
fmt->coding_type = coding_MPEG_custom;
/* some oddities, unsure if part of standard:
* - block size is 1 (in mono)
* - bps is 16
* - bps is 16 for some games
* - extra size 0x0c, has channels? and (possibly) approx frame size */
break;
#endif

View File

@ -79,6 +79,8 @@ static int lz4mg_decompress(lz4mg_stream_t* strm) {
int src_pos = 0;
uint8_t next_len, next_val;
/* MSVC 64 19.30+ has a /O2 bug where some states aren't handled properly unless a fallthrough is used.
* Seems related to src_pos and doesn't seem fixed by using sub-functions or avoiding gotos. */
while (1) {
/* mostly linear state machine, but it may break anytime when reaching dst or src
@ -154,7 +156,7 @@ static int lz4mg_decompress(lz4mg_stream_t* strm) {
} while (next_len == LZ4MG_VARLEN_CONTINUE);
ctx->state = SET_MATCH;
// Falthrough for MSVC
//break; // Falthrough for MSVC
case SET_MATCH:
ctx->match_len += LZ4MG_MIN_MATCH_LEN;
@ -164,7 +166,7 @@ static int lz4mg_decompress(lz4mg_stream_t* strm) {
ctx->match_pos = LZ4MG_WINDOW_SIZE + ctx->match_pos;
ctx->state = COPY_MATCH;
// Fallthrough for MSVC
//break; // Fallthrough for MSVC
case COPY_MATCH:
while (ctx->match_len > 0) {