Originally ported from nullDC to libretro in commits:
2fa562db1b46c52b663b3dd4bb33a64907357458
f8eb58ac16a9e5adf662b99be5d00729264808e0
Modified for use w/ reicast per-game configuration
Since read_params, packet_cmd, read_buff, pio_buff, ata_cmd, cdda and
ByteCount have not been declared static, they are visible in other
translation units. Since their structs are anonymous, their types have
internal linkage only. Thus, accessing them in other translations units
is impossible anyway.
By declaring them static, we're giving it internal linkage so that
neither the type nor the variable are visible in other translation
units.
Here are the errors:
../../core/hw/gdrom/gdromv3.cpp:50:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> read_params' with
linkage
} read_params;
^
../../core/hw/gdrom/gdromv3.cpp:83:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> packet_cmd' with
linkage
} packet_cmd;
^
../../core/hw/gdrom/gdromv3.cpp:91:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> read_buff' with
linkage
} read_buff;
^
../../core/hw/gdrom/gdromv3.cpp💯3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> pio_buff' with
linkage
} pio_buff;
^
../../core/hw/gdrom/gdromv3.cpp:106:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> ata_cmd' with
linkage
} ata_cmd;
^
../../core/hw/gdrom/gdromv3.cpp:122:3: warning: anonymous type with no
linkage used to declare variable '<anonymous struct> cdda' with linkage
} cdda;
^
../../core/hw/gdrom/gdromv3.cpp:156:4: warning: anonymous type with no
linkage used to declare variable '<anonymous union> ByteCount' with
linkage
} ByteCount;
^
Notes:
Disc swapping should work on .gdi files (probably .chd files too).
Swapping with .cdi files is not currently supported because we currently create inaccurate TOC for them.
Only x86/Windows has a disc swap handler right now (ie: you can't swap on Android).