dMZX Forums: 3DS: intermittent audio crashes, likely Tremor-related -> Archived MegaZeux Bugs -> Tracker

Jump to content

Report ID 786 Title 3DS: intermittent audio crashes, likely Tremor-related
Product Archived MegaZeux Bugs Status Fixed (Severity 5 - Critical)
Version 2.92 Fixed in 2.92f
Introduced In Version 2.91Operating System Nintendo 3DS

Page 1 of 1
  • Cannot start a new Issue
  • Closed Issue This issue is locked

Report ID #786: 3DS: intermittent audio crashes, likely Tremor-related

#1 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 21 August 2019 - 12:26 AM

Games using ogg vorbis music tend to crash MZX after several music changes. I've only encountered this specifically when the current music changes i.e. not with sound effects, though I wouldn't count them out. The crashes disappear when disabling music/samples globally and in builds with vorbis disabled, and I've yet to replicate this crash with mods, rads, or wavs. The number of attempts it takes to cause a crash varies, but it typically happens very quickly while rapidly switching between different oggs.

Info from the crash dumps indicate a function in libctru's synchronization.c being the source of the crash but MZX doesn't use that function directly (and despite fixing some audio lock misuse this issue is unaffected). This needs to be actually debugged when I get a chance.

Finally, when the only 3DS-specific hack in the vorbis loader is commented out (setvbuf), instead of crashing MZX will just hang the system.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository


Page 1 of 1  
  • Cannot start a new Issue
  • Closed Issue This issue is locked

Replies (1 - 7)

#2 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 24 August 2019 - 06:07 AM

Updating status to: Confirmed

This seems to be (at least) three different crashes with various causes.

The first happens in the main thread and can be replicated by loading xx̊y and rapidly entering/leaving the house repeatedly (this loads an OGG and immediately sets MOD_POSITION).

Thread 1 received signal SIGSEGV, Segmentation fault.
0x001c83b4 in res2_inverse ()
(gdb) bt
#0  0x001c83b4 in res2_inverse ()
#1  0x001c8744 in mapping0_inverse ()
#2  0x001c0560 in _fetch_and_process_packet.constprop.10 ()
#3  0x001c2028 in ov_pcm_seek ()
#4  0x0018e4cc in audio_set_module_position (pos=119811)
    at src/audio/audio.c:656
#5  0x0010f8cc in set_counter (mzx_world=0x220c10 <mzx_world>,
    name=0x8007c58 "MOD_POSITION", value=119811, id=5) at src/counter.c:3719
#6  0x001461e0 in run_robot (ctx=ctx@entry=0x817cf50, id=id@entry=5,
    x=<optimized out>, x@entry=7, y=<optimized out>, y@entry=0)
    at src/run_robot.c:1529
#7  0x001221e8 in update_board (ctx=0x817cf50, ctx@entry=0x0)
    at src/game_update_board.c:138
#8  0x00120adc in update_world (ctx=0x0, ctx@entry=0x817cf50,
    is_title=<optimized out>) at src/game_update.c:717
#9  0x001184bc in game_draw (ctx=0x817cf50) at src/game.c:432
#10 game_draw (ctx=0x817cf50) at src/game.c:404
#11 0x00107a10 in core_draw (root=0x800e6f0) at src/core.c:713
#12 core_run (root=root@entry=0x800e6f0) at src/core.c:1014
#13 0x001010c4 in real_main (argc=<optimized out>, argc@entry=1,
    argv=<optimized out>, argv@entry=0x8000000) at src/main.c:303
#14 0x00163bcc in main (argc=1, argv=0x8000000) at arch/3ds/platform.c:149


The second happens in the audio thread and is likely related to an invalid call to ogg_stream_clear performed when ov_raw_seek fails. This is a bug that was fixed in vorbis but seems to not have been ported to tremor.

#0  0x001d00b4 in _free_r ()
#1  0x001caab0 in ogg_stream_clear ()
#2  0x001c0f18 in ov_raw_seek ()
#3  0x00191b7c in vorbis_mix_data (a_src=0x807ace0, buffer=0x8018bc0,
    len=4096) at src/audio/audio_vorbis.c:104
#4  0x0018dfb0 in audio_callback (stream=0x3028ac00, len=4096)
    at src/audio/audio.c:258
#5  0x00166718 in ndsp_callback (dud=<optimized out>) at arch/3ds/audio.c:40


The third happens in the audio thread when an ogg sample ends and its stream is destructed.

#0  0x001d0278 in _free_r ()
#1  0x001c6234 in vorbis_book_clear ()
#2  0x001c3794 in vorbis_info_clear ()
#3  0x001c08fc in ov_clear ()
#4  0x00191b28 in vorbis_destruct (a_src=0x9102fc8)
    at src/audio/audio_vorbis.c:205
#5  0x0018dfc4 in audio_callback (stream=0x3028ac00, len=4096)
    at src/audio/audio.c:263


These crashes still occur when loading the ogg to memory and initializing the ogg with ov_open_callbacks, so the filesystem doesn't seem to be (directly) to blame. However, they became noticeably less frequent. I've had no luck reproducing any of them in the Wii port (which also uses tremor) or with Linux builds configured to use tremor.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#3 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 01 October 2020 - 09:27 AM

I built libvorbis 1.3.7 for the 3DS just to compare. The second and third crashes in the post above appear to be gone entirely.

This crash is reproducible by loading xx̊y and repeatedly leaving and entering the house at the start. Appears to be the same or a similar crash from the fraction of usable backtrace I got.
#0  0x0010f508 in vorbis_book_decodevv_add ()
#1  0x00119cf4 in res2_inverse ()
#2  0x00119b5c in _encodepart ()
#3  0x00000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


This crash has happened for me exclusively when destructing the primary stream while playing Bee Simulator 2019 Pro. Either OGG will do it.
#0  0x00108eac in vorbis_synthesis_halfrate_p ()
#1  0x0010152c in _fetch_and_process_packet.constprop.1 ()
#2  0x00101bc8 in ov_read_filter.part ()
#3  0x080fb218 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


Note: most OGGs sound broken when played by libvorbis on the 3DS and I don't know why. Notably lol.ogg from Bee Simulator 2019 Pro, which was encoded by Lancer-X with AoTuV at -q-2 something like 14 years ago, plays fine (this is the only one I've found so far that does).
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#4 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 01 October 2020 - 10:12 PM

Updating Introduced In Version to: 2.91

Full backtrace for the first libvorbis crash built with -O1 -g.
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00116144 in res2_inverse (vb=0x0, vl=0x8119100, in=0x20,
    nonzero=<optimized out>, ch=2) at res0.c:836
836               if(info->secondstages[partword[l][k]]&(1<<s)){
(gdb) bt full
#0  0x00116144 in res2_inverse (vb=0x0, vl=0x8119100, in=0x20,
    nonzero=<optimized out>, ch=2) at res0.c:836
        partvals = 59
        partwords = 30
        partword = 0x20
        i = 0
        k = 0
        l = <optimized out>
        s = 134680204
        look = 0x8119100
        info = 0x81590e0
        samples_per_partition = <optimized out>
        partitions_per_word = <optimized out>
        max = <optimized out>
        end = <optimized out>
        n = <optimized out>
#1  0x0011666c in mapping0_inverse (vb=0x8070e88, l=0x82104f0)
    at mapping0.c:748
        ch_in_bundle = <optimized out>
        vd = <optimized out>
        vi = 0x80a0868
        ci = 0x8218d30
        b = 0x8043f90
        info = 0x82104f0
        i = 0
        j = <optimized out>
        n = 2048
        pcmbundle = 0x80075b8
        zerobundle = 0x80075b0
        nonzero = <optimized out>
        floormemo = 0x80075a0
#2  0x00106fec in vorbis_synthesis (vb=0x8070e88, vb@entry=0x8070e18,
    op=op@entry=0x8007640) at synthesis.c:87
        vd = <optimized out>
        b = <optimized out>
        vi = <optimized out>
        ci = <optimized out>
        opb = 0x8070e8c
        type = <optimized out>
        mode = <optimized out>
        i = <optimized out>
#3  0x00100c4c in _fetch_and_process_packet (vf=vf@entry=0x8070c38,
    op_in=op_in@entry=0x0, readp=readp@entry=1, spanp=spanp@entry=1)
    at vorbisfile.c:709
        op = {packet = 0x804d286 "▒▒▒\034\037▒\377\037\200", bytes = 332,
          b_o_s = 0, e_o_s = 0, granulepos = -1, packetno = 26}
        op_ptr = 0x8007640
        result = <optimized out>
        granulepos = -1
        hs = 136417876
        og = {header = 0x8070e18 "", header_len = 136416560,
          body = 0x100 <error: Cannot access memory at address 0x100>,
          body_len = 256}
#4  0x00103218 in ov_pcm_seek (vf=0x8070c38, pos=<optimized out>)
    at vorbisfile.c:1768
        target = 768
        samples = 0
        hs = 0
        thisblock = <optimized out>
        lastblock = <optimized out>
        ret = 0
#5  0x001a9d7c in audio_set_module_position (pos=1271811)
    at src/audio/audio.c:658
No locals.
#6  0x00128878 in set_counter (mzx_world=0x2336ec <mzx_world>,
    name=0x8007c20 "MOD_POSITION", value=1271811, id=12) at src/counter.c:3759
        counter_list = 0x233a60 <mzx_world+884>
        fdest = <optimized out>
        cdest = <optimized out>
        next = 0
#7  0x0015e430 in run_robot (ctx=ctx@entry=0x8162d80, id=id@entry=12,
    x=<optimized out>, x@entry=18, y=<optimized out>, y@entry=0)
    at src/run_robot.c:1631
        value = <optimized out>
        dest_string = 0x8118042 "j\fjustentered"
        src_string = 0x81183dd "\006LOCAL"
        src_buffer = "$\000\000_NAME\000\000\000ldB\000\000:5,Facing:1,Frame:2\000U\377\377\000\377UU\000\377U\377\000\377\377U\000\377\377\377\000h`\b\b(`\b\b▒_\b\b▒_\b\bh_\b\b(_\b\b▒^\b\b▒^\b\bh^\b\b(^\b\b▒]\b\b▒]\b\bh]\b\b(]\b\b▒\\\b\b▒\\\b\bh\\\b\b(\\\b\b▒[\b\b▒[\b\b\b;&\b\b▒\000\000ME\000\000▒\026\000\000▒▒\t\b\200▒\t\b@▒\t\b\000▒\t\b▒▒\t\b\200▒\t\b@▒\t\b\000▒\t\b▒▒\t\b\200▒\t\b@▒\t\b\000▒\t\b"...
        dest_buffer = "MOD_POSITION\000\000homeworldB.ogg*\000\000\000\000▒\000\b▒\025#\000\030\036#\000\000\060▒\037\004\000\000\000▒q\033\000h\b\n\b▒\025#\000\030\036#\000\000\060▒\037\000\000\000\000▒q\033\000@t\004\b▒\025#\000\210\025#\000\000\060▒\037\000\000\000\000▒q\033\000\000▒\000\b▒\025#\000\000\000\000\000▒▒\035\000▒6#\000\060v\031\b▒6#\000\064▒\027\000\000\000\000\000INE_ROBOTS\000\000e1.pal\000\b\a\000\000\000ؔ\033\000\060▒'\000\005\000\000\000\005\000\000\000\020}\000\b\004\000\000\000ؔ\033\000\v\000\000\000▒▒'\000\000\000"...
        mzx_world = <optimized out>
        src_board = 0x0
        cur_robot = 0x828dd30
        cmd = <optimized out>
        lines_run = <optimized out>
        gotoed = 0
        old_pos = 135893416
        last_label = 134249504
        _bl = {1, 0, 1, 0}
        program = 0x8263ae0 "\b;&\b\b▒"
        cmd_ptr = 0x8118040 "\377\016j\fjustentered"
        done = 0 '\000'
        update_blocked = 208 '▒'
        first_cmd = <optimized out>
        level_id = <optimized out>
        level_param = <optimized out>
        level_color = <optimized out>
        level_under_id = <optimized out>
        board_width = <optimized out>
        board_height = <optimized out>
#8  0x00139058 in update_board (ctx=0x8162d80, ctx@entry=0x0)
    at src/game_update_board.c:138
        mzx_world = 0x2336ec <mzx_world>
        i = <optimized out>
        x = <optimized out>
        y = 0
        level_offset = 18
        src_board = <optimized out>
        cur_robot = <optimized out>
        level_id = <optimized out>
        level_param = <optimized out>
        level_color = <optimized out>
        level_under_id = <optimized out>
        level_under_color = <optimized out>
        board_width = <optimized out>
        board_height = <optimized out>
        slow_down = <optimized out>
        current_id = <optimized out>
        current_param = 12 '\f'
        current_color = <optimized out>
        current_under_id = <optimized out>
        update_done = <optimized out>
#9  0x0013794c in update_world (ctx=0x0, ctx@entry=0x8162d80,
    is_title=<optimized out>) at src/game_update.c:723
        mzx_world = 0x2336ec <mzx_world>
#10 0x0012ed64 in game_draw (ctx=0x8162d80) at src/game.c:457
        game = 0x8162d80
        conf = 0x2353a8 <user_conf>
        mzx_world = 0x2336ec <mzx_world>
#11 0x00120294 in core_draw (root=0x8015e10) at src/core.c:717
        ctx = <optimized out>
        ctx_data = 0x804b968
        ret = 0 '\000'
        sub_data = <optimized out>
        sub = <optimized out>
        ctx = <optimized out>
        ctx_data = <optimized out>
        sub_data = <optimized out>
        sub = <optimized out>
        ret = <optimized out>
#12 core_run (root=root@entry=0x8015e10) at src/core.c:1052
        conf = 0x8162d80
        ctx = <optimized out>
        initial_stack_size = 0
        start_ticks = 134250408
        delta_ticks = <optimized out>
        total_ticks = <optimized out>
        need_update_screen = <optimized out>
#13 0x00118ecc in real_main (argc=<optimized out>, argc@entry=1,
    argv=<optimized out>, argv@entry=0x8000000) at src/main.c:315
        _backup_argv = {0x21b0dc "/3ds/megazeux/megazeux"}
        err = 1
        core_data = 0x8015e10
        conf = <optimized out>
        mzx_world = {active = 1,
          name = "~0@f xx~4y ", '\000' <repeats 13 times>, version = 603,
          status_counters_shown = {'\000' <repeats 14 times>,
            '\000' <repeats 14 times>, '\000' <repeats 14 times>,
            '\000' <repeats 14 times>, '\000' <repeats 14 times>,
            '\000' <repeats 14 times>}, keys = '\177' <repeats 16 times>,
          blind_dur = 0, firewalker_dur = 0, freeze_time_dur = 0,
          slow_time_dur = 0, wind_dur = 0, pl_saved_x = {0, 0, 0, 0, 0, 0, 0,
            0}, pl_saved_y = {0, 0, 0, 0, 0, 0, 0, 0}, pl_saved_board = {0,
            0, 0, 0, 0, 0, 0, 0}, saved_pl_color = 27, under_player_id = 0,
          under_player_color = 7, under_player_param = 0, mesg_edges = 1,
          scroll_base_color = 143, scroll_corner_color = 135,
          scroll_pointer_color = 128, scroll_title_color = 143,
          scroll_arrow_color = 142,
          real_mod_playing = "xxydata/m/xxy-homeworldB.ogg", '\000' <repeats 483 times>, max_samples = -1, smzx_message = 1, edge_color = 0,
          first_board = 3, endgame_board = 255, death_board = 255,
          endgame_x = 0, endgame_y = 0, game_over_sfx = 1, death_x = 0,
          death_y = 0, starting_lives = 7, lives_limit = 99,
          starting_health = 100, health_limit = 200, enemy_hurt_enemy = 0,
          clear_on_exit = 0, only_from_swap = 0, counter_list = {
            num_counters = 797, num_counters_allocated = 1024,
            counters = 0x82529b8, hash_table = 0x8103590}, string_list = {
            num_strings = 5835, num_strings_allocated = 8192,
            strings = 0x82435b8, hash_table = 0x819aab0},
          player_restart_x = 0, player_restart_y = 0, num_sprites = 256,
          num_sprites_allocated = 0, sprite_num = 0, sprite_list = 0x808a418,
          active_sprites = 2, sprite_y_order = 0, collision_count = 0,
          collision_list = 0x82071b0, multiplier = 10000, divider = 10000,
          c_divisions = 360, fread_delimiter = 0, fwrite_delimiter = 0,
          bi_shoot_status = 1, bi_mesg_status = 0,
          output_file_name = "\000ontinue\000ettings", '\000' <repeats 495 times>, output_file = 0x0,
          input_file_name = "\000ontinue\000ettings\000ion", '\000' <repeats 491 times>, input_file = 0x0, input_is_dir = 0 '\000', input_directory = {
            path = "xxydata/t\000it", '\000' <repeats 499 times>,
            opaque = 0x0, entries = 0, pos = 0}, temp_input_pos = 0,
          temp_output_pos = 0, commands = 10000000, commands_stop = 2000000,
          vlayer_size = 10240, vlayer_width = 160, vlayer_height = 64,
          vlayer_chars = 0x80efa90 "",
          vlayer_colors = 0x81cbc58 '\b' <repeats 200 times>...,
          num_boards = 73, num_boards_allocated = 73, board_list = 0x81ce460,
          current_board = 0x8197630, current_board_id = 45,
          temporary_board = 0, global_robot = {world_version = 603,
            program_source_length = 0, program_source = 0x0,
            program_bytecode_length = 8047,
            program_bytecode = 0x81d0530 "\377\rj\vjustloaded",
            robot_name = "loader\000\000\000\000\000\000\000\000",
            robot_char = 2 '\002', cur_prog_line = 0, pos_within_line = 0,
            robot_cycle = 0, cycle_count = 0, bullet_type = 1 '\001',
            is_locked = 0 '\000', can_lavawalk = 0 '\000',
            can_goopwalk = 0 '\000', walk_dir = IDLE, last_touch_dir = IDLE,
            last_shot_dir = IDLE, xpos = -1, ypos = -1, compat_xpos = -1,
            compat_ypos = -1, status = 2 '\002', used = 1 '\001',
            loop_count = 25, num_labels = 29, label_list = 0x81d2640,
            stack_size = 4, stack_pointer = 0, stack = 0x804ba48, local = {
              793, 788, 1, 0, 77, 0 <repeats 26 times>, 38}},
          custom_sfx_on = 0, custom_sfx = '\000' <repeats 3449 times>,
          player_x = 0, player_y = 0, player_shoot_cooldown = 0,
          target_where = TARGET_NONE, target_board = 45, target_x = 0,
          target_y = 0, target_id = SPACE, target_color = 0,
          target_d_id = SPACE, target_d_color = 0, bomb_type = 1,
          dead = 0 '\000', current_cycle_frozen = 0 '\000',
          current_cycle_odd = 1 '\001', player_moved = 1 '\001',
          player_was_on_entrance = 0 '\000', was_zapped = 0 '\000',
          key_up_delay = 0, key_down_delay = 0, key_right_delay = 0,
          key_left_delay = 0, first_prefix = 0, mid_prefix = 0,
          last_prefix = 0, special_counter_return = FOPEN_NONE,
          robotic_save_type = SAVE_NONE,
          robotic_save_path = '\000' <repeats 511 times>,
          change_game_state = CHANGE_STATE_NONE, mzx_speed = 3,
          lock_speed = 1, joystick_simulate_keys = 1 '\001',
          editing = 0 '\000', debug_mode = 0 '\000', raw_world_info = 0x0,
          raw_world_info_size = 0, help_file = 0x0,
          update_done = 0x80267e0 "", update_done_size = 10000}
#14 0x0017f43c in main (argc=1, argv=0x8000000) at arch/3ds/platform.c:149
        _argv0 = "/3ds/megazeux/mzxrun.3dsx"
        _argv = {0x230594 <_argv0.18835> "/3ds/megazeux/mzxrun.3dsx"}


"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#5 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 01 October 2020 - 10:18 PM

Full backtrace for the second libvorbis crash (-O1 -g).
Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 267]
0x00107244 in vorbis_synthesis_halfrate_p (vi=0x804a5b0) at synthesis.c:178
178       return ci->halfrate_flag;
(gdb) bt full
#0  0x00107244 in vorbis_synthesis_halfrate_p (vi=0x804a5b0)
    at synthesis.c:178
        ci = 0x0
#1  0x00100bcc in _fetch_and_process_packet (vf=vf@entry=0x8088130,
    op_in=op_in@entry=0x0, readp=readp@entry=1, spanp=spanp@entry=1)
    at vorbisfile.c:696
        hs = <optimized out>
        og = {header = 0x8042680 "OggS", header_len = 113,
          body = 0x80426f1 "▒mz▒▒e▒▒-3▒▒[9▒▒F▒▒sp=▒▒+▒\200▒▒\004\001|▒▒",
          body_len = 4118}
#2  0x00103cfc in ov_read_filter (vf=vf@entry=0x8088130,
    buffer=buffer@entry=0x8089b60 "▒▒▒▒▒▒▒\024", length=length@entry=744,
    bigendianp=bigendianp@entry=0, word=2, word@entry=1024, sgned=1,
    sgned@entry=1758232, bitstream=0x8025b3c, bitstream@entry=0x2,
    filter=filter@entry=0x0, filter_param=filter_param@entry=0x0)
    at vorbisfile.c:1977
        ret = <optimized out>
        i = <optimized out>
        j = <optimized out>
        hs = <optimized out>
        pcm = 0x8047aa0
        samples = <optimized out>
#3  0x00104150 in ov_read (vf=vf@entry=0x8088130,
    buffer=buffer@entry=0x8089b60 "▒▒▒▒▒▒▒\024", length=length@entry=744,
    bigendianp=bigendianp@entry=0, word=word@entry=2, sgned=sgned@entry=1,
    bitstream=bitstream@entry=0x8025b3c) at vorbisfile.c:2099
No locals.
#4  0x001ad418 in vorbis_mix_data (a_src=0x80880a0, buffer=0x80164e8,
    len=4096) at src/audio/audio_vorbis.c:85
        read_len = 0
        v_stream = 0x80880a0
        read_wanted = 744
        pos = 2928
        read_buffer = 0x8089b60 "▒▒▒▒▒▒▒\024"
        current_section = 0
#5  0x001a9860 in audio_callback (stream=0x30289c00, len=4096)
    at src/audio/audio.c:260
        next_astream = 0x0
        destroy_flag = <optimized out>
        current_astream = 0x80880a0
#6  0x00181f60 in ndsp_callback (dud=<optimized out>) at arch/3ds/audio.c:40
No locals.
#7  0x001b9b04 in ndspThreadMain (arg=<optimized out>)
    at /home/davem/projects/devkitpro/pacman-packages/libctru/src/libctru-2.0.0/libctru/source/ndsp/ndsp.c:435
No locals.
#8  0x001b7eb8 in _thread_begin (arg=<optimized out>)
    at /home/davem/projects/devkitpro/pacman-packages/libctru/src/libctru-2.0.0/libctru/source/thread.c:37
        t = <optimized out>
        tv = <optimized out>
#9  0x00000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#6 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 01 October 2020 - 10:55 PM

Updating status to: Awaiting Feedback
Issue fixed in: 2.92f

All 5 crashes here appear to have been fixed by GIT b2e66818. The problem was the 3DS implementation of platform_mutex_lock was using the non-blocking libctru function LightLock_TryLock instead of the blocking version LightLock_Lock. This fix probably needs to be verified by more thorough testing than what I've done, though (particularly the second tremor crash, which has been verified to be a real upstream tremor bug that hasn't been fixed but doesn't happen anymore when I test for it).
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#7 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 22 September 2023 - 06:24 PM

Updating status to: Fixed

After having done quite a bit of testing with the new VFS, I have encountered no audio-related crashes in the 3DS port. Closing.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#8 User is offline  
Terryn 

  • ******
  • Group: DigiStaff
  • Posts: 2,961
  • Joined: 12-October 00
  • Gender:Male

Posted 01 January 2024 - 03:01 PM

Moving to: Archived MegaZeux Bugs


Page 1 of 1
  • Cannot start a new Issue
  • Closed Issue This issue is locked

1 User(s) are reading this issue
1 Guests and 0 Anonymous Users


Powered by IP.Tracker 1.3.2 © 2024  IPS, Inc.