Changelog:

Update to the latest ClownMDEmu core.
Improved VDP behaviour accuracy.
Improved CDC data transfer accuracy.
Gets Sonic Megamix v4.0b working.
CD music fader emulation.
Mega CD ‘coordinate conversion’ support.
Gets Sonic CD’s title screen, special stages, and D.A. Garden to appear correctly.
YM2612 low-frequency oscillator emulation.
Corrects inaccurate music in Thunder Force IV, Contra: Hard Corps, The Adventures of Batman & Robin, and more.
Correct per-operator frequency ordering.
Fixes sounds in Another World.
Save data support for Sonic 3 & Knuckles.
Update to the latest ClownCD library.
Support for non-44.1kHz audio.
Gets Sonic Winter Adventures’ CD soundtrack working.
Update common.
Fix crash when closing sprite plane debugger.Destructor order matters.
Closes #27.
Document that this uses C++20 now.
Fix crash when starting game with the VDP debugger open.
Fix Recent Software type not being updated.
Update common.
Update common and add CDC debugging window.
Fix monospace font logic in the CDC debugger.
Update common.
Fix that damn bad array access again.
Update common.
Update common.
Remove an unused variable.
Update common.
Update common.
Update README’s controls list.
Remove an extraneous newline.
Update SDL to v2.30.11.
Update common, switch to reading U16s from the CD.
Update common.Now with PRG-RAM write protection!
Support loading music-only CDs.Needed by Sonic Winter Adventures.
Update common.
Update common and add CDDA debugger.
Don’t move const rvalues.
Neaten-up the CDDA debugger.
Update common.
Update common.
Update common.
Update common.
Make tile debugger share code with the other VDP debuggers.
Update common.
Deduplicate more VDP debugger code.
Forward the ‘DisplayInternal’ arguments.
Move some pointer logic to ‘RegenerateTexturesIfNeeded’.
Split grid-viewer logic to its own class.Will be used for a stamp viewer,
Add stamp debugger.
Fix some bugs in the stamp debugger.
Streamine some debug grid code.
Simplify some grid viewer logic.
Update Dear ImGui to v1.91.6.
Fix another stamp debugger bug.
Make stamp debugger actually call stamps ‘stamps’.
Correct a variable name.
Update common.
Deduplicate some VDP debugging code.
Add support for swapping coordinates to VDP debugger drawing logic.
Add stamp map debugger.Damn, is this thing slow.
Make the stamp map tooltip image smaller.
Drop the decimal map piece index display.The grid display stopped showing decimal indices ages ago.
Tidy DisplayMap a bit.
Optimise the angle-printing logic.
Drop the other decimal piece index.
Tidy the DecomposeStampMetadata function slightly.
Correct the naming of some variables.
Fix grid viewers not updating when changing palette/brightness.
Add brightness and palette line options to the stamp map debugger.
Correct the naming of some variables.
Refactor the much of the debug VDP texture logic into various classes.Will be useful for hardware-accelerating more of the drawing process.
Move rectangle computation into RegeneratingPieces.
Hardware-accelerate the VDP debuggers’ rendering.
Move DrawTileHardwareAccelerated into RegeneratingPieces class.
Remove unused class.
Correct more variable naming.
Fix palette in the VDP debuggers.
Tidy up some VDP debugger code.
Fix stamp map viewer with other palette lines.
Deduplicate and simplify stamp map buffer size code.
Update common.
Make SIZE_OF_FRAME an std::size_t.It is a size, after all.
Update common.

Atualizações:

Atualização para o núcleo mais recente do ClownMDEmu.
Melhorada a precisão do comportamento do VDP.
Melhorada a precisão da transferência de dados CDC.
Faz o Sonic Megamix v4.0b funcionar.
Emulação do fade de música de CD.
Suporte para “conversão de coordenadas” do Mega CD.
Faz a tela de título, as fases especiais e o D.A. Garden do Sonic CD aparecerem corretamente.
Emulação do oscilador de baixa frequência YM2612.
Corrige a música imprecisa em Thunder Force IV, Contra: Hard Corps, The Adventures of Batman & Robin e mais.
Corrige a ordenação de frequência por operador.
Corrige sons em Another World.
Suporte a dados salvos para Sonic 3 & Knuckles.
Atualização para a biblioteca mais recente do ClownCD.
Atualizar comum.
Corrigir crash ao fechar o depurador do plano de sprites. A ordem do destruidor importa.
Fecha o #27.
Documentar que agora isso usa C++20.
Corrigir crash ao iniciar o jogo com o depurador do VDP aberto.
Corrigir tipo de “Recent Software” não sendo atualizado.
Atualizar comum.
Atualizar comum e adicionar janela de depuração do CDC.
Corrigir lógica de fonte monoespaçada no depurador CDC.
Atualizar comum.
Corrigir aquele maldito acesso errado a um array novamente.
Atualizar comum.
Atualizar comum.
Remover uma variável não utilizada.
Atualizar comum.
Atualizar comum.
Atualizar a lista de controles no README.
Remover uma nova linha extra.
Atualizar SDL para v2.30.11.
Atualizar comum, mudar para leitura de U16s do CD.
Atualizar comum. Agora com proteção de gravação PRG-RAM!
Suporte para carregar CDs só de música. Necessário para Sonic Winter Adventures.
Atualizar comum.
Atualizar comum e adicionar depurador CDDA.
Não mover valores constantes rvalue.
Arrumar o depurador CDDA.
Atualizar comum.
Atualizar comum.
Atualizar comum.
Atualizar comum.
Fazer o depurador de tiles compartilhar código com os outros depuradores VDP.
Atualizar comum.
Desduplicar mais código de depuração VDP.
Encaminhar os argumentos ‘DisplayInternal’.
Mover alguma lógica de ponteiro para ‘RegenerateTexturesIfNeeded’.
Separar a lógica do visualizador de grade para sua própria classe. Será usado para um visualizador de carimbo,
Adicionar depurador de carimbo.
Corrigir alguns bugs no depurador de carimbo.
Aprimorar algum código de grade de depuração.
Simplificar um pouco a lógica do visualizador de grade.
Atualizar Dear ImGui para v1.91.6.
Corrigir outro bug no depurador de carimbo.
Fazer o depurador de carimbo realmente chamar os carimbos de ‘carimbos’.
Corrigir o nome de uma variável.
Atualizar comum.
Desduplicar algum código de depuração VDP.
Adicionar suporte para trocar coordenadas na lógica de desenho do depurador VDP.
Adicionar depurador de mapa de carimbo. Caramba, essa coisa está lenta.
Fazer a imagem da dica de ferramenta do mapa de carimbo menor.
Remover a exibição de índice de peça decimal do mapa. A exibição de grade parou de mostrar índices decimais há muito tempo.
Arrumar um pouco o DisplayMap.
Otimizar a lógica de impressão de ângulo.
Remover o outro índice de peça decimal.
Arrumar um pouco a função DecomposeStampMetadata.
Corrigir o nome de algumas variáveis.
Corrigir os visualizadores de grade que não estavam atualizando ao mudar de paleta/ajuste de brilho.
Adicionar opções de linha de brilho e paleta ao depurador do mapa de carimbo.
Corrigir o nome de algumas variáveis.
Refatorar grande parte da lógica de depuração de textura VDP em várias classes. Isso será útil para acelerar o processo de desenho usando hardware.
Mover o cálculo de retângulo para RegeneratingPieces.
Acelerar a renderização dos depuradores VDP com hardware.
Mover DrawTileHardwareAccelerated para a classe RegeneratingPieces.
Remover classe não utilizada.
Corrigir mais nomes de variáveis.
Corrigir paleta nos depuradores VDP.
Arrumar mais código de depuração VDP.
Corrigir visualizador do mapa de carimbo com outras linhas de paleta.
Desduplicar e simplificar o código de tamanho do buffer do mapa de carimbo.
Atualizar comum.
Fazer SIZE_OF_FRAME ser um std::size_t. Afinal, é um tamanho.
Atualizar comum.