  - name: header
    type: header
    start: 0x00
    vram: 0
    subsegments:
    - [0x0000, header, header]
  - name: boot
    type: code
    start: 0x0040
    vram: 0xA4000040
    subsegments:
    - [0x0040, asm, boot]
    - [0x0B70, bin, bootcode_font]
  - name: text
    type: code
    bss_size: 0x85E30
    start: 0x1000
    vram: 0x80000400
    subsegments:
    - [0x1000, hasm, entry] # bootloader
    - [0x1060, c, main] # rsp graphics
    - [0x11B0, pad]
    - [0x11C0, c, rsp] # rsp audio
    - [0x1A80, c, dma] # DMA transfer
    - [0x1F70, pad]
    - [0x1F80, c, dp_intro] # dp intro code
    - [0x28E0, c, memmap]
    - [0x2EC0, c, memory_main] # handles the main global pool
    - [0x3640, c, memory] # memory_pool
    - [0x3A80, c, util]
    - [0x3FB0, c] # PRES-JPEG decoder
    - [0x5580, c] # there's a split here according to PAL
    - [0x60A0, c, reset] # soft reset effect
    - [0x6430, c, controller] # controller code
    - [0x6A40, c]
    - [0x6BC0, c, 6BC0] # 
    - [0x75F0, c, stage_loader] # stage loader
    - [0x8EB0, pad]
    - [0x8EC0, c, crash_screen] # crash handler
    - [0x9D20, c, profiler]
    - [0xAF00, c, math_util]
    - [0xB130, c, hal_libc]
    - [0xB230, c, gb_tower]
    - [0xC030, c] # extra sprites loader
    - [0xC3D0, asm, exception_set] # exception functions
    - [0xC3F0, hasm, yay0] # Yay0 decoder
    - [0xC4A0, hasm, abs] # abs function
    - [0xC4B0, c, libleo/bootdisk]
    - [0xC910, hasm, ../../src/libleo/bootstrap]
    - [0xC970, c, jpegutils]
    - [0xCE80, c] #
    - [0xD470, c] #
    - [0xDDC0, c]
    - [0xE1C0, c] # load gb emulator (fragment 1)
    - [0xE570, c, gb_mbc] # gameboy memory bank controller
    - [0xE890, c] #
    - [0xF420, c] #
    - [0x11BA0, c] #  
    - [0x12D80, c] # 
    - [0x17300, c, 17300] #
    - [0x18140, c] # dp model animations
    - [0x18480, c, geo_layout] # dp model animations
    - [0x19840, c] # alternative pkm textures
    - [0x1AB70, c] # vs screen code
    - [0x1C720, c] #
    - [0x1CF30, c] # dp list code
    - [0x20330, c] # some cache cleaner
    - [0x20470, c] # dp list for UI and icons
    - [0x225A0, c] #
    - [0x22630, c] # registered pkm stats
    - [0x232C0, c, 232C0] # 
    - [0x26820, c] # save data code
    - [0x29B90, pad]
    - [0x29BA0, c] # scenary code
    - [0x2C1C0, c] # scenary cache cleaner
    - [0x2D340, c] # pkm lab pc code
    - [0x2E110, c] # stack cleaner
    - [0x2E460, c] # pkm lab pokedex code
    - [0x2FEA0, c] # minigames code
    - [0x30640, c] # gallery code
    - [0x32D10, c]
    - [0x334D0, c]
    - [0x33E30, c]
    - [0x33FE0, c]
    - [0x37370, c]
    - [0x373A0, c]  # battle code
    - [0x38BB0, c]  #
    - [0x3D140, c]  # music code
    
    # libnaudiosc. Why are there so many gaps?
    - [0x43520, c, libnaudio/n_sl]
    - [0x435B0, c, libnaudio/n_synsetpriority]
    - [0x435D0, c]  # pkm lab cries code
    - [0x45720, c]  # music code
    - [0x46680, c]  # speech code
    - [0x47AF0, c, libnaudio/n_synstopvoice]
    - [0x47B60, c, libnaudio/n_env]  # sound code
    - [0x485C0, c]  # moves code 
    - [0x48C60, c]  # move effects code
    - [0x490A0, c]  # audio functions to 0x50C00
    - [0x49190, hasm]
    - [0x49790, c]
    - [0x49BA0, c, libnaudio/n_synallocvoice]
    - [0x49DC0, c, libnaudio/n_synthesizer]
    - [0x4A360, c, libnaudio/n_synsetpan]
    - [0x4A3E0, c]
    - [0x4B940, c, 4B940]
    - [0x4BA90, c, 4BA90]
    - [0x4BDC0, c, 4BDC0]
    - [0x4CBC0, c, 4CBC0]
    - [0x4F410, c]
    - [0x4F7F0, c, libnaudio/n_synsetpitch]
    - [0x4F870, c, libnaudio/n_drvrNew]
    - [0x4FDB0, c, libnaudio/n_auxbus]
    - [0x4FE60, c, libnaudio/n_synsetfxmix]
    - [0x4FEF0, c, libnaudio/n_synaddplayer]
    - [0x4FF50, c, libnaudio/n_resample]
    - [0x50120, c, libnaudio/n_load]
    - [0x50860, c]
    - [0x50990, c, libnaudio/n_syndelete]
    - [0x509A0, c, libnaudio/n_synallocfx]
    - [0x50A00, c]
    - [0x50B40, c, libnaudio/n_synstartvoiceparam]
    - [0x50C20, c, libnaudio/n_synfreevoice]
    - [0x50CC0, c, libnaudio/n_reverb]
    - [0x51740, c]
    - [0x517A0, hasm] # yay0 audio decoder
    - [0x51850, c, libnaudio/n_save]
    - [0x518A0, c, libnaudio/n_mainbus]
    - [0x51B20, c, libnaudio/n_synsetvol]

    # libleo
    - [0x51BC0, c, libleo/readwrite]
    - [0x51C50, c, libleo/leofunc]
    - [0x520C0, c, libleo/leoint]
    - [0x52AB0, pad]
    - [0x52AC0, c, libleo/leocmdex]
    - [0x53150, c, libleo/leoread]
    - [0x53310, c, libleo/lbatobyte]
    - [0x53460, c, libleo/driverominit]
    - [0x535C0, c, libleo/leoinquiry]
    - [0x53670, c, libleo/leodiskinit]
    - [0x53710, c, libleo/readdiskid]
    - [0x53770, c, libleo/leord_diskid]
    - [0x53900, c, libleo/leomecha]
    - [0x54250, c, libleo/spdlmotor]
    - [0x54310, c, libleo/leoc2ecc]
    - [0x55400, c, libleo/setrtc]
    - [0x55570, c, libleo/leomseq_tbl]
    - [0x55720, c, libleo/leomotor]
    - [0x55810, c, libleo/leomode_sel]
    - [0x558C0, c, libleo/leord_capa]
    - [0x55960, c, libleo/leoutil]
    - [0x55BB0, c, libleo/leorezero]
    - [0x55C50, c, libleo/bytetolba]
    - [0x55DB0, c, libleo/leoreset]
    - [0x55ED0, c, libleo/leotranslat]
    - [0x56170, c, libleo/leotimer]
    - [0x56680, c, libleo/leowrite]
    - [0x567B0, c, libleo/cjcreateleomanager]
    - [0x569F0, c, libleo/leointerrupt]
    - [0x570C0, c, libleo/driveexist]
    - [0x57190, c, libleo/testunitready]
    - [0x57230, c, libleo/leotestunit]
    - [0x57270, c, libleo/readrtc]
    - [0x572D0, c, libleo/leoseek]
    - [0x57390, c, libleo/seek]

    #libultra 
    - [0x573F0, lib, libultra, piacs]
    - [0x574B0, lib, libultra, setcause]
    - [0x574C0, lib, libultra, sendmesg]
    - [0x57610, lib, libultra, stopthread]
    - [0x576D0, lib, libultra, recvmesg]
    - [0x57810, lib, libultra, setintmask]
    - [0x578B0, lib, libultra, thread]
    - [0x578F0, lib, libultra, scale]
    - [0x57990, lib, libultra, sinf]
    - [0x57B50, lib, libultra, sl]
    - [0x57C10, lib, libultra, sptask]
    - [0x57F00, lib, libultra, destroythread]
    - [0x58010, lib, libultra, ll]
    - [0x582D0, lib, libultra, exceptasm]
    - [0x58BD0, lib, libultra, bzero]
    - [0x58C70, lib, libultra, bnkf]
    - [0x58EC0, lib, libultra, gbpakcheckconnector]
    - [0x59350, lib, libultra, gbpakpower]
    - [0x59460, lib, libultra, controller]
    - [0x597A0, lib, libultra, siacs]
    - [0x59860, pad]
    - [0x598C0, lib, libultra, createthread]
    - [0x59A10, lib, libultra, contreaddata]
    - [0x59BF0, lib, libultra, setcount]
    - [0x59C00, lib, libultra, conteeplongread]
    - [0x59C90, lib, libultra, virtualtophysical]
    - [0x59D10, lib, libultra, setsr]
    - [0x59D20, lib, libultra, writebackdcache]
    - [0x59DA0, lib, libultra, initialize]
    - [0x5A0F0, lib, libultra, getsr]
    - [0x5A100, lib, libultra, gbpakinit]
    - [0x5A330, lib, libultra, pfsgetstatus]
    - [0x5A560, lib, libultra, reverb]
    - [0x5B1C0, lib, libultra, perspective]
    - [0x5B450, lib, libultra, sprawdma]
    - [0x5B4E0, lib, libultra, sirawdma]
    - [0x5B590, lib, libultra, epilinkhandle]
    - [0x5B5E0, lib, libultra, viblack]
    - [0x5B650, lib, libultra, sirawread]
    - [0x5B6A0, lib, libultra, sptaskyield]
    - [0x5B6C0, lib, libultra, lookatref]
    - [0x5BB50, lib, libultra, mtxutil]
    - [0x5BDC0, lib, libultra, visetmode]
    - [0x5BE30, lib, libultra, virepeatline]
    - [0x5BEA0, lib, libultra, pfsisplug]
    - [0x5C1E0, lib, libultra, probetlb]
    - [0x5C2A0, lib, libultra, pimgr]
    - [0x5C410, pad]
    - [0x5C420, lib, libultra, devmgr]
    - [0x5C830, lib, libultra, pirawdma]
    - [0x5C900, lib, libultra, getcount]
    - [0x5C910, lib, libultra, conteepprobe]
    - [0x5C980, lib, libultra, conteepwrite]
    - [0x5CD50, lib, libultra, getmemsize]
    - [0x5CE70, lib, libultra, contpfs]
    - [0x5D9F0, lib, libultra, seteventmesg]
    - [0x5DAB0, lib, libultra, sqrtf]
    - [0x5DAC0, lib, libultra, afterprenmi]
    - [0x5DAE0, lib, libultra, mtxcatf]
    - [0x5DCF0, lib, libultra, mtxcatl]
    - [0x5DDB0, lib, libultra, random]
    - [0x5DDE0, lib, libultra, xprintf]
    - [0x5EAA0, lib, libultra, gbpakgetstatus]
    - [0x5EC20, lib, libultra, sprintf]
    - [0x5ECA0, lib, libultra, unmaptlball]
    - [0x5ECF0, lib, libultra, epidma]
    - [0x5EDD0, lib, libultra, heapinit]
    - [0x5EE10, lib, libultra, syncprintf]
    - [0x5EE50, lib, libultra, string]
    - [0x5EEF0, lib, libultra, invaldcache]
    - [0x5EFA0, lib, libultra, createmesgqueue]
    - [0x5EFD0, lib, libultra, invalicache]
    - [0x5F050, lib, libultra, conteeplongwrite]
    - [0x5F140, lib, libultra, sp]
    - [0x5F170, lib, libultra, si]
    - [0x5F1A0, lib, libultra, translate]
    - [0x5F240, lib, libultra, jammesg]
    - [0x5F390, lib, libultra, setthreadpri]
    - [0x5F470, lib, libultra, getthreadpri]
    - [0x5F490, lib, libultra, epirawread]
    - [0x5F5F0, lib, libultra, viswapbuf]
    - [0x5F640, lib, libultra, epirawdma]
    - [0x5F820, lib, libultra, sptaskyielded]
    - [0x5F8A0, lib, libultra, rotaterpy]
    - [0x5FA40, lib, libultra, bcmp]
    - [0x5FB60, lib, libultra, rotate]
    - [0x5FD50, lib, libultra, gettime]
    - [0x5FDE0, lib, libultra, timerintr]
    - [0x601E0, lib, libultra, synthesizer]
    - [0x60860, lib, libultra, drvrnew]
    - [0x61010, lib, libultra, mainbus]
    - [0x61160, lib, libultra, auxbus]
    - [0x61270, lib, libultra, env]
    - [0x61EF0, lib, libultra, resample]
    - [0x621F0, lib, libultra, load]
    - [0x62D40, lib, libultra, filter]
    - [0x62D60, lib, libultra, save]
    - [0x62E20, lib, libultra, setglobalintmask]
    - [0x62E70, lib, libultra, aisetfreq]
    - [0x62FC0, lib, libultra, dpctr]
    - [0x63010, lib, libultra, getactivequeue]
    - [0x63020, lib, libultra, normalize]
    - [0x630B0, lib, libultra, setcompare]
    - [0x630C0, lib, libultra, aigetstat]
    - [0x630D0, lib, libultra, dpsetstat]
    - [0x630E0, lib, libultra, copy]
    - [0x63160, lib, libultra, bcopy]
    - [0x63470, lib, libultra, resetglobalintmask]
    - [0x634D0, lib, libultra, ortho]
    - [0x63690, lib, libultra, interrupt]
    - [0x63720, lib, libultra, vi]
    - [0x63860, lib, libultra, viswapcontext]
    - [0x63B60, lib, libultra, pigetcmdq]
    - [0x63B90, lib, libultra, cosf]
    - [0x63D00, lib, libultra, epiread]
    - [0x63D50, lib, libultra, visetspecial]
    - [0x63EB0, lib, libultra, settime]
    - [0x63EE0, lib, libultra, visetevent]
    - [0x63F50, lib, libultra, gbpakreadid]
    - [0x64110, lib, libultra, cartrominit]
    - [0x64270, lib, libultra, pfsselectbank]
    - [0x642F0, lib, libultra, setfpccsr]
    - [0x64300, lib, libultra, aigetlen]
    - [0x64310, lib, libultra, epiwrite]
    - [0x64360, lib, libultra, maptlbrdb]
    - [0x643C0, lib, libultra, yieldthread]
    - [0x64410, lib, libultra, contramwrite]
    - [0x64660, lib, libultra, contramread]
    - [0x64890, lib, libultra, crc]
    - [0x64A00, lib, libultra, getcause]
    - [0x64A10, lib, libultra, epirawwrite]
    - [0x64B70, lib, libultra, settimer]
    - [0x64C50, lib, libultra, xldtob]
    - [0x65710, lib, libultra, ldiv]
    - [0x658A0, lib, libultra, xlitob]
    - [0x65B40, lib, libultra, sirawwrite]
    - [0x65B90, lib, libultra, spsetstat]
    - [0x65BA0, lib, libultra, spgetstat]
    - [0x65BB0, pad]
    - [0x65BC0, lib, libultra, vimgr]
    - [0x65ED0, lib, libultra, vigetcurrcontext]
    - [0x65EE0, lib, libultra, writebackdcacheall]
    - [0x65F10, lib, libultra, heapalloc]
    - [0x65F70, lib, libultra, startthread]
    - [0x660C0, lib, libultra, visetxscale]
    - [0x661F0, lib, libultra, visetyscale]
    - [0x66250, lib, libultra, llcvt]
    - [0x66460, lib, libultra, synallocfx]
    - [0x66500, lib, libultra, syndelete]
    - [0x66510, lib, libultra, gbpakreadwrite]
    - [0x666D0, lib, libultra, gbpaksetbank]
    - [0x667A0, lib, libultra, aisetnextbuf]
    - [0x66850, lib, libultra, ai]
    - [0x66880, lib, libultra, conteepread]
    - [0x66AD0, lib, libultra, vigetcurrframebuf]
    - [0x66B10, lib, libultra, spsetpc]
    - [0x66B50, lib, libultra, sethwinterrupt]

    #- [0x66BC0, asm]
    - [0x66BC0, data]
    - [0x66C90, data, F3DEX2]
    - [0x68020, data, unk_F3DEX2_68020]
    - [0x68C80, data, unk_F3DEX2_68C80]
    
    # .data
    - [0x69770, data, rom_data_69770] # dp_intro
    - [0x69790, .data, util]
    - [0x697A0, .data, controller]
    - [0x697B0, .data, 6BC0]
    - [0x697C0, .data, stage_loader]
    - [0x6A1B0, .data, crash_screen]
    - [0x6A3B0, .data, profiler]
    - [0x6A3D0, .data, gb_tower]
    - [0x6A3E0, data, rom_data_6A3E0]
    - [0x6A3F0, .data, math_util]
    - [0x6FC00, .data, E890]
    - [0x6FC10, data, rom_data_6FC10]
    - [0x6FC50, .data, F420]
    - [0x6FC80, .data, 12D80]
    - [0x6FEB0, .data, geo_layout]
    - [0x6FF50, .data, 1AB70]
    - [0x70070, .data, 20470]
    - [0x703E0, data, rom_data_703E0]
    - [0x74250, .data, 26820]
    - [0x74260, data, rom_data_74260]
    - [0x76260, .data, 29BA0]
    - [0x76280, .data, 2C1C0]
    - [0x76290, .data, 2D340]
    - [0x764A0, .data, 2E460]
    - [0x76A40, data, rom_data_76A40]
    - [0x76EF0, .data, 33E30]
    - [0x76FB0, data, rom_data_76FB0] # 33FE0
    - [0x78570, .data, 373A0]
    - [0x78890, .data, 38BB0]
    - [0x78990, data, rom_data_78990]
    - [0x79180, .data, libnaudio/n_sl]
    - [0x79190, .data, 435D0]
    - [0x791F0, .data, 45720]
    - [0x79200, .data, libnaudio/n_env]
    - [0x79300, data, rom_data_79300]
    - [0x79630, .data, 49790]
    - [0x79660, data, rom_data_79660]
    - [0x79AE0, .data, 4CBC0]
    - [0x79C70, .data, 4F410]
    - [0x79F70, .data, libnaudio/n_drvrNew]
    - [0x7A100, .data, libnaudio/n_reverb]
    - [0x7A110, data, rom_data_7A110]

    # libleo
    - [0x7A180, .data, libleo/driverominit]
    - [0x7A190, data, rom_data_7A190]

    # libultra
    - [0x7A210, lib, libultra, piacs,          .data]
    - [0x7A220, lib, libultra, thread,         .data]
    - [0x7A240, lib, libultra, sl,             .data]
    - [0x7A250, lib, libultra, exceptasm,      .data]
    - [0x7A280, lib, libultra, controller,     .data]
    - [0x7A290, lib, libultra, siacs,          .data]
    - [0x7A2A0, lib, libultra, initialize,     .data]
    - [0x7A2C0, lib, libultra, reverb,         .data]
    - [0x7A2E0, data, rom_data_7A2E0]
    - [0x7B460, lib, libultra, pimgr,          .data]
    - [0x7B490, lib, libultra, vimodentsclpn1, .data]
    - [0x7B4E0, lib, libultra, vimodempallpn1, .data]
    - [0x7B530, lib, libultra, contpfs,        .data]
    - [0x7B540, lib, libultra, seteventmesg,   .data]
    - [0x7B550, lib, libultra, random,         .data]
    - [0x7B560, lib, libultra, xprintf,        .data]
    - [0x7B5B0, lib, libultra, timerintr,      .data]
    - [0x7B5C0, lib, libultra, drvrnew,        .data]
    - [0x7B750, lib, libultra, env,            .data]
    - [0x7B890, lib, libultra, vi,             .data]
    - [0x7B890, lib, libultra, vimodepallan1,  .data]
    - [0x7B950, lib, libultra, vimodentsclan1, .data]
    - [0x7B9A0, lib, libultra, vimodempallan1, .data]
    - [0x7B9F0, lib, libultra, gbpakreadid,    .data]
    - [0x7BA40, lib, libultra, cartrominit,    .data]
    - [0x7BA50, lib, libultra, contramread,    .data]
    - [0x7BA60, lib, libultra, xlitob,         .data]
    - [0x7BA90, lib, libultra, vimgr,          .data]
    - [0x7BAB0, lib, libultra, aisetnextbuf,   .data]
    
    # Start of .rodata
    - [0x7BAC0, .rodata, rsp]
    - [0x7BB10, rodata]
    - [0x7BB20, .rodata, util]
    - [0x7BB50, .rodata, 3FB0]
    - [0x7BBC0, .rodata, 5580]
    - [0x7BBE0, .rodata, crash_screen]
    - [0x7BFA0, .rodata, profiler]
    - [0x7BFC0, .rodata, gb_tower]
    - [0x7C000, .rodata, E890]
    - [0x7C180, .rodata, F420]
    - [0x7C190, .rodata, 1AB70]
    - [0x7C1C0, rodata, rom_rodata_7C1C0]
    - [0x7C220, rodata, rom_rodata_7C220]
    - [0x7C750, rodata, rom_rodata_7C750]
    - [0x7CCA0, .rodata, 22630]
    - [0x7CD10, .rodata, 232C0]
    - [0x7CD40, .rodata, 26820]
    - [0x7CEC0, .rodata, 29BA0]
    - [0x7CFD0, .rodata, 2C1C0]
    - [0x7D030, .rodata, 2E110]
    - [0x7D040, .rodata, 2E460]
    - [0x7D090, .rodata, 2FEA0]
    - [0x7D0F0, .rodata, 30640]
    - [0x7D110, rodata, rom_rodata_7D110]
    - [0x7D1B0, rodata, rom_rodata_7D1B0] # 33FE0
    - [0x7D230, .rodata, 373A0]
    - [0x7D340, .rodata, 38BB0]
    - [0x7D3C0, rodata, rom_rodata_7D3C0]
    - [0x7D3E0, .rodata, 3D140]
    - [0x7D800, .rodata, 435D0]
    - [0x7D860, .rodata, 45720]
    - [0x7D880, .rodata, libnaudio/n_env]
    - [0x7D8D0, rodata, rom_rodata_7D8D0]
    - [0x7DF80, rodata, rom_rodata_7DF80]
    - [0x7DFD0, .rodata, 49790]
    - [0x7E0C0, .rodata, libnaudio/n_synthesizer]
    - [0x7E0D0, rodata, rom_rodata_7E0D0]
    - [0x7E0E0, .rodata, 4BA90]
    - [0x7E110, .rodata, 4BDC0]
    - [0x7E2F0, .rodata, 4CBC0]
    - [0x7E560, .rodata, 4F410]
    - [0x7E5D0, .rodata, libnaudio/n_drvrNew]
    - [0x7E5F0, .rodata, libnaudio/n_resample]
    - [0x7E600, .rodata, libnaudio/n_reverb]

    # libleo
    - [0x7E630, .rodata, libleo/leofunc]
    - [0x7E640, .rodata, libleo/leocmdex]
    - [0x7E6F0, rodata, rom_rodata_7E6F0]
    - [0x7E700, .rodata, libleo/leomecha]
    - [0x7E770, .rodata, libleo/leo_tbl]
    - [0x7E950, .rodata, libleo/leoc2ecc]
    - [0x7ED70, .rodata, libleo/leomseq_tbl]
    - [0x7EDF0, .rodata, libleo/leotimer]

    # libultra
    - [0x7EE10, lib, libultra, setintmask, .rodata]
    - [0x7EE90, lib, libultra, sinf, .rodata]
    - [0x7EEE0, lib, libultra, exceptasm, .rodata]
    - [0x7EF30, lib, libultra, reverb, .rodata]
    - [0x7EF60, lib, libultra, perspective, .rodata]
    - [0x7EF70, lib, libultra, devmgr, .rodata]
    - [0x7EF90, lib, libultra, xprintf, .rodata]
    - [0x7F090, lib, libultra, rotaterpy, .rodata]
    - [0x7F0A0, lib, libultra, rotate, .rodata]
    - [0x7F0B0, lib, libultra, synthesizer, .rodata]
    - [0x7F0C0, lib, libultra, drvrnew, .rodata]
    - [0x7F0E0, lib, libultra, env, .rodata]
    - [0x7F130, lib, libultra, resample, .rodata]
    - [0x7F180, lib, libultra, cosf, .rodata]
    - [0x7F1D0, lib, libultra, libm_vals, .rodata]
    - [0x7F1E0, lib, libultra, xldtob, .rodata]
    - [0x7F240, lib, libultra, llcvt, .rodata]

    - [0x7F250, rodata, F3DEX2_data] # F3DEX2 data
    - [0x7F670, rodata, unk_bin_7F670]
    - [0x7F980]
    
    # .bss
    - {vram: 0x8007F190, type: .bss, name: main}
    - {vram: 0x80081900, type: .bss, name: rsp}
    - {vram: 0x80083CA0, type:  bss, name: unk_bss}
    - {vram: 0x800A5870, type: .bss, name: memmap}
    - {vram: 0x800A6070, type: .bss, name: memory_main}
    - {vram: 0x800A60B0, type:  bss, name: unk_bss_4}
    - {vram: 0x800A60C0, type: .bss, name: 3FB0}
    - {vram: 0x800A62E0, type: .bss, name: 5580}
    - {vram: 0x800A6D20, type: .bss, name: reset}
    - {vram: 0x800A7320, type: .bss, name: controller}
    - {vram: 0x800A7420, type:  bss, name: unk_bss_3}
    - {vram: 0x800A7450, type: .bss, name: stage_loader}
    - {vram: 0x800A74C0, type: .bss, name: crash_screen}
    - {vram: 0x800A7EA0, type: .bss, name: profiler}
    - {vram: 0x800A8100, type:  bss, name: unk_bss_2}
    - {vram: 0x800A82E0, type:  .bss, name: D470}
    - {vram: 0x800A83A0, type:  bss, name: unk_bss_17}
    - {vram: 0x800AA680, type:  .bss, name: E890}
    - {vram: 0x800AA6C0, type:  .bss, name: 12D80}
    - {vram: 0x800ABCC0, type:  .bss, name: 17300}
    - {vram: 0x800ABD00, type:  .bss, name: 18140}
    - {vram: 0x800ABD30, type:  .bss, name: geo_layout}
    - {vram: 0x800ABE10, type:  .bss, name: 19840}
    - {vram: 0x800AC830, type:  .bss, name: 1AB70}
    - {vram: 0x800AC840, type:  bss, name: unk_bss_14} # 1C720
    - {vram: 0x800AC870, type:  bss, name: unk_bss_16} # 1CF30
    - {vram: 0x800AC880, type:  .bss, name: 20330}
    - {vram: 0x800AC890, type:  bss, name: unk_bss_11} # 232C0
    - {vram: 0x800AE4E0, type:  .bss, name: 26820}
    - {vram: 0x800AE520, type:  .bss, name: 29BA0}
    - {vram: 0x800AF740, type:  .bss, name: 2E110}
    - {vram: 0x800AF750, type:  .bss, name: 2E460}
    - {vram: 0x800AF770, type:  bss, name: unk_bss_7} # 32D10
    - {vram: 0x800AF7C0, type:  bss, name: unk_bss_8} # 334D0
    - {vram: 0x800B2F50, type:  bss, name: unk_bss_9} # 33FE0
    - {vram: 0x800B32A0, type:  .bss, name: 373A0}
    - {vram: 0x800FC7A0, type:  .bss, name: 38BB0}
    - {vram: 0x800FC820, type:  bss, name: unk_bss_12} # 3D140
    - {vram: 0x800FCD40, type:  .bss, name: 435D0}
    - {vram: 0x800FCED0, type:  .bss, name: 45720}
    - {vram: 0x800FCF60, type:  bss, name: unk_bss_15} # 4A3E0
    - {vram: 0x800FF990, type:  .bss, name: 4B940}
    - {vram: 0x800FF9B0, type:  .bss, name: 4BDC0}
    - {vram: 0x800FF9C0, type:  bss, name: unk_bss_10}
  
    # libleo
    - {vram: 0x80100740, type: .bss, name: libleo/driverominit}
    - {vram: 0x801007C0, type:  bss, name: unk_bss_5}
    - {vram: 0x80101090, type: .bss, name: libleo/leomseq_tbl}
    - {vram: 0x801010D0, type:  bss, name: unk_bss_6}

    # ultralib
    - {type: lib, vram: 0x801020D0, name: libultra, object: leointerrupt, section: .bss}
    - {type: lib, vram: 0x801020E0, name: libultra, object: piacs, section: .bss}
    - {type: lib, vram: 0x80102100, name: libultra, object: sptask, section: .bss}
    - {type: lib, vram: 0x80102140, name: libultra, object: controller, section: .bss}
    - {type: lib, vram: 0x801021D0, name: libultra, object: siacs, section: .bss}
    - {type: lib, vram: 0x801021F0, name: libultra, object: initialize, section: .bss}
    - {type: lib, vram: 0x80102200, name: libultra, object: gbpakinit, section: .bss}
    - {type: lib, vram: 0x80102240, name: libultra, object: kdebugserver, section: .bss}
    - {type: lib, vram: 0x801023F0, name: libultra, object: pfsisplug, section: .bss}
    - {type: lib, vram: 0x80102430, name: libultra, object: leodiskinit, section: .bss}
    - {type: lib, vram: 0x80102520, name: libultra, object: pimgr, section: .bss}
    - {type: lib, vram: 0x801036F0, name: libultra, object: contpfs, section: .bss}
    - {type: lib, vram: 0x801037F0, name: libultra, object: seteventmesg, section: .bss}
    - {type: lib, vram: 0x80103830, name: libultra, object: rotaterpy, section: .bss}
    - {type: lib, vram: 0x80103880, name: libultra, object: rotate, section: .bss}
    - {type: lib, vram: 0x80103890, name: libultra, object: timerintr, section: .bss}
    - {type: lib, vram: 0x801038D0, name: libultra, object: cartrominit, section: .bss}
    - {type: lib, vram: 0x80103950, name: libultra, object: vimgr, section: .bss}
    - {type: lib, vram: 0x80104b70, name: libultra, object: conteepread, section: .bss}
  - [0x7F980]

  - name: heap
    type: code
    bss_size: 0x0 # This heap extends to the end of RAM.
    start: 0x7F980
    vram: 0x80104BB0
    follows_vram: text
    subsegments:
    # .bss
    - {vram: 0x80104BB0, type: .bss, name: heap}
  - [0x7F980]
    
  # Probably the GB Tower Emulator. This fragment is built very strangely.
  - name: fragment1
    type: code
    bss_size: 0x9530
    start: 0x7F980
    vram: 0x81200000
    subsegments:
    - [0x7F980,  hasm,   fragments/1/fragment1_header]
    - [0x7F9A0,  c,      fragments/1/fragment1_7F9A0]
    - [0x86920,  c,      fragments/1/fragment1_86920]
    - [0x86C30,  c,      fragments/1/fragment1_86C30]
    - [0x86CB0,  c,      fragments/1/fragment1_86CB0]
    - [0x89020,  hasm,   fragments/1/fragment1_code_asm]
    - [0x8D1A0,  data,   fragments/1/fragment1_data]
    - [0xA8E80,  rodata, fragments/1/fragment1_rodata_A8E80]
    - [0xA8F00,  rodata, fragments/1/fragment1_rodata_A8F00]
    - [0xA9140,  rodata, fragments/1/fragment1_rodata_A9140]
    - [0xA9BE0,  rodata, fragments/1/fragment1_rodata_A9BE0]
    - [0xAA6D0,  rodata, fragments/1/fragment1_rodata_AA6D0]
    - [0xAA8F0,  rodata, fragments/1/fragment1_rodata_AA8F0]

    - {vram: 0x8122B1E0, type:  bss, name: fragments/1/fragment1_bss}

  - name: fragment1_relocs
    type: code
    bss_size: 0x0
    start: 0xAAB60
    vram: 0x00000000
    subsegments:
    - [0xAAB60,  rodatabin,    fragments/1/fragment1_reloc]

  - name: fragment1_misc_yay0
    type: code
    bss_size: 0x0
    start: 0xADC80
    vram: 0x81800000 # unknown VRAM, need a value here to stop linker complaints
    subsegments:
    - [0xADC80,  bin,    fragments/1/fragment1_yay0_0]
    - [0xF4920,  bin,    fragments/1/fragment1_yay0_1]
    - [0xF5450,  bin,    fragments/1/fragment1_yay0_2]
    - [0xFDE40,  bin,    fragments/1/fragment1_yay0_3]
    - [0x102BA0, bin,    fragments/1/fragment1_yay0_4]

# text code
  - name: fragment2
    type: code
    bss_size: 0x430
    start: 0x107FA0
    vram: 0x87800000
    subsegments:
    - [0x107FA0, textbin, fragments/2/fragment2_header]
    - [0x107FC0, c,       fragments/2/fragment2]
    - [0x10A300, c,       fragments/2/fragment2_1]
    - [0x10A960, c,       fragments/2/fragment2_2]
    - [0x10E2D0, .data,   fragments/2/fragment2]
    - [0x10E330, .data,   fragments/2/fragment2_1]
    - [0x10E490, .data,   fragments/2/fragment2_2]
    - [0x117970, .rodata, fragments/2/fragment2_1]
    - [0x117980, .rodata, fragments/2/fragment2_2]

    - {vram: 0x8780FA20, type:  .bss, name: fragments/2/fragment2}
    - {vram: 0x8780FAC0, type:  .bss, name: fragments/2/fragment2_1}
    - {vram: 0x8780FC40, type:  .bss, name: fragments/2/fragment2_2}

  - name: fragment2_relocs
    type: code
    bss_size: 0x0
    start: 0x1179C0
    vram: 0x00000000
    subsegments:
    - [0x1179C0,  rodatabin,    fragments/2/fragment2_reloc]

 # model animation code   
  - name: fragment3
    type: code
    bss_size: 0xF0
    start: 0x118990
    vram: 0x87900000
    subsegments:
    - [0x118990, textbin, fragments/3/fragment3_header]
    - [0x1189B0, c,       fragments/3/fragment3_1189B0]
    - [0x1193E0, c,       fragments/3/fragment3_1193E0]
    - [0x119FB0, c,       fragments/3/fragment3_119FB0]
    - [0x11BBF0, c,       fragments/3/fragment3_11BBF0]
    - [0x11BF90, c,       fragments/3/fragment3_11BF90]
    - [0x11C730, .data,    fragments/3/fragment3_1189B0]
    - [0x11C770, .data,    fragments/3/fragment3_1193E0]
    - [0x11C790, .data,    fragments/3/fragment3_11BBF0]
    - [0x11E810, .rodata,  fragments/3/fragment3_1193E0]
    - [0x11E950, .rodata,  fragments/3/fragment3_119FB0]
    - [0x11E9A0, .rodata,  fragments/3/fragment3_11BBF0]

    - {vram: 0x87906040, type:  .bss, name: fragments/3/fragment3_1189B0}
    - {vram: 0x879060E0, type:  .bss, name: fragments/3/fragment3_1193E0}
    - {vram: 0x87906120, type:  .bss, name: fragments/3/fragment3_11BF90}

  - name: fragment3_relocs
    type: code
    bss_size: 0x0
    start: 0x11E9D0
    vram: 0x00000000
    subsegments:
    - [0x11E9D0,  rodatabin,    fragments/3/fragment3_reloc]

# MINIGAMES unknown code placed but not executed
  - name: fragment4
    type: code
    bss_size: 0x40
    start: 0x11F560
    vram: 0x87A00000
    subsegments:
    - [0x11F560, textbin, fragments/4/fragment4_header]
    - [0x11F580, c,    fragments/4/fragment4]
    - [0x120670, .data, fragments/4/fragment4]

    - {vram: 0x87A01300, type:  .bss, name: fragments/4/fragment4}

  - name: fragment4_relocs
    type: code
    bss_size: 0x0
    start: 0x120860
    vram: 0x00000000
    subsegments:
    - [0x120860,  rodatabin,    fragments/4/fragment4_reloc]

# DROWZEE MINIGAME unknown code placed but not executed, might be something about other controllers
  - name: fragment5
    type: code
    bss_size: 0x20
    start: 0x120920
    vram: 0x87B00000 # unknown. we dont actually know this fragment's vaddr yet, but we need a unique vaddr so the linker doesnt complain. Might be an unused fragment, as it's very very small, and seems to only poll the controller.
    subsegments:
    - [0x120920, textbin, fragments/5/fragment5_header]
    - [0x120940, c,    fragments/5/fragment5]
    - [0x1209E0, .data, fragments/5/fragment5]

    - {vram: 0x87B000E0, type:  .bss, name: fragments/5/fragment5}

  - name: fragment5_relocs
    type: code
    bss_size: 0x0
    start: 0x120A00
    vram: 0x00000000
    subsegments:
    - [0x120A00,  rodatabin,    fragments/5/fragment5_reloc]

# magikarp minigame code
  - name: fragment6
    type: code
    bss_size: 0x1200
    start: 0x120A10
    vram: 0x86000000
    subsegments:
    - [0x120A10, textbin,   fragments/6/fragment6_header]
    - [0x120A30, c,      fragments/6/fragment6]
    - [0x123330, .data,   fragments/6/fragment6]
    - [0x123890, .rodata, fragments/6/fragment6]

    - {vram: 0x86002F30, type:  .bss, name: fragments/6/fragment6}

  - name: fragment6_relocs
    type: code
    bss_size: 0x0
    start: 0x123940
    vram: 0x00000000
    subsegments:
    - [0x123940,  rodatabin,    fragments/6/fragment6_reloc]

  - name: fragment6_misc
    type: code
    bss_size: 0x0
    start: 0x124570
    vram: 0x86003B60
    subsegments:
    - [0x124570, bin,    fragments/6/fragment6_misc]

# clefairy minigame code
  - name: fragment7
    type: code
    bss_size: 0x2120
    start: 0x1278D0
    vram: 0x86100000
    subsegments:
    - [0x1278D0, textbin,   fragments/7/fragment7_header]
    - [0x1278F0, c,         fragments/7/fragment7]
    - [0x12BF10, .data,     fragments/7/fragment7]
    - [0x12CC90, .rodata,   fragments/7/fragment7]

    - {vram: 0x86105480, type:  .bss, name: fragments/7/fragment7}

  - name: fragment7_relocs
    type: code
    bss_size: 0x0
    start: 0x12CD50
    vram: 0x00000000
    subsegments:
    - [0x12CD50,  rodatabin,    fragments/7/fragment7_reloc]

# rattata minigame code
  - name: fragment8
    type: code
    bss_size: 0x4480
    start: 0x12DF40
    vram: 0x86200000
    subsegments:
    - [0x12DF40, textbin,   fragments/8/fragment8_header]
    - [0x12DF60, c,      fragments/8/fragment8]
    - [0x131800, .data,   fragments/8/fragment8]
    - [0x131D00, .rodata, fragments/8/fragment8]

    - {vram: 0x86203E30, type:  .bss, name: fragments/8/fragment8}

  - name: fragment8_relocs
    type: code
    bss_size: 0x0
    start: 0x131D70
    vram: 0x00000000
    subsegments:
    - [0x131D70,  rodatabin,    fragments/8/fragment8_reloc]

  - name: fragment9
    type: code
    bss_size: 0x7B0
    start: 0x1329E0
    vram: 0x86300000
    subsegments:
    - [0x1329E0, textbin,   fragments/9/fragment9_header]
    - [0x132A00, c,      fragments/9/fragment9]
    - [0x133FE0, .data,   fragments/9/fragment9]
    - [0x1340A0, .rodata, fragments/9/fragment9]

    - {vram: 0x86301710, type:  .bss, name: fragments/9/fragment9}

  - name: fragment9_relocs
    type: code
    bss_size: 0x0
    start: 0x1340F0
    vram: 0x00000000
    subsegments:
    - [0x1340F0,  rodatabin,    fragments/9/fragment9_reloc]

# drowzee minigame code
  - name: fragment10
    type: code
    bss_size: 0x1270
    start: 0x134680
    vram: 0x86400000
    subsegments:
    - [0x134680, textbin,   fragments/10/fragment10_header]
    - [0x1346A0, c,      fragments/10/fragment10]
    - [0x136D50, c,      fragments/10/fragment10_1]
    - [0x136E40, .data,   fragments/10/fragment10]
    - [0x137070, .data,   fragments/10/fragment10_1]
    - [0x1386E0, .rodata,   fragments/10/fragment10]

    - {vram: 0x86404070, type:  .bss, name: fragments/10/fragment10}

  - name: fragment10_relocs
    type: code
    bss_size: 0x0
    start: 0x1386F0
    vram: 0x00000000
    subsegments:
    - [0x1386F0, rodatabin,    fragments/10/fragment10_reloc]

# pikachu minigame code
  - name: fragment11
    type: code
    bss_size: 0x1AB0
    start: 0x138F20
    vram: 0x86500000
    subsegments:
    - [0x138F20, textbin,   fragments/11/fragment11_header]
    - [0x138F40, c,      fragments/11/fragment11]
    - [0x13B030, c,      fragments/11/fragment11_1]
    - [0x13B8E0, c,      fragments/11/fragment11_2]
    - [0x13BB40, .data,   fragments/11/fragment11]
    - [0x13BE70, .data,   fragments/11/fragment11_1]
    - [0x1420F0, .data,   fragments/11/fragment11_2]
    - [0x142190, .rodata, fragments/11/fragment11]
    - [0x1421D0, .rodata, fragments/11/fragment11_1]
    - [0x1421E0, .rodata, fragments/11/fragment11_2]

    - {vram: 0x865092E0, type:  .bss, name: fragments/11/fragment11}
    - {vram: 0x8650AD80, type:  .bss, name: fragments/11/fragment11_2}

  - name: fragment11_relocs
    type: code
    bss_size: 0x0
    start: 0x142200
    vram: 0x00000000
    subsegments:
    - [0x142200, rodatabin,    fragments/11/fragment11_reloc]

  # debug model viewer/minigame sample
  - name: fragment12
    type: code
    bss_size: 0x180
    start: 0x142B10
    vram: 0x86600000
    subsegments:
    - [0x142B10, textbin,   fragments/12/fragment12_header]
    - [0x142B30, c,      fragments/12/fragment12]
    - [0x143360, .data,   fragments/12/fragment12]
    - [0x143400, .rodata, fragments/12/fragment12]

    - {vram: 0x86600940, type:  .bss, name: fragments/12/fragment12}

  - name: fragment12_relocs
    type: code
    bss_size: 0x0
    start: 0x143450
    vram: 0x00000000
    subsegments:
    - [0x143450, rodatabin,    fragments/12/fragment12_reloc]

  - name: fragment13
    type: code
    bss_size: 0x180
    start: 0x143700
    vram: 0x86700000
    subsegments:
    - [0x143700, textbin,   fragments/13/fragment13_header]
    - [0x143720, c,      fragments/13/fragment13]
    - [0x143F40, .data,   fragments/13/fragment13]
    - [0x143FE0, .rodata, fragments/13/fragment13]

    - {vram: 0x86700930, type:  .bss, name: fragments/13/fragment13}

  - name: fragment13_relocs
    type: code
    bss_size: 0x0
    start: 0x144030
    vram: 0x00000000
    subsegments:
    - [0x144030, rodatabin,    fragments/13/fragment13_reloc]

# lickitung minigame code
  - name: fragment14
    type: code
    bss_size: 0x2530
    start: 0x1442E0
    vram: 0x86800000
    subsegments:
    - [0x1442E0, textbin,   fragments/14/fragment14_header]
    - [0x144300, c,      fragments/14/fragment14_144300]
    - [0x1462A0, c,      fragments/14/fragment14_1462A0]
    - [0x14A030, c,      fragments/14/fragment14_14A030]
    - [0x14AFB0, .data,   fragments/14/fragment14_144300]
    - [0x14B270, .data,   fragments/14/fragment14_1462A0]
    - [0x14B420, .data,   fragments/14/fragment14_14A030]
    - [0x14B660, .rodata, fragments/14/fragment14_144300]
    - [0x14B6A0, .rodata, fragments/14/fragment14_1462A0]
    - [0x14B790, .rodata, fragments/14/fragment14_14A030]

    - {vram: 0x86807500, type:  .bss, name: fragments/14/fragment14_144300}
    - {vram: 0x86807550, type:  .bss, name: fragments/14/fragment14_1462A0}
    - {vram: 0x868084D0, type:  .bss, name: fragments/14/fragment14_14A030}

  - name: fragment14_relocs
    type: code
    bss_size: 0x0
    start: 0x14B7E0
    vram: 0x00000000
    subsegments:
    - [0x14B7E0, rodatabin,    fragments/14/fragment14_reloc]

# gallery camera code
  - name: fragment15
    type: code
    bss_size: 0x1020
    start: 0x14CA50
    vram: 0x86900000
    subsegments:
    - [0x14CA50, textbin,   fragments/15/fragment15_header]
    - [0x14CA70, c,      fragments/15/fragment15_14CA70]
    - [0x14EC80, c,      fragments/15/fragment15_14EC80]
    - [0x150AC0, c,      fragments/15/fragment15_150AC0]
    - [0x1554D0, .data,   fragments/15/fragment15_14CA70]
    - [0x156EB0, .rodata, fragments/15/fragment15_14CA70]
    - [0x156F00, .rodata, fragments/15/fragment15_14EC80]
    - [0x156F70, .rodata, fragments/15/fragment15_150AC0]

    - {vram: 0x8690A610, type:  .bss, name: fragments/15/fragment15_14CA70}
    - {vram: 0x8690B600, type:  .bss, name: fragments/15/fragment15_14EC80}

  - name: fragment15_relocs
    type: code
    bss_size: 0x0
    start: 0x157060
    vram: 0x00000000
    subsegments:
    - [0x157060, rodatabin,    fragments/15/fragment15_reloc]

# credits loader
  - name: fragment16
    type: code
    bss_size: 0xF0
    start: 0x1589E0
    vram: 0x86A00000
    subsegments:
    - [0x1589E0, textbin,   fragments/16/fragment16_header]
    - [0x158A00, c,      fragments/16/fragment16_158A00]
    - [0x15A2A0, c,      fragments/16/fragment16_15A2A0]
    - [0x15A2B0, c,      fragments/16/fragment16_15A2B0]
    - [0x15AD80, c,      fragments/16/fragment16_15AD80]
    - [0x15AF80, .data,   fragments/16/fragment16_158A00]
    - [0x15BB50, .data,   fragments/16/fragment16_15A2B0]
    - [0x15E530, .data,   fragments/16/fragment16_15AD80]
    - [0x15EB20, .rodata, fragments/16/fragment16_15A2B0]

    - {vram: 0x86A06170, type:  .bss, name: fragments/16/fragment16_158A00}

  - name: fragment16_relocs
    type: code
    bss_size: 0x0
    start: 0x15EB50
    vram: 0x00000000
    subsegments:
    - [0x15EB50, rodatabin,    fragments/16/fragment16_reloc]

# stage loader code
  - name: fragment17
    type: code
    bss_size: 0x2630
    start: 0x15F990
    vram: 0x86B00000
    subsegments:
    - [0x15F990, textbin,   fragments/17/fragment17_header]
    - [0x15F9B0, c,      fragments/17/fragment17_15F9B0]
    - [0x15FA60, c,      fragments/17/fragment17_15FA60]
    - [0x160CB0, c,      fragments/17/fragment17_160CB0]
    - [0x161000, c,      fragments/17/fragment17_161000]
    - [0x161590, c,      fragments/17/fragment17_161590]
    - [0x161E60, c,      fragments/17/fragment17_161E60]
    - [0x164B00, c,      fragments/17/fragment17_164B00]
    - [0x165640, c,      fragments/17/fragment17_165640]
    - [0x168110, c,      fragments/17/fragment17_168110]
    - [0x1687E0, c,      fragments/17/fragment17_1687E0]
    - [0x169510, c,      fragments/17/fragment17_169510]
    - [0x169A40, c,      fragments/17/fragment17_169A40]
    - [0x16A0E0, c,      fragments/17/fragment17_16A0E0]
    - [0x16B580, .data,   fragments/17/fragment17_15FA60]
    - [0x16B6E0, .data,   fragments/17/fragment17_161590]
    - [0x16B6F0, .data,   fragments/17/fragment17_161E60]
    - [0x16D670, .data,   fragments/17/fragment17_165640]
    - [0x16D950, .data,   fragments/17/fragment17_168110]
    - [0x16D960, .data,   fragments/17/fragment17_1687E0]
    - [0x16DBE0, .data,   fragments/17/fragment17_169A40]
    - [0x16DC40, .data,   fragments/17/fragment17_16A0E0]

    - [0x16DD70, .rodata, fragments/17/fragment17_15F9B0]
    - [0x16DDA0, .rodata, fragments/17/fragment17_15FA60]
    - [0x16DDF0, .rodata, fragments/17/fragment17_161E60]
    - [0x16DEA0, .rodata, fragments/17/fragment17_165640]
    - [0x16DF30, .rodata, fragments/17/fragment17_16A0E0]

    - {vram: 0x86B0E5D0, type: .bss, name: fragments/17/fragment17_15FA60}
    - {vram: 0x86B0EBC0, type: .bss, name: fragments/17/fragment17_161E60}
    - {vram: 0x86B0F9D0, type: .bss, name: fragments/17/fragment17_165640}
    - {vram: 0x86B106A0, type: .bss, name: fragments/17/fragment17_1687E0}
    - {vram: 0x86B106B0, type: .bss, name: fragments/17/fragment17_169A40}
    - {vram: 0x86B10840, type: .bss, name: fragments/17/fragment17_16A0E0}

  - name: fragment17_relocs
    type: code
    bss_size: 0x0
    start: 0x16DF60
    vram: 0x00000000
    subsegments:
    - [0x16DF60, rodatabin,    fragments/17/fragment17_reloc]

# ekans minigame code
  - name: fragment18
    type: code
    bss_size: 0x3C10
    start: 0x1708B0
    vram: 0x86C00000
    subsegments:
    - [0x1708B0, textbin,   fragments/18/fragment18_header]
    - [0x1708D0, c,      fragments/18/fragment18]
    - [0x1750F0, .data,   fragments/18/fragment18]
    - [0x17EC60, .rodata, fragments/18/fragment18]

    - {vram: 0x86C0E480, type:  .bss, name: fragments/18/fragment18}

  - name: fragment18_relocs
    type: code
    bss_size: 0x0
    start: 0x17ED30
    vram: 0x00000000
    subsegments:
    - [0x17ED30, rodatabin,    fragments/18/fragment18_reloc]

  - name: fragment19
    type: code
    bss_size: 0x0
    start: 0x17FB40
    vram: 0x86D00000
    subsegments:
    - [0x17FB40, textbin,   fragments/19/fragment19_header]
    - [0x17FB60, c,      fragments/19/fragment19]
    - [0x180070, .data,   fragments/19/fragment19]
    - [0x180100, .rodata, fragments/19/fragment19]

    - {vram: 0x86D005D0, type:  .bss, name: fragments/19/fragment19}

  - name: fragment19_relocs
    type: code
    bss_size: 0x0
    start: 0x180110
    vram: 0x00000000
    subsegments:
    - [0x180110, rodatabin,    fragments/19/fragment19_reloc]

# metapod minigame code
  - name: fragment20
    type: code
    bss_size: 0x40F0
    start: 0x1802B0
    vram: 0x86E00000
    subsegments:
    - [0x1802B0, textbin,   fragments/20/fragment20_header]
    - [0x1802D0, c,      fragments/20/fragment20]
    - [0x183260, .data,   fragments/20/fragment20]
    - [0x184FA0, .rodata, fragments/20/fragment20]

    - {vram: 0x86E04D60, type:  .bss, name: fragments/20/fragment20}

  - name: fragment20_relocs
    type: code
    bss_size: 0x0
    start: 0x185010
    vram: 0x00000000
    subsegments:
    - [0x185010, rodatabin,    fragments/20/fragment20_reloc]

# sandshrew minigame code
  - name: fragment21
    type: code
    bss_size: 0x2080
    start: 0x185A10
    vram: 0x86F00000
    subsegments:
    - [0x185A10, textbin,   fragments/21/fragment21_header]
    - [0x185A30, c,      fragments/21/fragment21]
    - [0x1880A0, .data,   fragments/21/fragment21]
    - [0x190B90, .rodata, fragments/21/fragment21]

    - {vram: 0x86F0B1F0, type:  .bss, name: fragments/21/fragment21}

  - name: fragment21_relocs
    type: code
    bss_size: 0x0
    start: 0x190C00
    vram: 0x00000000
    subsegments:
    - [0x190C00, rodatabin,    fragments/21/fragment21_reloc]

# pokemon lab loader
  - name: fragment22
    type: code
    bss_size: 0x10
    start: 0x191660
    vram: 0x88000000
    subsegments:
    - [0x191660, textbin,   fragments/22/fragment22_header]
    - [0x191680, c,      fragments/22/fragment22]
    - [0x193EA0, .data,   fragments/22/fragment22]
    - [0x1A8320, .rodata, fragments/22/fragment22]

    - {vram: 0x88016CF0, type:  .bss, name: fragments/22/fragment22}

  - name: fragment22_relocs
    type: code
    bss_size: 0x0
    start: 0x1A8350
    vram: 0x00000000
    subsegments:
    - [0x1A8350, rodatabin,    fragments/22/fragment22_reloc]

# pokemon lab PC loader
  - name: fragment23
    type: code
    bss_size: 0x40
    start: 0x1A8570
    vram: 0x88200000
    subsegments:
    - [0x1A8570, textbin,   fragments/23/fragment23_header]
    - [0x1A8590, c,      fragments/23/fragment23_1A8590]
    - [0x1A8800, c,      fragments/23/fragment23_1A8800]
    - [0x1A9780, c,      fragments/23/fragment23_1A9780]
    - [0x1AE680, c,      fragments/23/fragment23_1AE680]
    - [0x1B4EA0, c,      fragments/23/fragment23_1B4EA0]
    - [0x1BCF10, c,      fragments/23/fragment23_1BCF10]
    - [0x1C0160, c,      fragments/23/fragment23_882181B0]
    - [0x1C0160, .data,   fragments/23/fragment23_1A8800]
    - [0x1C0190, .data,   fragments/23/fragment23_1A9780]
    - [0x1C0280, .data,   fragments/23/fragment23_1AE680]
    - [0x1C0540, .data,   fragments/23/fragment23_1B4EA0]
    - [0x1C0720, .data,   fragments/23/fragment23_882181B0]
    - [0x1CD3C0, .rodata, fragments/23/fragment23_1A9780]
    - [0x1CD400, .rodata, fragments/23/fragment23_1AE680]
    - [0x1CD470, .rodata, fragments/23/fragment23_1B4EA0]

    - {vram: 0x88224F90, type:  .bss, name: fragments/23/fragment23_1A8800}
    - {vram: 0x88224FA0, type:  .bss, name: fragments/23/fragment23_1A9780}
    - {vram: 0x88224FC0, type:  .bss, name: fragments/23/fragment23_1B4EA0}

  - name: fragment23_relocs
    type: code
    bss_size: 0x0
    start: 0x1CD500
    vram: 0x00000000
    subsegments:
    - [0x1CD500, rodatabin,    fragments/23/fragment23_reloc]

# pokemon lab PC: list code
  - name: fragment24
    type: code
    bss_size: 0x60
    start: 0x1CE9E0
    vram: 0x88300000
    subsegments:
    - [0x1CE9E0, textbin,   fragments/24/fragment24_header]
    - [0x1CEA00, c,      fragments/24/fragment24_1CEA00]
    - [0x1D7B40, c,      fragments/24/fragment24_1D7B40]
    - [0x1E46B0, c,      fragments/24/fragment24_1E46B0]
    - [0x1E5BB0, .data,   fragments/24/fragment24_1CEA00]
    - [0x1E5D40, .data,   fragments/24/fragment24_1D7B40]
    - [0x1E60B0, .data,   fragments/24/fragment24_1E46B0]
    - [0x1E8C40, .rodata, fragments/24/fragment24_1CEA00]
    - [0x1E8DB0, .rodata, fragments/24/fragment24_1D7B40]

    - {vram: 0x8831A4C0, type:  .bss, name: fragments/24/fragment24_1CEA00}

  - name: fragment24_relocs
    type: code
    bss_size: 0x0
    start: 0x1E8EA0
    vram: 0x00000000
    subsegments:
    - [0x1E8EA0, rodatabin,    fragments/24/fragment24_reloc]

# POKEMON LAB unknown code placed but not executed
  - name: fragment25
    type: code
    bss_size: 0x0
    start: 0x1EA640
    vram: 0x88400000
    subsegments:
    - [0x1EA640, textbin,   fragments/25/fragment25_header]
    - [0x1EA660, c,      fragments/25/fragment25]
    - [0x1EA740, data,   fragments/25/fragment25_data]

    - {vram: 0x88400200, type:  bss, name: fragments/25/fragment25_bss}

  - name: fragment25_relocs
    type: code
    bss_size: 0x0
    start: 0x1EA840
    vram: 0x00000000
    subsegments:
    - [0x1EA840, rodatabin,    fragments/25/fragment25_reloc]

# POKEMON LAB unknown code placed but not executed
  - name: fragment26
    type: code
    bss_size: 0x0
    start: 0x1EA860
    vram: 0x88500000
    subsegments:
    - [0x1EA860, textbin,   fragments/26/fragment26_header]
    - [0x1EA880, c,         fragments/26/fragment26]
    - [0x1F77E0, .data,     fragments/26/fragment26]
    - [0x1F7810, .rodata,   fragments/26/fragment26]

    - {vram: 0x8850CFE0, type:  .bss, name: fragments/26/fragment26}

  - name: fragment26_relocs
    type: code
    bss_size: 0x0
    start: 0x1F7840
    vram: 0x00000000
    subsegments:
    - [0x1F7840, rodatabin,    fragments/26/fragment26_reloc]

# pokemon lab PC: pokemon, item, boxes etc
  - name: fragment27
    type: code
    bss_size: 0x20
    start: 0x1F7C90
    vram: 0x88600000
    subsegments:
    - [0x1F7C90, textbin,   fragments/27/fragment27_header]
    - [0x1F7CB0, c,      fragments/27/fragment27]
    - [0x1FD750, .data,   fragments/27/fragment27]
    - [0x214060, .rodata, fragments/27/fragment27]

    - {vram: 0x8861C510, type:  .bss, name: fragments/27/fragment27}

  - name: fragment27_relocs
    type: code
    bss_size: 0x0
    start: 0x2141A0
    vram: 0x00000000
    subsegments:
    - [0x2141A0, rodatabin,    fragments/27/fragment27_reloc]

# pokemon lab: pokedex loader
  - name: fragment28
    type: code
    bss_size: 0xA60
    start: 0x214900
    vram: 0x88800000
    subsegments:
    - [0x214900, textbin,   fragments/28/fragment28_header]
    - [0x214920, c,      fragments/28/fragment28_214920]
    - [0x2190D0, c,      fragments/28/fragment28_2190D0]
    - [0x21CA50, .data,   fragments/28/fragment28_214920]
    - [0x234B50, .data,   fragments/28/fragment28_2190D0]
    - [0x23AF80, .rodata, fragments/28/fragment28_214920]
    - [0x23AFE0, .rodata, fragments/28/fragment28_2190D0]

    - {vram: 0x888267A0, type:  .bss, name: fragments/28/fragment28_214920}
    - {vram: 0x888269C0, type:  .bss, name: fragments/28/fragment28_2190D0}

  - name: fragment28_relocs
    type: code
    bss_size: 0x0
    start: 0x23B0A0
    vram: 0x00000000
    subsegments:
    - [0x23B0A0, rodatabin,    fragments/28/fragment28_reloc]

# POKEMON LAB PC some text functions but not executed
  - name: fragment29
    type: code
    bss_size: 0x0
    start: 0x23C250
    vram: 0x88900000
    subsegments:
    - [0x23C250, textbin,   fragments/29/fragment29_header]
    - [0x23C270, c,      fragments/29/fragment29]
    - [0x23D3C0, .data,   fragments/29/fragment29]

    - {vram: 0x889011E0, type:  .bss, name: fragments/29/fragment29}

  - name: fragment29_relocs
    type: code
    bss_size: 0x0
    start: 0x23D430
    vram: 0x00000000
    subsegments:
    - [0x23D430, rodatabin,    fragments/29/fragment29_reloc]

  - name: fragment29_misc_1
    type: code
    bss_size: 0x0
    start: 0x23D500
    vram: 0x88910000 # unk VRAM, shuts linker up
    subsegments:
    - [0x23D500, bin,    fragments/29/fragment29_unk_bin_1] # PERS-SZP file, pokeball, c buttons etc textures

  - name: fragment29_misc_2
    type: code
    bss_size: 0x0
    start: 0x23FB60
    vram: 0x88920000 # unk VRAM, shuts linker up
    subsegments:
    - [0x23FB60, bin,    fragments/29/fragment29_unk_bin_2] # PERS-SZP file, pokeball, c buttons etc textures

  - name: fragment29_misc_3
    type: code
    bss_size: 0x0
    start: 0x24F430
    vram: 0x88920000 # unk VRAM, shuts linker up
    subsegments:
    - [0x24F430, bin,    fragments/29/fragment29_unk_bin_3] # PERS-SZP file, pokeball, c buttons etc textures

  - name: fragment30
    type: code
    bss_size: 0x10
    start: 0x255230
    vram: 0x88A00000 # unknown vram, since nothing loads this. probably 88A00000?
    subsegments:
    - [0x255230, textbin,   fragments/30/fragment30_header]
    - [0x255250, c,      fragments/30/fragment30]

    - {vram: 0x88A00080, type:  bss, name: fragments/30/fragment30_bss}

  - name: fragment30_relocs
    type: code
    bss_size: 0x0
    start: 0x2552B0
    vram: 0x00000000
    subsegments:
    - [0x2552B0, rodatabin,    fragments/30/fragment30_reloc]

# transfer pak checker
  - name: fragment31
    type: code
    bss_size: 0x400
    start: 0x2552C0
    vram: 0x81000000
    subsegments:
    - [0x2552C0, textbin,   fragments/31/fragment31_header]
    - [0x2552E0, textbin,    fragments/31/fragment31_unk_table] # what is this?
    - [0x2554C0, c,      fragments/31/fragment31_2554C0]
    - [0x2557A0, c,      fragments/31/fragment31_2557A0]
    - [0x2558B0, c,      fragments/31/fragment31_2558B0]
    - [0x257750, c,      fragments/31/fragment31_257750]
    - [0x2577F0, c,      fragments/31/fragment31_2577F0]
    - [0x257AF0, c,      fragments/31/fragment31_257AF0]
    - [0x257DE0, c,      fragments/31/fragment31_257DE0]
    - [0x257EC0, c,      fragments/31/fragment31_257EC0]
    - [0x257FA0, c,      fragments/31/fragment31_257FA0]
    - [0x258080, c,      fragments/31/fragment31_258080]
    - [0x259030, c,      fragments/31/fragment31_259030]
    - [0x2590C0, c,      fragments/31/fragment31_2590C0]
    - [0x259290, .data,  fragments/31/fragment31_2554C0]
    - [0x2592A0, data,  fragments/31/fragment31_data]
    - [0x259480, rodata, fragments/31/fragment31_rodata_259480]
    - [0x259490, rodata, fragments/31/fragment31_rodata_259490]
    - [0x2594E0, .rodata, fragments/31/fragment31_2558B0]
    - [0x259A90, rodata, fragments/31/fragment31_rodata_259A90]

    - {vram: 0x810047E0, type:  bss, name: fragments/31/fragment31_bss}

  - name: fragment31_relocs
    type: code
    bss_size: 0x0
    start: 0x259AA0
    vram: 0x00000000
    subsegments:
    - [0x259AA0, rodatabin,    fragments/31/fragment31_reloc]

# drowzee minigame stage animations
  - name: fragment32
    type: code
    bss_size: 0x10
    start: 0x25A740
    vram: 0x81100000
    subsegments:
    - [0x25A740, textbin,   fragments/32/fragment32_header]
    - [0x25A760, c,      fragments/32/fragment32]
    - [0x25B060, .data,   fragments/32/fragment32]

    - {vram: 0x81100930, type:  .bss, name: fragments/32/fragment32}

  - name: fragment32_relocs
    type: code
    bss_size: 0x0
    start: 0x25B070
    vram: 0x00000000
    subsegments:
    - [0x25B070, rodatabin,    fragments/32/fragment32_reloc]

# transfer pak code
  - name: fragment33
    type: code
    bss_size: 0xAD0
    start: 0x25B0D0
    vram: 0x81300000
    subsegments:
    - [0x25B0D0, textbin,   fragments/33/fragment33_header]
    - [0x25B0F0, c,    fragments/33/fragment33]
    - [0x25ECF0, .data,   fragments/33/fragment33]
    - [0x25F020, .rodata, fragments/33/fragment33]

    - {vram: 0x81303FA0, type:  .bss, name: fragments/33/fragment33}

  - name: fragment33_relocs
    type: code
    bss_size: 0x0
    start: 0x25F070
    vram: 0x00000000
    subsegments:
    - [0x25F070, rodatabin,    fragments/33/fragment33_reloc]

  - name: fragment33_misc
    type: code
    bss_size: 0x0
    start: 0x25F440
    vram: 0x81310000 # unk vram, shuts linker up
    subsegments:
    - [0x25F440, bin,    fragments/33/fragment33_unk_bin_1] # PRES-JPEG, transfer machine background

# alternative pokemon textures pointer loader
  - name: fragment34
    type: code
    bss_size: 0x120
    start: 0x261F70
    vram: 0x81400000
    subsegments:
    - [0x261F70, textbin,   fragments/34/fragment34_header]
    - [0x261F90, c,      fragments/34/fragment34_261F90]
    - [0x264380, c,      fragments/34/fragment34_264380]
    - [0x269820, c,      fragments/34/fragment34_269820]
    - [0x26E540, c,      fragments/34/fragment34_26E540]
    - [0x26E6D0, c,      fragments/34/fragment34_26E6D0]
    - [0x26F9B0, c,      fragments/34/fragment34_26F9B0]
    - [0x26F9C0, .data,   fragments/34/fragment34_264380]
    - [0x2703D0, .data,   fragments/34/fragment34_269820]
    - [0x2703E0, .data,   fragments/34/fragment34_26E6D0]
    - [0x270570, .rodata, fragments/34/fragment34_269820]

    - {vram: 0x8140E620, type:  .bss, name: fragments/34/fragment34_261F90}

  - name: fragment34_relocs
    type: code
    bss_size: 0x0
    start: 0x270590
    vram: 0x00000000
    subsegments:
    - [0x270590, rodatabin,    fragments/34/fragment34_reloc]

# n64 logo code
  - name: fragment35
    type: code
    bss_size: 0x0
    start: 0x271260
    vram: 0x82000000
    subsegments:
    - [0x271260, textbin,   fragments/35/fragment35_header]
    - [0x271280, c,      fragments/35/fragment35]

    - {vram: 0x82000560, type:  bss, name: fragments/35/fragment35_bss}

  - name: fragment35_relocs
    type: code
    bss_size: 0x0
    start: 0x2717C0
    vram: 0x00000000
    subsegments:
    - [0x2717C0, rodatabin,    fragments/35/fragment35_reloc]

# title screen code
  - name: fragment36
    type: code
    bss_size: 0x30
    start: 0x2717E0
    vram: 0x82100000
    subsegments:
    - [0x2717E0, textbin,   fragments/36/fragment36_header]
    - [0x271800, c,      fragments/36/fragment36]
    - [0x2725A0, .data,   fragments/36/fragment36]
    - [0x272660, .rodata, fragments/36/fragment36]

    - {vram: 0x82100EA0, type:  .bss, name: fragments/36/fragment36}

  - name: fragment36_relocs
    type: code
    bss_size: 0x0
    start: 0x272680
    vram: 0x00000000
    subsegments:
    - [0x272680, rodatabin,    fragments/36/fragment36_reloc]

# stadium field loader
  - name: fragment37
    type: code
    bss_size: 0x100
    start: 0x272830
    vram: 0x82200000
    subsegments:
    - [0x272830, textbin,   fragments/37/fragment37_header]
    - [0x272850, c,      fragments/37/fragment37]
    - [0x2757D0, .data,   fragments/37/fragment37]
    - [0x275900, .rodata, fragments/37/fragment37]

    - {vram: 0x822030F0, type:  .bss, name: fragments/37/fragment37}

  - name: fragment37_relocs
    type: code
    bss_size: 0x0
    start: 0x275920
    vram: 0x00000000
    subsegments:
    - [0x275920, rodatabin,    fragments/37/fragment37_reloc]

# event battle loader
  - name: fragment38
    type: code
    bss_size: 0x9B30
    start: 0x275CE0
    vram: 0x82300000
    subsegments:
    - [0x275CE0, textbin,   fragments/38/fragment38_header]
    - [0x275D00, c,      fragments/38/fragment38]
    - [0x27B600, .data,   fragments/38/fragment38]
    - [0x27B6B0, .rodata, fragments/38/fragment38]

    - {vram: 0x82305A20, type:  .bss, name: fragments/38/fragment38}

  - name: fragment38_relocs
    type: code
    bss_size: 0x0
    start: 0x27B700
    vram: 0x00000000
    subsegments:
    - [0x27B700, rodatabin,    fragments/38/fragment38_reloc]

# minigames loader
  - name: fragment39
    type: code
    bss_size: 0x19F0
    start: 0x27BCA0
    vram: 0x82500000
    subsegments:
    - [0x27BCA0, textbin,   fragments/39/fragment39_header]
    - [0x27BCC0, c,      fragments/39/fragment39_27BCC0]
    - [0x2804C0, c,      fragments/39/fragment39_2804C0]
    - [0x281C40, c,      fragments/39/fragment39_281C40]
    - [0x281E50, .data,   fragments/39/fragment39_27BCC0]
    - [0x2846C0, .rodata, fragments/39/fragment39_27BCC0]
    - [0x284780, .rodata, fragments/39/fragment39_2804C0]

    - {vram: 0x82508AF0, type:  .bss, name: fragments/39/fragment39_27BCC0}
    - {vram: 0x8250A480, type:  .bss, name: fragments/39/fragment39_2804C0}

  - name: fragment39_relocs
    type: code
    bss_size: 0x0
    start: 0x284790
    vram: 0x00000000
    subsegments:
    - [0x284790, rodatabin,    fragments/39/fragment39_reloc]

# gym leader castle clear / pokemon gift code
  - name: fragment40
    type: code
    bss_size: 0x350
    start: 0x285DC0
    vram: 0x83100000
    subsegments:
    - [0x285DC0, textbin,   fragments/40/fragment40_header]
    - [0x285DE0, c,      fragments/40/fragment40]
    - [0x2879A0, .data,   fragments/40/fragment40]
    - [0x287C80, .rodata, fragments/40/fragment40]

    - {vram: 0x83101EE0, type:  .bss, name: fragments/40/fragment40}

  - name: fragment40_relocs
    type: code
    bss_size: 0x0
    start: 0x287CA0
    vram: 0x00000000
    subsegments:
    - [0x287CA0, rodatabin,    fragments/40/fragment40_reloc]

# pokemon trade machine loader
  - name: fragment41
    type: code
    bss_size: 0xCE50
    start: 0x287EB0
    vram: 0x82F00000
    subsegments:
    - [0x287EB0, textbin,   fragments/41/fragment41_header]
    - [0x287ED0, c,      fragments/41/fragment41_287ED0]
    - [0x289240, c,      fragments/41/fragment41_289240]
    - [0x28D1A0, c,      fragments/41/fragment41_28D1A0]
    - [0x28ED00, c,      fragments/41/fragment41_28ED00]
    - [0x291D60, c,      fragments/41/fragment41_291D60]
    - [0x2942C0, c,      fragments/41/fragment41_2942C0]
    - [0x29BA20, .data,   fragments/41/fragment41_287ED0]
    - [0x29BA40, .data,   fragments/41/fragment41_289240]
    - [0x29BAC0, .data,   fragments/41/fragment41_28D1A0]
    - [0x29BB60, .data,   fragments/41/fragment41_28ED00]
    - [0x29BE20, .data,   fragments/41/fragment41_291D60]
    - [0x29BE40, .data,   fragments/41/fragment41_2942C0]
    
    - [0x29BF80, .rodata, fragments/41/fragment41_287ED0]
    - [0x29C010, .rodata, fragments/41/fragment41_289240]
    - [0x29C040, .rodata, fragments/41/fragment41_28D1A0]
    - [0x29C090, .rodata, fragments/41/fragment41_28ED00]
    - [0x29C140, .rodata, fragments/41/fragment41_291D60]
    - [0x29C180, .rodata, fragments/41/fragment41_2942C0]

    - {vram: 0x82F14420, type:  .bss, name: fragments/41/fragment41_287ED0}
    - {vram: 0x82F144D0, type:  .bss, name: fragments/41/fragment41_289240}
    - {vram: 0x82F20A10, type:  .bss, name: fragments/41/fragment41_28D1A0}
    - {vram: 0x82F20A40, type:  .bss, name: fragments/41/fragment41_28ED00}
    - {vram: 0x82F210E0, type:  .bss, name: fragments/41/fragment41_291D60}
    - {vram: 0x82F21140, type:  .bss, name: fragments/41/fragment41_2942C0}

  - name: fragment41_relocs
    type: code
    bss_size: 0x0
    start: 0x29C2D0
    vram: 0x00000000
    subsegments:
    - [0x29C2D0, rodatabin,    fragments/41/fragment41_reloc]

# gallery loader
  - name: fragment42
    type: code
    bss_size: 0x170
    start: 0x29DD30
    vram: 0x83300000
    subsegments:
    - [0x29DD30, textbin,   fragments/42/fragment42_header]
    - [0x29DD50, c,      fragments/42/fragment42]
    - [0x2A0EB0, .data,   fragments/42/fragment42]
    - [0x2A0FE0, .rodata, fragments/42/fragment42]

    - {vram: 0x833032E0, type:  .bss, name: fragments/42/fragment42}

  - name: fragment42_relocs
    type: code
    bss_size: 0x0
    start: 0x2A1010
    vram: 0x00000000
    subsegments:
    - [0x2A1010, rodatabin,    fragments/42/fragment42_reloc]

# gallery code
  - name: fragment43
    type: code
    bss_size: 0x4D30
    start: 0x2A1B30
    vram: 0x83400000
    subsegments:
    - [0x2A1B30, textbin,   fragments/43/fragment43_header]
    - [0x2A1B50, c,      fragments/43/fragment43_2A1B50]
    - [0x2A3E70, c,      fragments/43/fragment43_2A3E70]
    - [0x2A3F60, c,      fragments/43/fragment43_2A3F60]
    - [0x2A4950, .data,   fragments/43/fragment43_2A1B50]
    - [0x2A4970, .data,   fragments/43/fragment43_2A3F60]
    - [0x2A49F0, .rodata, fragments/43/fragment43_2A3F60]

    - {vram: 0x83402EE0, type:  .bss, name: fragments/43/fragment43_2A1B50}
    - {vram: 0x83407BF0, type:  .bss, name: fragments/43/fragment43_2A3E70}
    - {vram: 0x83407C00, type:  .bss, name: fragments/43/fragment43_2A3F60}

  - name: fragment43_relocs
    type: code
    bss_size: 0x0
    start: 0x2A4A10
    vram: 0x00000000
    subsegments:
    - [0x2A4A10, rodatabin,    fragments/43/fragment43_reloc]

# gallery album code
  - name: fragment44
    type: code
    bss_size: 0x120
    start: 0x2A4DF0
    vram: 0x83500000
    subsegments:
    - [0x2A4DF0, textbin,   fragments/44/fragment44_header]
    - [0x2A4E10, c,      fragments/44/fragment44]
    - [0x2A8C60, .data, fragments/44/fragment44]
    - [0x2A8D60, .rodata, fragments/44/fragment44]

    - {vram: 0x83503FC0, type:  .bss, name: fragments/44/fragment44}

  - name: fragment44_relocs
    type: code
    bss_size: 0x0
    start: 0x2A8DB0
    vram: 0x00000000
    subsegments:
    - [0x2A8DB0, rodatabin,    fragments/44/fragment44_reloc]

# might be print code
  - name: fragment45
    type: code
    bss_size: 0xE0
    start: 0x2A9790
    vram: 0x83600000
    subsegments:
    - [0x2A9790, textbin,   fragments/45/fragment45_header]
    - [0x2A97B0, c,      fragments/45/fragment45]
    - [0x2ACA10, .data,   fragments/45/fragment45]
    - [0x2ACA70, .rodata, fragments/45/fragment45]

    - {vram: 0x836032F0, type:  .bss, name: fragments/45/fragment45}

  - name: fragment45_relocs
    type: code
    bss_size: 0x0
    start: 0x2ACA80
    vram: 0x00000000
    subsegments:
    - [0x2ACA80, rodatabin,    fragments/45/fragment45_reloc]

# gallery enlarge code
  - name: fragment46
    type: code
    bss_size: 0x10
    start: 0x2AD270
    vram: 0x83700000
    subsegments:
    - [0x2AD270, textbin,   fragments/46/fragment46_header]
    - [0x2AD290, c,      fragments/46/fragment46]
    - [0x2AD720, .data,   fragments/46/fragment46]

    - {vram: 0x837004C0, type:  .bss, name: fragments/46/fragment46}

  - name: fragment46_relocs
    type: code
    bss_size: 0x0
    start: 0x2AD730
    vram: 0x00000000
    subsegments:
    - [0x2AD730, rodatabin,    fragments/46/fragment46_reloc]

# gallery rental pokemon loader
  - name: fragment47
    type: code
    bss_size: 0x1E230
    start: 0x2AD8F0
    vram: 0x83800000
    subsegments:
    - [0x2AD8F0, textbin,   fragments/47/fragment47_header]
    - [0x2AD910, c,      fragments/47/fragment47_2AD910]
    - [0x2AE1F0, c,      fragments/47/fragment47_2AE1F0]
    - [0x2AFDB0, c,      fragments/47/fragment47_2AFDB0]

    - [0x2B25A0, .data,   fragments/47/fragment47_2AD910]
    - [0x2B25B0, .data,   fragments/47/fragment47_2AE1F0]
    - [0x2B2E30, .data,   fragments/47/fragment47_2AFDB0]

    - [0x2B2E50, .rodata, fragments/47/fragment47_2AD910]
    - [0x2B2E90, .rodata, fragments/47/fragment47_2AE1F0]
    - [0x2B2F10, .rodata, fragments/47/fragment47_2AFDB0]

    - {vram: 0x83805650, type:  .bss, name: fragments/47/fragment47_2AD910}
    - {vram: 0x83805670, type:  .bss, name: fragments/47/fragment47_2AE1F0}
    - {vram: 0x838067F0, type:  .bss, name: fragments/47/fragment47_2AFDB0}

  - name: fragment47_relocs
    type: code
    bss_size: 0x0
    start: 0x2B2F40
    vram: 0x00000000
    subsegments:
    - [0x2B2F40, rodatabin,    fragments/47/fragment47_reloc]

  # Gallery Debugger (unused)
  - name: fragment48
    type: code
    bss_size: 0x20D0
    start: 0x2B3F70
    vram: 0x83900000 # apparently not used either, but VRAM is an estimate based on the patterns around this fragment.
    subsegments:
    - [0x2B3F70, textbin,   fragments/48/fragment48_header]
    - [0x2B3F90, c,      fragments/48/fragment48]
    - [0x2B45A0, .data,   fragments/48/fragment48]
    - [0x2B45C0, .rodata, fragments/48/fragment48]

    - {vram: 0x839006B0, type:  .bss, name: fragments/48/fragment48}

  - name: fragment48_relocs
    type: code
    bss_size: 0x0
    start: 0x2B4620
    vram: 0x00000000
    subsegments:
    - [0x2B4620, rodatabin,    fragments/48/fragment48_reloc]

  - name: fragment49
    type: code
    bss_size: 0x20
    start: 0x2B46F0
    vram: 0x83A00000
    subsegments:
    - [0x2B46F0, textbin,   fragments/49/fragment49_header]
    - [0x2B4710, c,      fragments/49/fragment49]
    - [0x2B5240, .data,   fragments/49/fragment49]

    - {vram: 0x83A00B70, type:  .bss, name: fragments/49/fragment49}

  - name: fragment49_relocs
    type: code
    bss_size: 0x0
    start: 0x2B5260
    vram: 0x00000000
    subsegments:
    - [0x2B5260, rodatabin,    fragments/49/fragment49_reloc]

# hall of fame loader
  - name: fragment50
    type: code
    bss_size: 0x77360
    start: 0x2B5350
    vram: 0x82600000
    subsegments:
    - [0x2B5350, textbin,   fragments/50/fragment50_header]
    - [0x2B5370, c,      fragments/50/fragment50]
    - [0x2B91D0, .data,   fragments/50/fragment50]
    - [0x2BC690, .rodata, fragments/50/fragment50]

    - {vram: 0x82607410, type:  .bss, name: fragments/50/fragment50}

  - name: fragment50_relocs
    type: code
    bss_size: 0x0
    start: 0x2BC760
    vram: 0x00000000
    subsegments:
    - [0x2BC760, rodatabin,    fragments/50/fragment50_reloc]

  - name: fragment51
    type: code
    bss_size: 0x0
    start: 0x2BD0A0
    vram: 0x82800000 # unknown vram due to being unused, but based on the patterns before hand, this is probably 82800000.
    subsegments:
    - [0x2BD0A0, textbin,    fragments/51/fragment51_header]
    - [0x2BD0C0, c,      fragments/51/fragment51]

  - name: fragment51_relocs
    type: code
    bss_size: 0x0
    start: 0x2BD120
    vram: 0x00000000
    subsegments:
    - [0x2BD120, rodatabin,    fragments/51/fragment51_reloc]

  - name: fragment52
    type: code
    bss_size: 0x180
    start: 0x2BD130
    vram: 0x82800000 # unknown vram due to being unused, but based on the patterns before hand, this is probably 82900000.
    subsegments:
    - [0x2BD130, textbin,  fragments/52/fragment52_header]
    - [0x2BD150, c,    fragments/52/fragment52]
    - [0x2BD600, .data, fragments/52/fragment52]

    - {vram: 0x82800530, type:  .bss, name: fragments/52/fragment52}

  - name: fragment52_relocs
    type: code
    bss_size: 0x0
    start: 0x2BD660
    vram: 0x00000000
    subsegments:
    - [0x2BD660, rodatabin,  fragments/52/fragment52_reloc]

  - name: fragment53
    type: code
    bss_size: 0x200
    start: 0x2BD6E0
    vram: 0x82A00000
    subsegments:
    - [0x2BD6E0, textbin, fragments/53/fragment53_header]
    - [0x2BD700, c,    fragments/53/fragment53]
    - [0x2BDA40, .data, fragments/53/fragment53]

    - {vram: 0x82A00370, type:  .bss, name: fragments/53/fragment53}

  - name: fragment53_relocs
    type: code
    bss_size: 0x0
    start: 0x2BDA50
    vram: 0x00000000
    subsegments:
    - [0x2BDA50, rodatabin,  fragments/53/fragment53_reloc]

# RENTAL battle, rules, registration loader
  - name: fragment54
    type: code
    bss_size: 0x10
    start: 0x2BDAC0
    vram: 0x82B00000
    subsegments:
    - [0x2BDAC0, textbin,  fragments/54/fragment54_header]
    - [0x2BDAE0, c,    fragments/54/fragment54]
    - [0x2BEBE0, .data, fragments/54/fragment54]

    - {vram: 0x82B01140, type:  .bss, name: fragments/54/fragment54}

  - name: fragment54_relocs
    type: code
    bss_size: 0x0
    start: 0x2BEC00
    vram: 0x00000000
    subsegments:
    - [0x2BEC00, rodatabin,  fragments/54/fragment54_reloc]

# RENTAL rules loader
  - name: fragment55
    type: code
    bss_size: 0x762D0
    start: 0x2BED20
    vram: 0x83000000
    subsegments:
    - [0x2BED20, textbin,   fragments/55/fragment55_header]
    - [0x2BED40, c,      fragments/55/fragment55_2BED40]
    - [0x2C0F90, c,      fragments/55/fragment55_2C0F90]
    - [0x2C13F0, c,      fragments/55/fragment55_2C13F0]
    - [0x2C26E0, .data,   fragments/55/fragment55_2BED40]
    - [0x2C2890, .data,   fragments/55/fragment55_2C13F0]
    - [0x2C28A0, .rodata, fragments/55/fragment55_2BED40]
    - [0x2C2970, .rodata, fragments/55/fragment55_2C13F0]

    - {vram: 0x83003C80, type:  .bss, name: fragments/55/fragment55_2BED40}
    - {vram: 0x83003EE0, type:  .bss, name: fragments/55/fragment55_2C0F90}
    - {vram: 0x83003EF0, type:  .bss, name: fragments/55/fragment55_2C13F0}

  - name: fragment55_relocs
    type: code
    bss_size: 0x0
    start: 0x2C29A0
    vram: 0x00000000
    subsegments:
    - [0x2C29A0, rodatabin,    fragments/55/fragment55_reloc]

# options code
  - name: fragment56
    type: code
    bss_size: 0x10
    start: 0x2C3220
    vram: 0x82C00000
    subsegments:
    - [0x2C3220, textbin, fragments/56/fragment56_header]
    - [0x2C3240, c,    fragments/56/fragment56]

    - {vram: 0x82C01660, type:  .bss, name: fragments/56/fragment56}

  - name: fragment56_relocs
    type: code
    bss_size: 0x0
    start: 0x2C4880
    vram: 0x00000000
    subsegments:
    - [0x2C4880, rodatabin,  fragments/56/fragment56_reloc]

# RENTAL registration code
  - name: fragment57
    type: code
    bss_size: 0xC20
    start: 0x2C49D0
    vram: 0x82D00000
    subsegments:
    - [0x2C49D0, textbin,   fragments/57/fragment57_header]
    - [0x2C49F0, c,      fragments/57/fragment57]
    - [0x2CB970, .data,   fragments/57/fragment57]
    - [0x2CE950, .rodata, fragments/57/fragment57]

    - {vram: 0x82D09FF0, type:  .bss, name: fragments/57/fragment57}

  - name: fragment57_relocs
    type: code
    bss_size: 0x0
    start: 0x2CE9C0
    vram: 0x00000000
    subsegments:
    - [0x2CE9C0, rodatabin,    fragments/57/fragment57_reloc]

# sandshrew minigame stage animation
  - name: fragment58
    type: code
    bss_size: 0x40
    start: 0x2CF350
    vram: 0x84000000
    subsegments:
    - [0x2CF350, textbin,   fragments/58/fragment58_header]
    - [0x2CF370, c,      fragments/58/fragment58]
    - [0x2D1F30, .data,   fragments/58/fragment58]
    - [0x2D2000, .rodata, fragments/58/fragment58]

    - {vram: 0x84002D00, type:  .bss, name: fragments/58/fragment58}

  - name: fragment58_relocs
    type: code
    bss_size: 0x0
    start: 0x2D2050
    vram: 0x00000000
    subsegments:
    - [0x2D2050, rodatabin,    fragments/58/fragment58_reloc]

# stadium loader
  - name: fragment59
    type: code
    bss_size: 0x8C0
    start: 0x2D24C0
    vram: 0x84100000
    subsegments:
    - [0x2D24C0, textbin,   fragments/59/fragment59_header]
    - [0x2D24E0, c,      fragments/59/fragment59]
    - [0x2D48F0, .data,   fragments/59/fragment59]
    - [0x2D58F0, .rodata, fragments/59/fragment59]

    - {vram: 0x84103440, type:  .bss, name: fragments/59/fragment59}

  - name: fragment59_relocs
    type: code
    bss_size: 0x0
    start: 0x2D5900
    vram: 0x00000000
    subsegments:
    - [0x2D5900, rodatabin,    fragments/59/fragment59_reloc]

# cup code
  - name: fragment60
    type: code
    bss_size: 0xA00
    start: 0x2D5CB0
    vram: 0x82E00000
    subsegments:
    - [0x2D5CB0, textbin,   fragments/60/fragment60_header]
    - [0x2D5CD0, c,      fragments/60/fragment60]
    - [0x2D6DC0, .data,   fragments/60/fragment60]
    - [0x2D7650, .rodata, fragments/60/fragment60]

    - {vram: 0x82E019B0, type:  .bss, name: fragments/60/fragment60}

  - name: fragment60_relocs
    type: code
    bss_size: 0x0
    start: 0x2D7660
    vram: 0x00000000
    subsegments:
    - [0x2D7660, rodatabin,    fragments/60/fragment60_reloc]

# RENTAL pokemon loader
  - name: fragment61
    type: code
    bss_size: 0x2CA60
    start: 0x2D7890
    vram: 0x84200000
    subsegments:
    - [0x2D7890, textbin,   fragments/61/fragment61_header]
    - [0x2D78B0, c,      fragments/61/fragment61_2D78B0]
    - [0x2DB900, c,      fragments/61/fragment61_2DB900]
    - [0x2DD710, c,      fragments/61/fragment61_2DD710]
    - [0x2DFB60, c,      fragments/61/fragment61_2DFB60]
    - [0x2E2C20, c,      fragments/61/fragment61_2E2C20]
    - [0x2E4040, c,      fragments/61/fragment61_2E4040]
    - [0x2E5430, c,      fragments/61/fragment61_2E5430]

    - [0x2E85D0, .data,   fragments/61/fragment61_2D78B0]
    - [0x2E8630, .data,   fragments/61/fragment61_2DB900]
    - [0x2E8E40, .data,   fragments/61/fragment61_2DD710]
    - [0x2E8E60, .data,   fragments/61/fragment61_2DFB60]
    - [0x2E8E80, .data,   fragments/61/fragment61_2E2C20]
    - [0x2E8F90, .data,   fragments/61/fragment61_2E4040]
    - [0x2E90E0, .data,   fragments/61/fragment61_2E5430]
    
    - [0x2E9120, .rodata, fragments/61/fragment61_2D78B0]
    - [0x2E9150, .rodata, fragments/61/fragment61_2DB900]
    - [0x2E91D0, .rodata, fragments/61/fragment61_2DD710]
    - [0x2E9250, .rodata, fragments/61/fragment61_2DFB60]
    - [0x2E92B0, .rodata, fragments/61/fragment61_2E2C20]
    - [0x2E92E0, .rodata, fragments/61/fragment61_2E4040]
    - [0x2E9350, .rodata, fragments/61/fragment61_2E5430]

    - {vram: 0x84211B30, type:  .bss, name: fragments/61/fragment61_2D78B0}
    - {vram: 0x8423D400, type:  .bss, name: fragments/61/fragment61_2DB900}
    - {vram: 0x8423E580, type:  .bss, name: fragments/61/fragment61_2E4040}
    

  - name: fragment61_relocs
    type: code
    bss_size: 0x0
    start: 0x2E93C0
    vram: 0x00000000
    subsegments:
    - [0x2E93C0, rodatabin,    fragments/61/fragment61_reloc]

# battle system code
  - name: fragment62
    type: code
    bss_size: 0x37D20
    start: 0x2EA8C0
    vram: 0x84300000
    subsegments:
    - [0x2EA8C0, textbin,   fragments/62/fragment62_header]
    - [0x2EA8E0, c,      fragments/62/fragment62_2EA8E0]
    - [0x2EC3C0, c,      fragments/62/fragment62_2EC3C0]
    - [0x2F1D60, c,      fragments/62/fragment62_2F1D60]
    - [0x2F23A0, c,      fragments/62/fragment62_2F23A0]
    - [0x2F3CB0, c,      fragments/62/fragment62_2F3CB0]
    - [0x2F6930, c,      fragments/62/fragment62_2F6930]
    - [0x2F74E0, c,      fragments/62/fragment62_2F74E0]
    - [0x2FA4D0, c,      fragments/62/fragment62_2FA4D0]
    - [0x3020D0, c,      fragments/62/fragment62_3020D0]
    - [0x304060, c,      fragments/62/fragment62_304060]
    - [0x3055E0, c,      fragments/62/fragment62_3055E0]
    - [0x309ED0, c,      fragments/62/fragment62_309ED0]
    - [0x313250, c,      fragments/62/fragment62_313250]
    - [0x313D60, c,      fragments/62/fragment62_313D60]
    - [0x315830, c,      fragments/62/fragment62_315830]
    - [0x315D50, c,      fragments/62/fragment62_315D50]
    - [0x317E70, c,      fragments/62/fragment62_317E70]
    - [0x31A7E0, c,      fragments/62/fragment62_31A7E0]
    - [0x31AA30, c,      fragments/62/fragment62_31AA30]
    - [0x31C660, c,      fragments/62/fragment62_31C660]
    - [0x31D9F0, c,      fragments/62/fragment62_31D9F0]
    - [0x3223B0, c,      fragments/62/fragment62_3223B0]
    - [0x3274D0, c,      fragments/62/fragment62_3274D0]
    - [0x328F10, c,      fragments/62/fragment62_328F10]
    - [0x32A640, c,      fragments/62/fragment62_32A640]
    - [0x32B680, c,      fragments/62/fragment62_32B680]
    - [0x339CA0, c,      fragments/62/fragment62_339CA0]
    - [0x3438B0, c,      fragments/62/fragment62_3438B0]
    - [0x343BA0, c,      fragments/62/fragment62_343BA0]
    - [0x347330, c,      fragments/62/fragment62_347330]
    - [0x34A420, c,      fragments/62/fragment62_34A420]
    - [0x34E1A0, c,      fragments/62/fragment62_34E1A0]
    - [0x34F1A0, c,      fragments/62/fragment62_34F1A0]
    - [0x3502D0, c,      fragments/62/fragment62_3502D0]
    - [0x3512D0, c,      fragments/62/fragment62_3512D0]
    - [0x351F20, c,      fragments/62/fragment62_351F20]
    - [0x352570, c,      fragments/62/fragment62_352570]
    - [0x353370, c,      fragments/62/fragment62_353370]
    - [0x3540B0, c,      fragments/62/fragment62_3540B0]
    - [0x354CD0, c,      fragments/62/fragment62_354CD0]
    - [0x355A00, c,      fragments/62/fragment62_355A00]
    - [0x356730, c,      fragments/62/fragment62_356730]
    - [0x357C30, c,      fragments/62/fragment62_357C30]
    - [0x3591E0, c,      fragments/62/fragment62_3591E0]
    - [0x3597B0, c,      fragments/62/fragment62_3597B0]
    - [0x359F80, c,      fragments/62/fragment62_359F80]
    - [0x359F90, c,      fragments/62/fragment62_359F90]
    - [0x35DF70, c,      fragments/62/fragment62_35DF70]
    - [0x361050, c,      fragments/62/fragment62_361050]

    - [0x36EC10, .data,   fragments/62/fragment62_2EA8E0]
    - [0x36EE30, .data,   fragments/62/fragment62_2EC3C0]
    - [0x36EEC0, .data,   fragments/62/fragment62_2F3CB0]
    - [0x370010, .data,   fragments/62/fragment62_2F74E0]
    - [0x370050, .data,   fragments/62/fragment62_2FA4D0]
    - [0x370250, .data,   fragments/62/fragment62_3020D0]
    - [0x3702A0, .data,   fragments/62/fragment62_304060]
    - [0x370410, .data,   fragments/62/fragment62_3055E0]
    - [0x370430, .data,   fragments/62/fragment62_309ED0]
    - [0x370470, .data,   fragments/62/fragment62_315D50]
    - [0x3723C0, .data,   fragments/62/fragment62_32B680]
    - [0x372880, .data,   fragments/62/fragment62_343BA0]
    - [0x372B40, .data,   fragments/62/fragment62_347330]
    - [0x373920, .data,   fragments/62/fragment62_34A420]
    - [0x373BC0, .data,   fragments/62/fragment62_34E1A0]
    - [0x373CF0, .data,   fragments/62/fragment62_34F1A0]
    - [0x373E20, .data,   fragments/62/fragment62_3502D0]
    - [0x373F50, .data,   fragments/62/fragment62_3512D0]
    - [0x374040, .data,   fragments/62/fragment62_351F20]
    - [0x374170, .data,   fragments/62/fragment62_352570]
    - [0x374270, .data,   fragments/62/fragment62_353370]
    - [0x3742C0, .data,   fragments/62/fragment62_3540B0]
    - [0x374310, .data,   fragments/62/fragment62_354CD0]
    - [0x374420, .data,   fragments/62/fragment62_355A00]
    - [0x374530, .data,   fragments/62/fragment62_356730]
    - [0x3745A0, .data,   fragments/62/fragment62_357C30]
    - [0x374620, .data,   fragments/62/fragment62_3591E0]
    - [0x375110, .data,   fragments/62/fragment62_3597B0]
    - [0x375520, .data,   fragments/62/fragment62_359F90]
    - [0x375710, .data,   fragments/62/fragment62_35DF70]
    - [0x375870, .data,   fragments/62/fragment62_361050]

    - [0x3759C0, .rodata, fragments/62/fragment62_2EC3C0]
    - [0x375A60, .rodata, fragments/62/fragment62_2F3CB0]
    - [0x375B60, .rodata, fragments/62/fragment62_2F6930]
    - [0x375BA0, .rodata, fragments/62/fragment62_2F74E0]
    - [0x375BB0, .rodata, fragments/62/fragment62_2FA4D0]
    - [0x375C50, .rodata, fragments/62/fragment62_3020D0]
    - [0x375D50, .rodata, fragments/62/fragment62_304060]
    - [0x375EA0, .rodata, fragments/62/fragment62_3055E0]
    - [0x376100, .rodata, fragments/62/fragment62_309ED0]
    - [0x3764B0, .rodata, fragments/62/fragment62_313250]
    - [0x3764E0, .rodata, fragments/62/fragment62_313D60]
    - [0x376650, .rodata, fragments/62/fragment62_315D50]
    - [0x376790, .rodata, fragments/62/fragment62_317E70]
    - [0x3768B0, .rodata, fragments/62/fragment62_31C660]
    - [0x3768E0, .rodata, fragments/62/fragment62_31D9F0]
    - [0x3769B0, .rodata, fragments/62/fragment62_3223B0]
    - [0x376A10, .rodata, fragments/62/fragment62_3274D0]
    - [0x376A40, .rodata, fragments/62/fragment62_328F10]
    - [0x376AE0, .rodata, fragments/62/fragment62_32A640]
    - [0x376B40, .rodata, fragments/62/fragment62_32B680]
    - [0x3778A0, .rodata, fragments/62/fragment62_339CA0]
    - [0x377C90, .rodata, fragments/62/fragment62_343BA0]
    - [0x377DA0, .rodata, fragments/62/fragment62_347330]
    - [0x377E40, .rodata, fragments/62/fragment62_34A420]
    - [0x377FA0, .rodata, fragments/62/fragment62_34E1A0]
    - [0x377FC0, .rodata, fragments/62/fragment62_34F1A0]
    - [0x377FE0, .rodata, fragments/62/fragment62_3502D0]
    - [0x378000, .rodata, fragments/62/fragment62_3512D0]
    - [0x378040, .rodata, fragments/62/fragment62_351F20]
    - [0x378070, .rodata, fragments/62/fragment62_352570]
    - [0x3780B0, .rodata, fragments/62/fragment62_353370]
    - [0x378100, .rodata, fragments/62/fragment62_3540B0]
    - [0x378140, .rodata, fragments/62/fragment62_354CD0]
    - [0x378170, .rodata, fragments/62/fragment62_355A00]
    - [0x3781A0, .rodata, fragments/62/fragment62_356730]
    - [0x3781B0, .rodata, fragments/62/fragment62_357C30]
    - [0x3781D0, .rodata, fragments/62/fragment62_3591E0]
    - [0x3781E0, rodata, fragments/62/fragment62_rodata_3781E0]
    - [0x3784C0, .rodata, fragments/62/fragment62_359F90]
    - [0x378540, .rodata, fragments/62/fragment62_35DF70]
    - [0x3786B0, .rodata, fragments/62/fragment62_361050]

    - {vram: 0x8438E440, type:  .bss, name: fragments/62/fragment62_2EA8E0}
    - {vram: 0x8438E7B0, type:  .bss, name: fragments/62/fragment62_2EC3C0}
    - {vram: 0x843900B0, type:  bss, name: fragments/62/fragment62_bss1}
    - {vram: 0x843900D0, type:  .bss, name: fragments/62/fragment62_2F6930}
    - {vram: 0x84390120, type:  .bss, name: fragments/62/fragment62_2F74E0}
    - {vram: 0x84390190, type:  .bss, name: fragments/62/fragment62_2FA4D0}
    - {vram: 0x843901A0, type:  .bss, name: fragments/62/fragment62_3020D0}
    - {vram: 0x843901B0, type:  .bss, name: fragments/62/fragment62_3055E0}
    - {vram: 0x84390200, type:  .bss, name: fragments/62/fragment62_309ED0}
    - {vram: 0x84390240, type:  .bss, name: fragments/62/fragment62_313D60}
    - {vram: 0x843902A0, type:  .bss, name: fragments/62/fragment62_315D50}
    - {vram: 0x843920C0, type:  .bss, name: fragments/62/fragment62_343BA0}
    - {vram: 0x843925E0, type:  .bss, name: fragments/62/fragment62_347330}
    - {vram: 0x84397610, type:  .bss, name: fragments/62/fragment62_34A420}
    - {vram: 0x8439CA60, type:  .bss, name: fragments/62/fragment62_34E1A0}
    - {vram: 0x8439E680, type:  .bss, name: fragments/62/fragment62_34F1A0}
    - {vram: 0x843A06A0, type:  .bss, name: fragments/62/fragment62_3502D0}
    - {vram: 0x843A22C0, type:  .bss, name: fragments/62/fragment62_3512D0}
    - {vram: 0x843AA880, type:  .bss, name: fragments/62/fragment62_352570}
    - {vram: 0x843AB940, type:  .bss, name: fragments/62/fragment62_353370}
    - {vram: 0x843ACA10, type:  .bss, name: fragments/62/fragment62_3540B0}
    - {vram: 0x843ADA80, type:  .bss, name: fragments/62/fragment62_354CD0}
    - {vram: 0x843B8340, type:  .bss, name: fragments/62/fragment62_355A00}
    - {vram: 0x843C2C00, type:  .bss, name: fragments/62/fragment62_356730}
    - {vram: 0x843C3500, type:  .bss, name: fragments/62/fragment62_357C30}
    - {vram: 0x843C49C0, type:  .bss, name: fragments/62/fragment62_3591E0}
    - {vram: 0x843C4D90, type:  .bss, name: fragments/62/fragment62_3597B0}
    - {vram: 0x843C4DA0, type:  .bss, name: fragments/62/fragment62_359F90}
    - {vram: 0x843C5310, type:  .bss, name: fragments/62/fragment62_361050}

  - name: fragment62_relocs
    type: code
    bss_size: 0x0
    start: 0x378D00
    vram: 0x00000000
    subsegments:
    - [0x378D00, rodatabin,    fragments/62/fragment62_reloc]

# battle preparation flags, rules, code
  - name: fragment63
    type: code
    bss_size: 0xCD70
    start: 0x394100
    vram: 0x84B00000
    subsegments:
    - [0x394100, textbin,   fragments/63/fragment63_header]
    - [0x394120, c,      fragments/63/fragment63_394120]
    - [0x3974E0, c,      fragments/63/fragment63_3974E0]
    - [0x397B10, c,      fragments/63/fragment63_397B10]
    - [0x39AC50, c,      fragments/63/fragment63_39AC50]
    - [0x39BFB0, c,      fragments/63/fragment63_39BFB0]
    - [0x39ED60, c,      fragments/63/fragment63_39ED60]
    - [0x3A0010, c,      fragments/63/fragment63_3A0010]
    - [0x3A1970, c,      fragments/63/fragment63_3A1970]
    - [0x3A1C30, c,      fragments/63/fragment63_3A1C30]
    - [0x3A3BF0, c,      fragments/63/fragment63_data]
    
    - [0x3A3C10, .data,   fragments/63/fragment63_394120]
    - [0x3A3D40, .data,   fragments/63/fragment63_397B10]
    - [0x3A5D20, .data,   fragments/63/fragment63_39AC50]
    - [0x3A8D10, .data,   fragments/63/fragment63_39BFB0]
    - [0x3AA490, .data,   fragments/63/fragment63_39ED60]
    - [0x3AABA0, .data,   fragments/63/fragment63_3A0010]
    - [0x3AB000, .data,   fragments/63/fragment63_3A1970]
    - [0x3AB650, .data,   fragments/63/fragment63_3A1C30]
    - [0x3AB720, .data,   fragments/63/fragment63_data]
    
    - [0x3AD860, .rodata, fragments/63/fragment63_394120]
    - [0x3AD8B0, .rodata, fragments/63/fragment63_3974E0]
    - [0x3AD8C0, .rodata, fragments/63/fragment63_397B10]
    - [0x3AD8F0, .rodata, fragments/63/fragment63_39AC50]
    - [0x3AD900, .rodata, fragments/63/fragment63_39BFB0]
    - [0x3AD920, .rodata, fragments/63/fragment63_39ED60]
    - [0x3AD930, .rodata, fragments/63/fragment63_3A0010]
    - [0x3AD970, .rodata, fragments/63/fragment63_3A1970]
    - [0x3AD980, .rodata, fragments/63/fragment63_3A1C30]

    - {vram: 0x84B19910, type:  .bss, name: fragments/63/fragment63_394120}

  - name: fragment63_relocs
    type: code
    bss_size: 0x0
    start: 0x3ADA10
    vram: 0x00000000
    subsegments:
    - [0x3ADA10, rodatabin,    fragments/63/fragment63_reloc]

# menu selector before battle code
  - name: fragment64
    type: code
    bss_size: 0x12D00
    start: 0x3AEE50
    vram: 0x84800000
    subsegments:
    - [0x3AEE50, textbin,   fragments/64/fragment64_header]
    - [0x3AEE70, c,      fragments/64/fragment64]
    - [0x3B2390, .data,   fragments/64/fragment64]
    - [0x3B2530, .rodata, fragments/64/fragment64]

    - {vram: 0x84803760, type:  .bss, name: fragments/64/fragment64}

  - name: fragment64_relocs
    type: code
    bss_size: 0x0
    start: 0x3B25B0
    vram: 0x00000000
    subsegments:
    - [0x3B25B0, rodatabin,    fragments/64/fragment64_reloc]

# gym leader castle loader
  - name: fragment65
    type: code
    bss_size: 0x60
    start: 0x3B2AE0
    vram: 0x84A00000
    subsegments:
    - [0x3B2AE0, textbin,   fragments/65/fragment65_header]
    - [0x3B2B00, c,      fragments/65/fragment65]
    - [0x3B59E0, .data,   fragments/65/fragment65]
    - [0x3B5BE0, .rodata, fragments/65/fragment65]

    - {vram: 0x84A03130, type:  .bss, name: fragments/65/fragment65}

  - name: fragment65_relocs
    type: code
    bss_size: 0x0
    start: 0x3B5C10
    vram: 0x00000000
    subsegments:
    - [0x3B5C10, rodatabin,    fragments/65/fragment65_reloc]

  - name: fragment66
    type: code
    bss_size: 0x810
    start: 0x3B6130
    vram: 0x83200000
    subsegments:
    - [0x3B6130, textbin,   fragments/66/fragment66_header]
    - [0x3B6150, c,      fragments/66/fragment66]
    - [0x3B8080, .data,   fragments/66/fragment66]

    - {vram: 0x83202010, type:  .bss, name: fragments/66/fragment66}

  - name: fragment66_relocs
    type: code
    bss_size: 0x0
    start: 0x3B8140
    vram: 0x00000000
    subsegments:
    - [0x3B8140, rodatabin,    fragments/66/fragment66_reloc]

  - name: fragment67
    type: code
    bss_size: 0x0
    start: 0x3B8530
    vram: 0x8F000000
    subsegments:
    - [0x3B8530, textbin,   fragments/67/fragment67_header]
    - [0x3B8550, c,      fragments/67/fragment67]

  - name: fragment67_relocs
    type: code
    bss_size: 0x0
    start: 0x3B8560
    vram: 0x00000000
    subsegments:
    - [0x3B8560, rodatabin,    fragments/67/fragment67_reloc]

  # These are a bunch of seemingly unused(?) fragments which all they do is access or load fragment 67.
  - name: fragment68
    type: code
    bss_size: 0x0
    start: 0x3B8570
    vram: 0x8F100000 # unknown vram. Another unused one? Might be 8F100000?
    subsegments:
    - [0x3B8570, textbin, fragments/68/fragment68_header]
    - [0x3B8590, c,    fragments/68/fragment68]

  - name: fragment68_relocs
    type: code
    bss_size: 0x0
    start: 0x3B85F0
    vram: 0x00000000
    subsegments:
    - [0x3B85F0, rodatabin,  fragments/68/fragment68_reloc]

  - name: fragment69
    type: code
    bss_size: 0x0
    start: 0x3B8600
    vram: 0x8F200000 # unknown vram. Another unused one? Might be 8F200000?
    subsegments:
    - [0x3B8600, textbin,   fragments/69/fragment69_header]
    - [0x3B8620, c,      fragments/69/fragment69]

  - name: fragment69_relocs
    type: code
    bss_size: 0x0
    start: 0x3B8680
    vram: 0x00000000
    subsegments:
    - [0x3B8680, rodatabin,    fragments/69/fragment69_reloc]

  - name: fragment70
    type: code
    bss_size: 0x0
    start: 0x3B8690
    vram: 0x8F300000 # unknown vram. Another unused one? Might be 8F300000?
    subsegments:
    - [0x3B8690, textbin,   fragments/70/fragment70_header]
    - [0x3B86B0, c,      fragments/70/fragment70]

  - name: fragment70_relocs
    type: code
    bss_size: 0x0
    start: 0x3B8710
    vram: 0x00000000
    subsegments:
    - [0x3B8710, rodatabin,    fragments/70/fragment70_reloc]

  - name: fragment71
    type: code
    bss_size: 0x0
    start: 0x3B8720
    vram: 0x8F400000 # unknown vram. Another unused one? Might be 8F400000?
    subsegments:
    - [0x3B8720, textbin,   fragments/71/fragment71_header]
    - [0x3B8740, c,      fragments/71/fragment71]

  - name: fragment71_relocs
    type: code
    bss_size: 0x0
    start: 0x3B87A0
    vram: 0x00000000
    subsegments:
    - [0x3B87A0, rodatabin,    fragments/71/fragment71_reloc]

  - name: fragment72
    type: code
    bss_size: 0x0
    start: 0x3B87B0
    vram: 0x8F500000 # unknown vram. Another unused one? Might be 8F500000?
    subsegments:
    - [0x3B87B0, textbin, fragments/72/fragment72_header]
    - [0x3B87D0, c,    fragments/72/fragment72]

  - name: fragment72_relocs
    type: code
    bss_size: 0x0
    start: 0x3B8830
    vram: 0x00000000
    subsegments:
    - [0x3B8830, rodatabin,  fragments/72/fragment72_reloc]

  - name: fragment73
    type: code
    bss_size: 0x1990
    start: 0x3B8840
    vram: 0x8F600000 # unknown vram. Another unused one? Might be 8F600000?
    subsegments:
    - [0x3B8840, textbin, fragments/73/fragment73_header]
    - [0x3B8860, c,    fragments/73/fragment73]

  - name: fragment73_relocs
    type: code
    bss_size: 0x0
    start: 0x3B88C0
    vram: 0x00000000
    subsegments:
    - [0x3B88C0, rodatabin,  fragments/73/fragment73_reloc]

  - name: fragment74
    type: code
    bss_size: 0x0
    start: 0x3B88D0
    vram: 0x8F700000 # unknown vram. Another unused one? Might be 8F700000?
    subsegments:
    - [0x3B88D0, textbin, fragments/74/fragment74_header]
    - [0x3B88F0, c,    fragments/74/fragment74]

  - name: fragment74_relocs
    type: code
    bss_size: 0x0
    start: 0x3B8950
    vram: 0x00000000
    subsegments:
    - [0x3B8950, rodatabin,  fragments/74/fragment74_reloc]

  - name: fragment75
    type: code
    bss_size: 0x10
    start: 0x3B8960
    vram: 0x8FA00000
    subsegments:
    - [0x3B8960, textbin, fragments/75/fragment75_header]
    - [0x3B8980, c,    fragments/75/fragment75]
    - [0x3B9350, .data, fragments/75/fragment75]

    - {vram: 0x8FA00A20, type:  .bss, name: fragments/75/fragment75}

  - name: fragment75_relocs
    type: code
    bss_size: 0x0
    start: 0x3B9380
    vram: 0x00000000
    subsegments:
    - [0x3B9380, rodatabin,  fragments/75/fragment75_reloc]

  - name: fragment76
    type: code
    bss_size: 0x0
    start: 0x3B9590
    vram: 0x8FB00000 # unknown vram. Another unused one? Might be 8FB00000?
    subsegments:
    - [0x3B9590, textbin, fragments/76/fragment76_header]
    - [0x3B95B0, c,    fragments/76/fragment76]

  - name: fragment76_relocs
    type: code
    bss_size: 0x0
    start: 0x3B9610
    vram: 0x00000000
    subsegments:
    - [0x3B9610, rodatabin,  fragments/76/fragment76_reloc]

  - name: fragment77
    type: code
    bss_size: 0x0
    start: 0x3B9620
    vram: 0x8FC00000 # unknown vram. Another unused one? Might be 8FC00000?
    subsegments:
    - [0x3B9620, textbin,  fragments/77/fragment77_header]
    - [0x3B9640, c,    fragments/77/fragment77]

  - name: fragment77_relocs
    type: code
    bss_size: 0x0
    start: 0x3B96A0
    vram: 0x00000000
    subsegments:
    - [0x3B96A0, rodatabin,  fragments/77/fragment77_reloc]

  # assets
  - [0x3B96B0, bin, n64_logo_texture]
  - [0x3BA190, bin, fonts]
  - [0x3CB130, bin, backgrounds]
  - [0x45B580, bin, battle_headers]
  - [0x4A21C0, bin, common_menu0_ui]
  - [0x4BD6B0, bin, common_menu1_ui]
  - [0x4BE810, bin, common_menu2_ui]
  - [0x4D1330, bin, area_select_ui]
  - [0x4EB0C0, bin, menu_select_ui]
  - [0x5046B0, bin, stadium_select_ui]
  - [0x52ABA0, bin, title_ui]
  - [0x52F6D0, bin] # unused. Not loaded UI graphics. Could be leftovers from Stadium 0 (JP)?
  - [0x533B20, bin, battle_portraits]
  - [0x56E7D0, bin, stadium_models]
  - [0x5C7A70, bin]
  - [0x5C7AD0, bin, pokedex_area_model]
  - [0x5F6790, bin, sushi_go_round]
  - [0x5F92A0, bin, order_select_ui]
  - [0x5FFC30, bin, cup_ball_select_ui]
  - [0x613110, bin, trade_select_ui]
  - [0x6230D0, bin, kids_club_select_ui]
  - [0x66E1D0, bin, gym_leader_castle_clear_gfx]
  - [0x66F540, bin, rental_rules_ui]
  - [0x66FD80, bin, sushi_go_round_sprites]
  - [0x675FA0, bin, kids_club_game_ui]
  - [0x696350, bin, gallery_ui]
  - [0x69D090, bin, album_ui]
  - [0x6A9750, bin] # might be print_ui. Cant verify without access to a sticker station
  - [0x6AE1D0, bin, snap_select_ui]
  - [0x6B0FB0, bin, cup_clear_ui]
  - [0x6B4F00, bin, gb_pak_select_ui]
  - [0x6C1AB0, bin, victory_palace_plate_text]
  - [0x6C4CE0, bin, run_rattata_run_flag_gfx]
  - [0x6C4E50, bin, kanto_gb_map]
  - [0x6CA730, bin] # unused JPEG bin of 15 JPEGs mapping onto the type constants. What is this for?
  - [0x6E2F90, bin] # compressed blank file.
  - [0x6E2FC0, bin, battle_ui]
  - [0x6E8910, bin, transfer_pak_error_ui]
  - [0x6EB340, bin] # pokedex area flags?
  - [0x6EC4D0, bin] # another UI bin related to GB paks as its loaded whenever there is GB pak elements, however it doesnt seem(?) to be used.
  - [0x6ECE80, bin, badge_ui] 
  - [0x701E50, bin, gym_leader_castle_ui]
  - [0x70D3A0, bin] # maybe model animation related?
  - [0x7820E0, bin] 
  - [0x783760, bin, textdata]
  - [0x798CD0, bin]
  - [0x7994B0, bin, snap_mode_ui]
  - [0x79AFB0, bin, copyright]
  - [0x79B8F0]
  
  # ------------------------------------------------
  # sections hard aligned to an address start here
  # ------------------------------------------------

  # Seems to be the portion(s) of the ROM(s) used in GB Tower mode.
  - name: gb_tower_roms
    type: code
    bss_size: 0x0
    start: 0x7C0000
    vram: 0x8FC00000 # unknown vram. Another unused one? Might be 8FC00000?
    ld_align_segment_start: 0x7C0000
    subalign: 4
    subsegments: # unaligned starts
    - [0x7C0000, bin, rom_part_0]
    - [0x7C18F8, bin, rom_part_1]
    - [0x7C3398, bin, rom_part_2]
    - [0x7C4E14, bin, rom_part_3]
    - [0x7C6854, bin, rom_part_4]
    - [0x7C8154, bin, rom_part_5]
    - [0x7C9BA8, bin, rom_part_6]
    - [0x7CB654, bin, rom_part_7]
    - [0x7CD0D0, bin, rom_part_8]
    - [0x7CD3D4, bin, rom_part_9]
    - [0x7CD938, bin, rom_part_10]
    - [0x7CFFCC, bin, rom_part_11]
    - [0x7D1EF4, bin, rom_part_12]
    - [0x7D3CAC, bin, rom_part_13]
    - [0x7D56D8, bin, rom_part_14]
    - [0x7D79AC, bin, rom_part_15]
    - [0x7D9718, bin, rom_part_16]
    - [0x7DB5C0, bin, rom_part_17]
    - [0x7DD2F8, bin, rom_part_18]
    - [0x7DEF80, bin, rom_part_19]
    - [0x7E0894, bin, rom_part_20]
    - [0x7E2424, bin, rom_part_21]
    - [0x7E495C, bin, rom_part_22]
    - [0x7E6D4C, bin, rom_part_23]
    - [0x7E8FD0, bin, rom_part_24]
    - [0x7EAB78, bin, rom_part_25]
    - [0x7ED0E8, bin, rom_part_26]
    - [0x7EED64, bin, rom_part_27]
    - [0x7F118C, bin, rom_part_28]
    - [0x7F2A78, bin, rom_part_29]
    - [0x7F4774, bin, rom_part_30]
    - [0x7F6ABC, bin, rom_part_31]
    - [0x7F8E44, bin, rom_part_32]
    - [0x7FB188, bin, rom_part_33]
    - [0x7FD23C, bin, rom_part_34]
    - [0x7FF56C, bin, rom_part_35]
    - [0x8018C0, bin, rom_part_36]
    - [0x803BD0, bin, rom_part_37]
    - [0x805AE0, bin, rom_part_38]
    - [0x807C74, bin, rom_part_39]
    - [0x808378, bin, rom_part_40]
    - [0x809118, bin, rom_part_41]
    - [0x80B0DC, bin, rom_part_42]
    - [0x80C444, bin, rom_part_43]
    - [0x80E1DC, bin, rom_part_44]
    - [0x80F368, bin, rom_part_45]
    - [0x810FBC, bin, rom_part_46]
    - [0x812BA8, bin, rom_part_47]
    - [0x81491C, bin, rom_part_48]
    - [0x816B90, bin, rom_part_49]
    - [0x818C64, bin, rom_part_50]
    - [0x81AA20, bin, rom_part_51]
    - [0x81CB8C, bin, rom_part_52] # end of Yay0 files
    - [0x81EC28]

  # multi bin asset array of 152 uncompressed icons of the pokemon (last ID is Substitute Doll).
  - name: pokemon_icons
    type: code
    bss_size: 0x0
    start: 0x820000
    vram: 0x8FD00000 # unknown vram. Another unused one? Might be 8FD00000?
    ld_align_segment_start: 0x820000
    subsegments:
    - [0x820000, bin, pokemon_icons]

  # Trainer data
  - name: late_assets_3
    type: code
    bss_size: 0x0
    start: 0x898000
    vram: 0x8FE00000 # unknown vram. Another unused one? Might be 8FE00000?
    ld_align_segment_start: 0x898000
    subsegments:
    - [0x898000, bin]

  # move animation gfx data?
  - name: late_assets_4
    type: code
    bss_size: 0x0
    start: 0x8CC000
    vram: 0x8FF00000
    ld_align_segment_start: 0x8CC000
    subsegments:
    - [0x8CC000, bin]

  - name: pokemon_models
    type: code
    bss_size: 0x0
    start: 0x920000
    vram: 0x90000000
    ld_align_segment_start: 0x920000
    subsegments:
    - [0x920000, bin, pokemon_models]
    
  # sound data?
  - name: late_assets_6
    type: code
    bss_size: 0x0
    start: 0x15C0000
    vram: 0x91000000
    ld_align_segment_start: 0x15C0000
    subsegments:
    - [0x15C0000, bin]
  
  - [0x1FEC050, bin] # end of the ROM data, padding until 32MB
  - [0x2000000]
