Changelog:
elease Notes for openMSX 20.0 (2024-09-22)
===========================================
This is a major release, in which we introduce the new Graphical User
Interface, replacing the OSD menu. A faster and more powerful debugger is now
included in openMSX itself. Configuration for MSX joystick/JoyMega has been
improved drastically using the new GUI.
As of now, a system with OpenGL 2 support is required to run openMSX.
The GUI
^^^^^^^
We already had two separate GUI applications:
– openMSX Catapult, a tool to control common functionality of openMSX, in a
limited way.
– openMSX Debugger, a great and helpful tool, but never officially released and
packaged.
Keeping the GUI separate from the emulation core seemed like a good idea at
first. Keeping the state of both applications in sync turned out to be a hard
problem, however. Functions that seemed easy, were in fact very hard to
implement in this structure.
In this release we integrated the GUI directly in openMSX itself. All
information is now guaranteed in sync and updated real-time (which would have
been very hard in the old structure).
As this is the first release with the new GUI, not everything will be perfect
straight away. Feedback or help to improve things further will be highly
appreciated. The Catapult and openMSX Debugger applications remain available
for the time being. We will (try to) keep them working, but they won’t receive
any new development anymore – from us anyway. When keeping them working becomes
too much of a burden, we will abandon these applications altogether.
Joystick emulation
^^^^^^^^^^^^^^^^^^
Another big change is the joystick emulation. There are now fixed joystick and
JoyMega (MegaDrive controller) pluggables (2 for each), which can also be
configured via the GUI and also support keyboard inputs, so they also replace
the old keyjoystick devices. This gives optimal flexibility for configuring how
you want to control MSX controllers.
On top of that, it is now possible to plug and unplug host controllers at
run-time.
Rendering
^^^^^^^^^
Rendering has also undergone a big change. We removed the “SDL” renderer, as
the GUI requires an accelerated backend, for which we use OpenGL 2, which was
already required for the (already default and now only) SDLGL-PP renderer.
We also removed 1x scaling, so the minimum is now 2x. Video recording and
screenshots on the 320×240 resolution are still possible, though. All of this
allowed us to simplify the code a lot, making it easier to add new features and
maintain the code.
Other important changes
^^^^^^^^^^^^^^^^^^^^^^^
As for any custom key bindings you might have: we renamed some keys to match the SDL
library names instead of inventing our own. Old names are still recognized, but
be careful if you also run older openMSX versions, as openMSX will use the new
names and the old openMSX will not recognize them. Examples are: PRINT ->
PrintScreen, META -> GUI.
Special thanks to all the contributors of this release who are not in the core
team! Keep these pull requests coming!
Here’s the list with all highlights and details:
MSX device support:
– OPL4: fixed detail in YMF262 register mirroring
– turboR PCM:
– fixed sample frequency to 15700Hz (not 15750Hz as found in some
documentation)
– implement sample buffer (bit 0 on port 0xA5) to improve sound quality
– flash ROMs: added a lot of accuracy to its emulation
– WD2793 and TC8566AF FDC’s: fixed several details
– Konami mapper: added missing mirroring
– improvements on I8254 mode 3 used in some RS-232C interfaces
– added support for the concept 16-bit NEO mappers, which may be used by
someone in the future. If this doesn’t happen, support will be dropped again
– added support for the ASCII16-X mapper which will be used by some upcoming
games
– fixed mapper of Mitsubishi ML-TS2 modem software
– added support for Circuit Designer RD dongle (thanks Sandy Pleyte!)
– added new machines/extensions, thanks to:
– Peter Hanraets and Arjen Zeilemaker: Hitachi MPF-310H
– Peter Hanraets: Hitachi MB-H70
– bsittler: USA version of Yamaha CX5M
– Takamichi Suzukawa: National CF-SM003
– Tristan Zondag: German Spectravideo SVI-738
– Oliver Klink: French Canon V-20
– Patrick: Yeno DPC-64
– DamnedAngel: Hitachi MB-H21
– Peter Hanraets, Takamichi Suzukawa, Arjen Zeilemaker and Benoit Delvaux:
Sony HB-T600
– Others: Philips VU-0040, General Paxon PCT-55, Sanyo MPC-64, OPL3 Cartridge
with Moonsound compatible port mapping
New or improved emulator features:
– removed SDL renderer
– added new GUI:
– main menu bar with these menu items:
– Machine
– Select MSX machine
– Firmware switch
– Pause emulator
– Reset MSX
– Power on/off
– Test MSX hardware (much faster than in Catapult)
– Media
– Cartridge slots with ROM cartridges or extensions
– Disk drives
– Tape deck
– Hard disk
– CD-ROM
– Laserdisc
– Connectors
– joystick ports, printer ports, MIDI ports, etc.
– Save state
– Load/Save state
– Load/Save replay
– Reverse/replay settings
– Tools
– Virtual keyboard
– Copy/paste
– Capture audio/video/screenshot
– Disk Manipulator
– Trainer
– Cheat Finder
– SCC viewer
– Audio channel viewer
– OSD Toys
– Settings
– Video
– Sound
– Speed
– Input
– Configure MSX joysticks
– GUI
– Configure GUI shortcuts
– Misc
– Configure OSD icons, show status bar, …
– Debugger
– Toolbar
– Disassembly view
– CPU registers
– CPU flags
– Slots
– Stack
– Breakpoints
– Symbol Manager
– Watch expressions
– Bitmap viewer
– Tile viewer
– Sprite viewer
– VDP register viewer
– Palette
– Hex editor
– Help
– Links to manuals
– About
– Reverse bar
– OSD icons
– Status bar
– Console
– Messages
– Drag and drop
– Shortcuts
– Separate pop-out windows
– Windows can be docked on other windows or in a tab widget
– 3 styles: Dark (default), Light, Classic
– configurable font and font size. Default: DejaVu
– OSD menu:
– removed in favour of new GUI
– only warn once for unsupported size in Konami mappers
– suppress warning messages during reversing
– fully configurable MSX controller mapping for joysticks (msxjoystick1/2
pluggables) and JoyMega devices (joymega1/2 pluggables) – see above
– low level debugger (scripting):
– added support for symbol management
– allow to set a breakpoint (or any Tcl callback) when the VDP dot clock
direction is written “wrongly”
– added VGM recording for OPL3
– added minimal support for unplugging and replugging host controllers
– added support for RS232Net: connect MSX RS-232C interfaces to the local
network
– removed several OSD scripts which have been replaced by the GUI, sometimes
almost 1 to 1:
– reverse bar
– tile viewer
– sprite viewer
– palette editor
– VDP register viewer
– tabbed machine view
– display_message
– quit menu
– OSD keyboard
– load_icons
– removed support for savestates with .xml.gz extension
– do not save SRAM to file if unmodified
– added support to run openMSX fully in headless mode
– allow to specify the device name of IDE devices in their config XML file
– base the Boosted MSX2 EN on the Philips NMS 8245 instead of 8250
– fixed crash when multiple debug-devices were used at once
– fixed possible crash on specific combination of watchpoints and replay
– fixed possible crash on no longer supported savestates:
– we try to keep old savestates working. Nevertheless occasionally we do
remove stuff. Loading an old savestate which contains such stuff used to
crash, now we give a clean error message.
– fixes for load_settings command
Build system, packaging, documentation:
– added support for loongarch
– required GNU compiler is now at least g++-11
– required clang compiler is at least clang++-16
– required Visual Studio Compiler is at least 2022
– on macOS, at least Xcode 15.4 is required
– Android build is totally broken, and will require a lot of effort and help to
get back up, which is not planned by us.
– 3rd party updates of SDL (2.30.1), SDL2_ttf (2.22.0), GLEW (2.2.0)
– added patch to add aarch64 support to libtheora 3rdparty build
– fixed link error in libvorbis for Xcode 15 on macOS
– avoid pkg-config build error with Clang 15 on macOS
– quite a large update of the manual (mostly to include the new GUI)
…and of course the usual various bug fixes and performance improvements.
In “doc/manual/index.html” you can find a set of HTML manuals for openMSX.
Make sure you read this if you haven’t used openMSX before, but also to learn
more about the new and changed features.
CPU and graphics performance varies a lot, depending on the openMSX settings
and the MSX hardware and software you’re emulating. Some things run fine on a
200 MHz machine, others are slow on a 2 GHz machine. For performance tuning
tips, see the Setup Guide.
openMSX is confirmed to run on the following operating systems: Linux, Windows,
macOS, FreeBSD, OpenBSD and NetBSD; on x86, x86-64, PPC, ARM, MIPS and Sparc
CPUs. Running on other operating systems (wherever SDL and OpenGL 2 runs) or
CPUs should be possible, but may require some modifications to the build
system. If you are compiling on a new platform, please share your experiences
(see below for contact info), so we can make openMSX more portable.
openMSX Home Page:
https://openmsx.org/
Project page on GitHub:
https://github.com/openMSX
Contact options:
– Talk to us on #openmsx on libera.chat.
– Use the forum on https://www.msx.org/forum/semi-msx-talk/openmsx
– File a ticket on https://github.com/openMSX/openMSX/issues
Thanks to all contributors for their feedback, support, bug reports, testing,
coding and other help!
Have fun with your emulated MSX!
Atualizações:
Notas de Lançamento do openMSX 20.0 (2024-09-22)
Esta é uma versão importante, na qual introduzimos a nova Interface Gráfica de Usuário, substituindo o menu OSD. Agora, um depurador mais rápido e poderoso está incluído no próprio openMSX. A configuração para joystick MSX/JoyMega foi drasticamente melhorada usando a nova GUI.
A partir de agora, é necessário um sistema com suporte ao OpenGL 2 para rodar o openMSX.
A GUI
Já tínhamos duas aplicações de GUI separadas:
openMSX Catapult, uma ferramenta para controlar funcionalidades comuns do openMSX, de forma limitada.
openMSX Debugger, uma ótima ferramenta útil, mas nunca oficialmente lançada e empacotada.
Manter a GUI separada do núcleo de emulação parecia uma boa ideia no começo. No entanto, manter o estado de ambas as aplicações sincronizado se mostrou um problema difícil. Funções que pareciam fáceis eram, na verdade, muito difíceis de implementar nesta estrutura.
Nesta versão, integramos a GUI diretamente no openMSX. Todas as informações agora são garantidas em sincronização e atualizadas em tempo real (o que teria sido muito difícil na estrutura anterior).
Como esta é a primeira versão com a nova GUI, nem tudo será perfeito de imediato. Feedback ou ajuda para melhorar ainda mais será muito apreciado. As aplicações Catapult e openMSX Debugger continuam disponíveis por enquanto. Tentaremos mantê-las funcionando, mas não receberão mais desenvolvimento – pelo menos da nossa parte. Quando manter essas aplicações se tornar muito difícil, abandonaremos elas completamente.
Emulação de Joystick
Outra grande mudança é a emulação de joystick. Agora, há dispositivos fixos para joystick e JoyMega (controle MegaDrive) (2 para cada), que também podem ser configurados via a GUI e também suportam entradas de teclado, substituindo os antigos dispositivos keyjoystick. Isso oferece flexibilidade ideal para configurar como você quer controlar os controles do MSX.
Além disso, agora é possível conectar e desconectar controladores de host em tempo de execução.
Renderização
A renderização também passou por uma grande mudança. Removemos o renderizador “SDL”, pois a GUI requer um backend acelerado, para o qual usamos o OpenGL 2, que já era exigido para o renderizador SDLGL-PP (agora padrão e único).
Também removemos o escalonamento 1x, então o mínimo agora é 2x. A gravação de vídeos e capturas de tela na resolução 320×240 ainda é possível, porém. Tudo isso nos permitiu simplificar o código, tornando mais fácil adicionar novos recursos e manter o código.
Outras mudanças importantes
Quanto aos mapeamentos de teclas personalizadas que você possa ter: renomeamos algumas teclas para corresponder aos nomes da biblioteca SDL em vez de inventarmos nossos próprios. Os nomes antigos ainda são reconhecidos, mas tenha cuidado se também usar versões antigas do openMSX, pois o openMSX usará os novos nomes e as versões antigas não os reconhecerão. Exemplos: PRINT -> PrintScreen, META -> GUI.
Agradecimentos especiais a todos os colaboradores desta versão que não fazem parte da equipe principal! Continuem enviando pull requests!
Aqui está a lista com todos os destaques e detalhes:
Suporte a dispositivos MSX:
OPL4: corrigido detalhe no espelhamento de registradores YMF262
turboR PCM:
corrigida frequência de amostragem para 15700Hz (não 15750Hz como encontrado em algumas documentações)
implementado buffer de amostra (bit 0 na porta 0xA5) para melhorar a qualidade do som
ROMs flash: adicionada maior precisão na emulação
FDC WD2793 e TC8566AF: corrigidos diversos detalhes
Mapper Konami: adicionado espelhamento ausente
Melhorias no modo 3 do I8254, usado em algumas interfaces RS-232C
Adicionado suporte para mappers NEO de 16 bits, que podem ser usados por alguém no futuro. Se isso não acontecer, o suporte será removido.
Adicionado suporte para o mapper ASCII16-X, que será usado por alguns jogos futuros
Corrigido mapper do software Mitsubishi ML-TS2 para modem
Adicionado suporte para o dongle Circuit Designer RD (obrigado, Sandy Pleyte!)
Novas máquinas/extensões adicionadas, graças a:
Peter Hanraets e Arjen Zeilemaker: Hitachi MPF-310H
Peter Hanraets: Hitachi MB-H70
bsittler: versão USA do Yamaha CX5M
Takamichi Suzukawa: National CF-SM003
Tristan Zondag: German Spectravideo SVI-738
Oliver Klink: French Canon V-20
Patrick: Yeno DPC-64
DamnedAngel: Hitachi MB-H21
Peter Hanraets, Takamichi Suzukawa, Arjen Zeilemaker e Benoit Delvaux: Sony HB-T600
Outros: Philips VU-0040, General Paxon PCT-55, Sanyo MPC-64, OPL3 Cartridge com mapeamento de porta compatível com Moonsound
Novos ou aprimorados recursos do emulador:
Remoção do renderizador SDL
Adição da nova GUI:
barra de menu principal com os seguintes itens de menu:
Máquina
Selecionar máquina MSX
Troca de firmware
Pausar emulador
Resetar MSX
Ligar/desligar
Testar hardware MSX (muito mais rápido que no Catapult)
Mídia
Slots de cartucho com ROMs ou extensões
Unidades de disquete
Deck de fita
Disco rígido
CD-ROM
Laserdisc
Conectores
Portas de joystick, portas de impressora, portas MIDI, etc.
Salvar estado
Carregar/Salvar estado
Carregar/Salvar replay
Configurações de reversão/replay
Ferramentas
Teclado virtual
Copiar/colar
Captura de áudio/vídeo/captura de tela
Manipulador de disco
Trainer
Encontrador de cheats
Visualizador SCC
Visualizador de canais de áudio
Brinquedos OSD
Configurações
Vídeo
Som
Velocidade
Entrada
Configurar joysticks MSX
GUI
Configurar atalhos de GUI
Diversos
Configurar ícones OSD, mostrar barra de status, …
Depurador
Barra de ferramentas
Visão de desassemblagem
Registradores da CPU
Flags da CPU
Slots
Pilha
Pontos de interrupção
Gerenciador de símbolos
Expressões de observação
Visualizador de bitmap
Visualizador de tiles
Visualizador de sprites
Visualizador de registradores VDP
Paleta
Editor Hex
Ajuda
Links para manuais
Sobre
Barra de reversão
Ícones OSD
Barra de status
Console
Mensagens
Arrastar e soltar
Atalhos
Janelas pop-out separadas
Janelas podem ser ancoradas em outras janelas ou em um widget de abas
3 estilos: Escuro (padrão), Claro, Clássico
Fonte e tamanho de fonte configuráveis. Padrão: DejaVu
Menu OSD:
removido em favor da nova GUI
Avisar apenas uma vez sobre tamanho não suportado em mappers Konami
Suprimir mensagens de aviso durante a reversão
Mapeamento totalmente configurável do controlador MSX para joysticks (pluggables msxjoystick1/2) e dispositivos JoyMega (pluggables joymega1/2)
Depurador de baixo nível (script):
Adicionada a capacidade de gerenciar símbolos
Permitir definir um ponto de interrupção (ou qualquer callback Tcl) quando o relógio de ponto VDP for escrito “erroneamente”
Adicionada gravação de VGM para OPL3
Adicionada compatibilidade mínima para desconectar e reconectar controladores de host
Adicionado suporte para RS232Net: conecta interfaces RS-232C do MSX à rede local
Removidos vários scripts OSD que foram substituídos pela GUI, às vezes quase 1 a 1:
Barra de reversão
Visualizador de tiles
Visualizador de sprites
Editor de paleta
Visualizador de registradores VDP
Visualização em abas da máquina
Exibir mensagem
Menu de sair
Teclado OSD
Carregar ícones
Removido suporte para savestates com extensão .xml.gz
Não salvar SRAM em arquivo se não for modificado
Adicionado suporte para rodar o openMSX completamente em modo sem cabeça (headless)
Permitir especificar o nome do dispositivo dos dispositivos IDE no arquivo de configuração XML
Basear o MSX2 EN Boosted no Philips NMS 8245 em vez do 8250
Corrigido crash ao usar múltiplos dispositivos de depuração ao mesmo tempo
Corrigido possível crash em combinação específica de pontos de observação e replay
Corrigido possível crash ao carregar savestates não mais suportados: tentamos manter antigos savestates funcionando, mas ocasionalmente removemos coisas. Carregar um savestate antigo com esses itens causava crash, agora mostramos uma mensagem de erro limpa.
Correções para o comando load_settings
Sistema de Build, Empacotamento, Documentação:
Adicionado suporte para loongarch
O compilador GNU exigido agora é pelo menos g++-11
O compilador clang exigido agora é pelo menos clang++-16
O compilador do Visual Studio exigido é pelo menos 2022
No macOS, pelo menos Xcode 15.4 é necessário
O build para Android está completamente quebrado, e exigirá muito esforço e ajuda para voltar a funcionar, o que não está planejado de nossa parte.
Atualizações de terceiros para SDL (2.30.1), SDL2_ttf (2.22.0), GLEW (2.2.0)
Adicionado patch para adicionar suporte a aarch64 para build de libtheora
Corrigido erro de link na libvorbis para Xcode 15 no macOS
Evitado erro de build com pkg-config com Clang 15 no macOS
Grande atualização no manual (principalmente para incluir a nova GUI)
…e, claro, várias correções de bugs e melhorias de performance.
No arquivo “doc/manual/index.html”, você pode encontrar um conjunto de manuais em HTML para o openMSX. Certifique-se de lê-los se nunca usou o openMSX antes, e também para aprender mais sobre os novos recursos e mudanças.
O desempenho da CPU e gráficos varia muito, dependendo das configurações do openMSX e do hardware/software MSX que você está emulando. Algumas coisas rodam bem em uma máquina de 200 MHz, outras são lentas em uma máquina de 2 GHz. Para dicas de otimização de desempenho, veja o Guia de Configuração.
O openMSX é confirmado para rodar nos seguintes sistemas operacionais: Linux, Windows, macOS, FreeBSD, OpenBSD e NetBSD; em CPUs x86, x86-64, PPC, ARM, MIPS e Sparc. Rodar em outros sistemas operacionais (onde quer que o SDL e o OpenGL 2 funcionem) ou CPUs deve ser possível, mas pode exigir algumas modificações no sistema de build. Se você estiver compilando em uma nova plataforma, compartilhe suas experiências para que possamos tornar o openMSX mais portátil.
Página principal do openMSX:
https://openmsx.org/
Página do projeto no GitHub:
https://github.com/openMSX
Opções de contato:
Fale conosco no #openmsx no libera.chat.
Use o fórum em https://www.msx.org/forum/semi-msx-talk/openmsx
Registre um problema em https://github.com/openMSX/openMSX/issues
Agradecimentos a todos os colaboradores por seu feedback, suporte, relatórios de bugs, testes, codificação e outras ajudas!
Divirta-se com seu MSX emulado!
Comentários