Changelog:

After release, increase version to 0.9.7
Adjust speed percentage for 128k shown in status bar
Remove two unused unit references from uses section of unit1
Update NOTICE
Sound output range 0.0 to 1.0, always above zero (used to be between-1.0 and 1.0)
Changes to sound volume storing in conf file
Add build date to conf
Rename conf section from “swan_version” to “version”
Updated copyright year in two units.
Calculate byte parity on 64-bit with 64-bit math (there it seems to be faster than “naive” implementation)
Add icons to all menu items; add “lucide icons” to project.
“SNA” format — removed wrong and misleading comment
Sound volume button – added side arrow, improved interaction with sound volume
Show disabled image in soud button when portaudio is not loaded
Change controls positioning in main form
Save memory bank to stream – add try-except around stream.write
Added “ULA late timings” emulation.
Remember rom paths
Added quick menu item to switch between early/late timings
Added saving “late timings” to config file.
Added lucide icon for “late timings” action.
Add our toolbar class, replace what was used in tape browser with this new control. Now it can be used for new main toolbar.
Rename UnitFileSna to UnitSnapshotFiles
Szx – small changes
Szx – implemented late timings loading/saving
Z80 – all block instructions set memptr to pc+1 (new discovery, passPatrik Rak’s tests updated to ver. 1.2a)
Added simple toolbar
Warn about missing portaudio library on start
When saving snapshot, check if the processor is in the middle of prefixed instruction, and if needed step to end of the instruction
Add volume trackbar to sound options
Add comments which explain a function
Add licence header to unitforminputpokes.pas
Spelling corrected
Help menu item – add hotkey prefix
Update year in copyright notice — all files where copyright appears
Toggle button state on show/hide on-screen keyboard
When creating tape, set Spectrum immediately
Szx – when saving tape file in snapshot, don’t use the value after its endian might have been swapped already (would be corrupted on big-endian system).
Some improvements in Spectrum characters conversion
Treat messages in tzx as cp1252 encoded, instead of ISO-8859-1, whichis almost same, only cp1252 has some additional characters where ISO-8859 has additional control codes
Remove an old comment
z80 snapshot – if 16k, allow loading when non-existing pages 0 and 2are present in snapshot
code cleanup
Remove method UnmapKey – not used
Code cleanup, check that all case statements have “otherwise” section.
Fix return value of saving z80 snapshot (only affected not adding itto “recent files” list, but might have appeared as something more serious in future)
Inform the user if anything might go wrong with snapshot saving
Improved messages when loading/saving snapshots
Z80 snapshot saving had bug – port 7ffd saved to wrong position. Fixed.
Replaced wrong double quotes with single quotes in a message
Instead of unnecessary AnsiQuotedStr, put quotes around string directly.
Display message to the user only after freeing possibly assigned filestream.
Property JoystickType reads field directly, instead through private getter
Do not show error message when user canceled file loading (it’s possible when there are multiple files in zip).
Reduce tail in tzx before pause to 945 ticks (as mentioned in pzx specification, it is the tail duration in rom save routine).
tzx bl. 0 (snapshots) – when loading snapshot to spectrum set internal stream position to zero, …
pzx – minor changes in code
TTapeBlock.GetBlockId returns DWord instead of Integer (consistent with TTapeBlocksMap keys definition).
Rename menu option Fast tape loading
Hold interrupt pin for 36 ticks on 128k, instead of 32 ticks, which is the correct value for 48k Spectrum.
Pzx “stop” block loading – swap endian in variable “flags” if needed
When the tape player stops, ensure that ear from tape is low
Szx – implemented ZXSTROM block
Szx – minor change
Custom roms – for 128K models, allow either one 32K file or two 16K files. Previously only two 16K files could be used.
Szx rom block – set auxiliary stream to nil
on-screen keyboard – add spectrum colours stripes
Removed old no more used procedure (forgot to remove it in previous commit, when it was replaced with new implementation).
Remove redundant line from code.
Separate screen drawing for screen switching and for border
Rename chosefile to chosestring, as the form can be used to choose from any list of strings.
Select block fully implemented and other changes…
Playing CSW files implemented
Removed the old no more accureate comment
Tzx block 0x18 (csw block) now fully implemented
csw – some small changes
set initial result in a function
csw – fix date displayed in tape player
Small temp. memory adjustment
A very small change, nothing functional
Grids – some common code grouped
Tzx bl. 0x28 (select block) – cope somehow with line breaks. There shouldn’t be any, though.
Change menu item “Hide toolbar” to “Show toolbar”. Now checked when visible.
Tzx block 11 – “Pause after block” line moved to the bottom in tape player details
Removed declaration of unused types (left since who knows when)
Some change in handling interrupt hold duration when loading szx
add copyright note
add include zxinc in a couple of files
Clean handling of some method lists
Force tape browser grid updating on each change block
Store library path only when it is valid
tzx bl. 19 – some checking of data validity added
csw – a minor fix
csw – the details displayed in tape player now begin with capital case
Processor – some micro optimization
tape options – add “csw” to a label text
Szx – when saving tape block, save default extension for tape class,instead of the extension taken from the actual file (this saves the correct information about tape type)
Add loading of binary file to ram (paged ram only)
Add mnemonic to debug display – work in progress…
Add copyright notice to unitdlgstartaddress.pas and add the file to project
Removed old no more used const
debugger… work in progress
Merge branch ‘main’ of https://github.com/zoran-vucenovic/swan
debugger – added interrupt mode; small rearangement of controls
small changes in some hint texts
debugger – added display of t-states in current frame
debugger – some display changes
debugger – execute whole prefixed instruction in one step
small changes
Remove range checking in release mode
Debugger – start implement breakpoints – basic functionality
Debugger – added basic breakpoints support
Dialog for auto saving snapshots – remove maximize and minimize border icons
debug – memory grid, some changes in drawing
debug form – changed layout of controls
When leaving debug form, the pause state was not checked. Fixed
debug form – changes in layout
debugging… further work…
Debugger window – add popup menu to memory grid
Fixed typing mistake in a hint text
Breakpoints, some changes…
A fix when loading binary file in ram memory
When closing debugginh window on breakpoing, the debugger form used to open immediately; fixed.
Debugger – simplifying
Debugger – fix showing popup menu in grid when on line 0
Small insignificant code change
Debugger – add button to continue running (until breakpoint) withoutclosing the debugger
Debugger: when press on run, pass focus to main form
Some code refactoring
Auto snapshot – fix frames count (when debugger window shown, it usedto count non-existing frames
Debugger – remove saving “Follow PC” option. Now I think better not to save it.
Fix spelling mistake – one letter in a comment 😉
Group some common functionality to a separate function
Code cleanup – remove trailing spaces from lines
Add fpc directive to treat creating abstract class as an error
Derive TGridBreakpoints from TCustomDrawGrid instead of TDrawGrid
Debugger – disallow mouse clicks out of grid items
Revert “Debugger – disallow mouse clicks out of grid items”
Editing of toolbar buttons added
Added copyright info to UnitSwanTreeView.pas
Store toolbar buttons in config file
Toolbar options – added button to reset to default set of tool buttons
Added right-click popup menu to toolbar with “popup options…”
Added icons for toolbar options and recent files
Use some dummy object instead of Spectrum for delaying event calling
Added some menu icons
Change set of default tollbar buttons
Toolbar – all menu items with images made available to add
Change a parameter to const
“Toolbar options” added to all options window
Remove unused override
Toolbar – adjust size according to number of buttons
Toolbar options – added divider and spacer
Toolbar options – fix selection in grid when adding divider or spacer
Toolbar options in all options – anchor bottom side
Colour palette dialog – minor change
Toolbar options on “all objects” dialog – fix “treeview has no parentwindow” bug (used to happen sometimes, albeit not easily reproduceable)
Move the variable initialization out of the condition
All options dialog – do not allow switching dialogs when current dialog is in invalid state
Remove duplicate code, obviously added by mistake
Toolbar options – fix expanding the node which has avilable subnodes(when the first has no available items, because all had been already selected to be shown in toolbar)
Sound library path on all options dialog might have got cleared. Fixed.
Remove unused variable
Small code cleanup
Updated link to portaudio (https instead of http) in About box.
Toolbar options – add titles above panes
Do not call TapePlayer.OnChangeBlock more than once per frame
Tzx block 24 – “number of repetitions” in the specification apparently means “number of passes”. It used to be implemented as how many times to be repeted, not counting the first pass
Debugger window – replace spin edit with normal edit for “jump to address”, so that address can be entered in hex.
Debugger window – small change of some hint text and a button position
Szx – do not save path to file when it is in zip or loaded from another szx as embedded
Change in display of block details in tape player; use own implementation of AdjustLineBreaks, instead of the one from sysutils
Change behaviour of tzx block 0x28, add OnUserInteraction and sync itimmediately with main thread
Tape player – only create tape stream when the tape is loaded correctly (the stream is used only when saving szx tape block with embedded tape)
Improved error messages when loading files
AY stereo implemented and added option to choose between mono and stereo output.
Add AY mono/stereo option to config file – default stereo
Debugger window, tiny layout change – frames passed and frame ticks
Debugger – display mounted rom, ram, screen banks
Debugger window – some small changes
Fast loading – intercept LD_EDGE_1
Fast loading, options, …
Correct some wrong comments
Fast load – tzx block pause – skip next edge detection if close to next block
Small changes
Fast loading, detects edges standard rom routine in pzx too
Move edge detection routine to TSpectrum scope (a method instead of anested procedure)
Fast load – don’t try to detect an edge when only small amount of ticks remained
On-screen keyboard – changed keys colour; small changes in text aboveand bellow the keys
All options dialog – sound – skip asking confirmation when closing options dialog and sound tab is not active
All options – skip saving path to portaudio library if wasn’t on sound tab
Options – spectrum model – keep custom rom when model wasn’t changed
Small change
Hide some not yet used labels
Spectrum keys dialog – behave more uniformly on all widgetsets (remove border drawn by widgetset from spectrum key control)
Update year in copyright notice
Key mappings dialog – derive one key mapping control from TCustomControl instead of TFrame (when derived from TFrame, on Qt arrow keys don’t move selection in scrollbox)
Config – move version from general to first level section
Sound buffer – use Int16 instead of float for sample format
AY sound chip small changes
Debugger form – added “paging enabled” indicator
Better volume adjustment for beeper sound
Add stereo A-C-B output variant
Some very small change
Added “ReleaseGtk2” build mode to project options, for building Gtk2release when ide was built with other widgetset.
Rename “ReleaseQt” build mode to “ReleaseQt5”
Updated README.md file
“beta” specification removed from version string in About box
Toolbar – add some items to default set of buttons
Set version to 0.9.8 – new release

Atualizações:

Ajustar o percentual de velocidade para 128k mostrado na barra de status.
Remover duas referências de unidade não utilizadas na seção de usos da unit1.
Atualizar NOTICE.
Faixa de saída de som de 0.0 a 1.0, sempre acima de zero (antes era entre -1.0 e 1.0).
Alterações no armazenamento de volume de som no arquivo de configuração.
Adicionar data de compilação no arquivo de configuração.
Renomear seção de configuração de “swan_version” para “version”.
Atualizar ano de copyright em duas unidades.
Calcular paridade de byte em 64 bits com matemática de 64 bits (lá parece ser mais rápido do que a implementação “ingênua”).
Adicionar ícones a todos os itens do menu; adicionar “lucide icons” ao projeto.
Formato “SNA” — remover comentário errado e enganoso.
Botão de volume de som — adicionar seta lateral, melhorar a interação com o volume de som.
Mostrar imagem desativada no botão de som quando o portaudio não estiver carregado.
Alterar o posicionamento dos controles no formulário principal.
Salvar banco de memória no fluxo – adicionar try-except ao redor do stream.write.
Adicionada emulação de “ULA late timings”.
Lembrar caminhos de ROM.
Adicionar item de menu rápido para alternar entre “early/late timings”.
Adicionar salvamento de “late timings” no arquivo de configuração.
Adicionar ícone lucide para a ação de “late timings”.
Adicionar nossa classe de barra de ferramentas, substituir o que era usado no navegador de fitas por esse novo controle. Agora pode ser usado para a nova barra de ferramentas principal.
Renomear UnitFileSna para UnitSnapshotFiles.
Szx – pequenas alterações.
Szx – implementado carregamento/salvamento de “late timings”.
Z80 – todas as instruções de bloco definem memptr para pc+1 (nova descoberta, testes de passPatrik Rak atualizados para versão 1.2a).
Adicionada barra de ferramentas simples.
Avisar sobre a falta da biblioteca portaudio no início.
Ao salvar snapshot, verificar se o processador está no meio de uma instrução prefixada e, se necessário, avançar até o final da instrução.
Adicionar controle deslizante de volume nas opções de som.
Adicionar comentários explicando uma função.
Adicionar cabeçalho de licença ao unitforminputpokes.pas.
Corrigido erro de digitação.
Item de menu de ajuda – adicionar prefixo de atalho.
Atualizar ano no aviso de copyright — em todos os arquivos onde aparece.
Alternar estado do botão ao mostrar/ocultar teclado na tela.
Ao criar fita, definir Spectrum imediatamente.
Szx – ao salvar o arquivo de fita no snapshot, não usar o valor após a troca de endian, que poderia ser corrompido em sistemas big-endian.
Algumas melhorias na conversão de caracteres do Spectrum.
Tratar mensagens em tzx como codificadas em cp1252, em vez de ISO-8859-1, que é quase igual, mas cp1252 tem alguns caracteres adicionais enquanto ISO-8859 tem códigos de controle adicionais.
Remover um comentário antigo.
Snapshot de z80 – se for 16k, permitir carregar quando páginas 0 e 2 não existentes estiverem presentes no snapshot.
Limpeza de código.
Remover método UnmapKey – não utilizado.
Limpeza de código, verificar se todas as instruções case têm a seção “otherwise”.
Corrigir valor de retorno ao salvar snapshot de z80 (afectava apenas a não adição à lista de “arquivos recentes”, mas poderia parecer algo mais sério no futuro).
Informar o usuário se algo der errado ao salvar o snapshot.
Mensagens aprimoradas ao carregar/salvar snapshots.
Salvamento de snapshot de z80 tinha um erro – porta 7ffd salva na posição errada. Corrigido.
Substituir as aspas duplas erradas por aspas simples em uma mensagem.
Em vez de usar AnsiQuotedStr, colocar as aspas diretamente na string.
Exibir mensagem ao usuário somente depois de liberar o filestream que pode ter sido atribuído.
A propriedade JoystickType lê o campo diretamente, em vez de passar por um getter privado.
Não exibir mensagem de erro quando o usuário cancela o carregamento do arquivo (é possível quando há vários arquivos no zip).
Reduzir o tail em tzx antes da pausa para 945 ticks (conforme mencionado na especificação pzx, essa é a duração do tail na rotina de salvamento de ROM).
Tzx bl. 0 (snapshots) – ao carregar snapshot para Spectrum, definir a posição interna do stream para zero.
Pzx – pequenas alterações no código.
TTapeBlock.GetBlockId agora retorna DWord em vez de Integer (consistente com a definição de chaves em TTapeBlocksMap).
Renomear opção de menu para “Carregamento rápido de fita”.
Manter o pino de interrupção pressionado por 36 ticks em 128k, em vez de 32 ticks, que é o valor correto para o Spectrum 48k.
Bloqueio “stop” do pzx – inverter endian na variável “flags” se necessário.
Quando o reprodutor de fita parar, garantir que o som da fita esteja baixo.
Szx – implementado bloco ZXSTROM.
Szx – pequena alteração.
ROMs personalizadas – para modelos 128K, permitir um arquivo de 32K ou dois arquivos de 16K. Antes, só podiam ser usados dois arquivos de 16K.
Bloco de ROM Szx – definir fluxo auxiliar como nil.
Teclado na tela – adicionar listras de cores do Spectrum.
Remover procedimento antigo não mais utilizado (esquecido de ser removido no commit anterior, quando foi substituído por uma nova implementação).
Remover linha redundante do código.
Desenho de tela separado para troca de tela e para a borda.
Renomear chosefile para chosestring, já que o formulário pode ser usado para escolher de qualquer lista de strings.
Seleção de bloco totalmente implementada e outras mudanças.
Reprodução de arquivos CSW implementada.
Remover o comentário antigo não mais preciso.
Bloco tzx 0x18 (bloco csw) agora totalmente implementado.
Csw – algumas pequenas alterações.
Definir resultado inicial em uma função.
Csw – corrigir data exibida no reprodutor de fita.
Pequeno ajuste temporário de memória.
Uma mudança muito pequena, nada funcional.
Grids – alguns códigos comuns agrupados.
Tzx bl. 0x28 (bloco de seleção) – lidar com quebras de linha. Não deveria haver quebras, no entanto.
Alterar item de menu “Esconder barra de ferramentas” para “Mostrar barra de ferramentas”. Agora marcado quando visível.
Bloco tzx 11 – a linha “Pausa após bloco” foi movida para o final nos detalhes do reprodutor de fita.
Remover declaração de tipos não utilizados (deixada desde sabe-se quando).
Alguma mudança no tratamento da duração da manutenção de interrupções ao carregar szx.
Adicionar nota de copyright.
Adicionar include zxinc em alguns arquivos.
Manipulação limpa de algumas listas de métodos.
Forçar atualização da grade do navegador de fitas a cada mudança de bloco.
Armazenar o caminho da biblioteca somente quando for válido.
Tzx bl. 19 – adicionada verificação de validade dos dados.
Csw – uma correção menor.
Csw – os detalhes exibidos no reprodutor de fita agora começam com a primeira letra maiúscula.
Processador – uma micro otimização.
Opções de fita – adicionar “csw” ao texto do rótulo.
Szx – ao salvar o bloco de fita, salvar a extensão padrão para a classe de fita, em vez da extensão retirada do arquivo atual (isso salva as informações corretas sobre o tipo de fita).
Adicionar carregamento de arquivo binário para ram (somente ram paginada).
Adicionar mnemônicos à exibição de depuração – trabalho em andamento…
Adicionar aviso de copyright ao unitdlgstartaddress.pas e adicionar o arquivo ao projeto.
Remover constante antiga não mais utilizada.
Depurador… trabalho em andamento.
Mesclar branch ‘main’ de https://github.com/zoran-vucenovic/swan.
Depurador – adicionar modo de interrupção; pequeno rearranjo dos controles.
Pequenas alterações em alguns textos de dica.
Depurador – adicionar exibição de t-estados no quadro atual.
Depurador – algumas alterações de exibição.
Depurador – executar toda a instrução prefixada em um único passo.
Pequenas mudanças.
Remover verificação de intervalo em modo de lançamento.
Depurador – começar a implementar pontos de interrupção – funcionalidade básica.
Depurador – adicionar suporte básico para pontos de interrupção.
Caixa de diálogo para salvar automaticamente snapshots – remover ícones de maximizar e minimizar.
Depuração – grade de memória, algumas mudanças no desenho.
Formulário de depuração – mudança no layout dos controles.
Ao sair do formulário de depuração, o estado de pausa não estava sendo verificado. Corrigido.
Formulário de depuração – mudanças no layout.
Depuração… mais trabalho…
Janela de depuração – adicionar menu popup à grade de memória.
Corrigido erro de digitação em um texto de dica.
Pontos de interrupção, algumas mudanças…
Correção ao carregar arquivo binário na memória ram.
Quando fechar a janela de depuração no ponto de interrupção, o formulário de depuração se abria imediatamente; corrigido.
Depurador – simplificando.
Depurador – corrigir exibição de menu popup na grade quando na linha 0.
Pequena mudança insignificante no código.
Depurador – adicionar botão para continuar executando (até o ponto de interrupção) sem fechar o depurador.
Depurador: ao pressionar executar, passar o foco para o formulário principal.
Alguma refatoração de código.
Auto snapshot – corrigir contagem de quadros (quando a janela de depuração era mostrada, contava quadros inexistentes).
Depurador – remover salvamento da opção “Seguir PC”. Agora penso que é melhor não salvá-la.
Corrigir erro de digitação – uma letra em um comentário.
Agrupar algumas funcionalidades comuns em uma função separada.
Limpeza de código – remover espaços em branco nas linhas.
Adicionar diretiva fpc para tratar a criação de classe abstrata como erro.
Derivar TGridBreakpoints de TCustomDrawGrid em vez de TDrawGrid.
Depurador – desabilitar cliques do mouse fora dos itens da grade.
Reverter “Depurador – desabilitar cliques do mouse fora dos itens da grade”.
Edição dos botões da barra de ferramentas adicionada.
Adicionar informações de copyright ao UnitSwanTreeView.pas.
Armazenar botões da barra de ferramentas no arquivo de configuração.
Opções da barra de ferramentas – adicionar botão para redefinir o conjunto de botões padrão.
Adicionar menu popup com “opções do popup…” na barra de ferramentas.
Adicionar ícones para opções da barra de ferramentas e arquivos recentes.
Usar algum objeto fictício em vez de Spectrum para atrasar a chamada de eventos.
Adicionar alguns ícones ao menu.
Alterar conjunto de botões padrão da barra de ferramentas.
Barra de ferramentas – tornar todos os itens do menu com imagens disponíveis para adicionar.
Alterar parâmetro para const.
“Opções da barra de ferramentas” adicionadas à janela de opções “todas as opções”.
Remover override não utilizado.
Barra de ferramentas – ajustar o tamanho de acordo com o número de botões.
Opções da barra de ferramentas – adicionar divisor e espaçador.
Opções da barra de ferramentas – corrigir seleção na grade ao adicionar divisor ou espaçador.
Opções da barra de ferramentas em todas as opções – ancorar a parte inferior.
Diálogo da paleta de cores – pequena mudança.
Opções da barra de ferramentas no diálogo “todos os objetos” – corrigir erro “treeview não tem janela pai” (ocorria às vezes, embora não fosse facilmente reproduzível).
Mover inicialização da variável para fora da condição.
Janela “Todas as opções” – não permitir mudar de janela quando a janela atual está em estado inválido.
Remover código duplicado, adicionado evidentemente por engano.
Opções da barra de ferramentas – corrigir expansão do nó que tem subnós disponíveis (quando o primeiro não tem itens disponíveis, pois todos já haviam sido selecionados para exibição na barra de ferramentas).
Caminho da biblioteca de som no diálogo “todas as opções” pode ter sido apagado. Corrigido.
Remover variável não utilizada.
Pequena limpeza de código.
Atualizar link para portaudio (https em vez de http) na caixa “Sobre”.
Opções da barra de ferramentas – adicionar títulos acima dos painéis.
Não chamar TapePlayer.OnChangeBlock mais de uma vez por quadro.
Bloco tzx 24 – “número de repetições” na especificação aparentemente significa “número de passagens”. Antes, era implementado como o número de vezes a ser repetido, sem contar a primeira passagem.
Janela do depurador – substituir o spin edit por um edit normal para “ir para o endereço”, para que o endereço possa ser inserido em hexadecimal.
Janela do depurador – pequena mudança em alguns textos de dica e na posição de um botão.
Szx – não salvar o caminho do arquivo quando ele está em zip ou carregado de outro szx como incorporado.
Alterar exibição dos detalhes do bloco no reprodutor de fita; usar nossa própria implementação de AdjustLineBreaks, em vez da de sysutils.
Alterar comportamento do bloco tzx 0x28, adicionar OnUserInteraction e sincronizá-lo imediatamente com o thread principal.
Reprodutor de fita – criar o stream de fita apenas quando a fita for carregada corretamente (o stream é usado apenas quando salva o bloco de fita szx com fita incorporada).
Melhorar mensagens de erro ao carregar arquivos.
Implementado AY estéreo e adicionada opção de escolher entre saída mono e estéreo.
Adicionar opção AY mono/stereo ao arquivo de configuração – estéreo por padrão.
Janela do depurador, pequena mudança de layout – quadros passados e ticks de quadro.
Janela do depurador – algumas pequenas mudanças.
Carregamento rápido – interceptar LD_EDGE_1.
Carregamento rápido, opções…
Corrigir alguns comentários errados.
Carregamento rápido – bloco tzx pausa – pular a detecção de borda se estiver perto do próximo bloco.
Pequenas mudanças.
Carregamento rápido, detecta bordas de rotina rom padrão no pzx também.
Mover rotina de detecção de borda para o escopo do TSpectrum (um método em vez de um procedimento aninhado).
Carregamento rápido – não tentar detectar borda quando restar apenas uma pequena quantidade de ticks.
Teclado na tela – mudar a cor das teclas; pequenas mudanças no texto acima e abaixo das teclas.
Diálogo “Todas as opções” – som – pular a confirmação ao fechar o diálogo de opções quando a aba de som não estiver ativa.
Todas as opções – pular o salvamento do caminho da biblioteca portaudio se não estiver na aba de som.
Opções – modelo Spectrum – manter rom personalizada quando o modelo não for alterado.
Pequena mudança.
Ocultar alguns rótulos ainda não usados.
Diálogo de teclas Spectrum – comportar-se de forma mais uniforme em todos os widgetsets (remover borda desenhada pelo widgetset no controle de teclas Spectrum).
Atualizar ano no aviso de copyright.
Diálogo de mapeamento de teclas – derivar um controle de mapeamento de teclas de TCustomControl em vez de TFrame (quando derivado de TFrame, nas teclas de seta do Qt não movem a seleção na scrollbox).
Configuração – mover versão de seção geral para a seção de primeiro nível.
Buffer de som – usar Int16 em vez de float para o formato de amostra.
Chip de som AY pequenas mudanças.
Janela de depuração – adicionar indicador “paginando habilitado”.
Melhor ajuste de volume para som do buzzer.
Adicionar variante de saída estéreo A-C-B.
Algumas mudanças pequenas.
Adicionar modo de compilação “ReleaseGtk2” ao projeto para compilar o Gtk2release quando o ide for compilado com outro widgetset.
Renomear modo de compilação “ReleaseQt” para “ReleaseQt5”.
Atualizar README.md.
Especificação “beta” removida da string de versão na caixa “Sobre”.
Barra de ferramentas – adicionar alguns itens ao conjunto padrão de botões.
Definir versão para 0.9.8 – novo lançamento.