Skip to content

Releases: ducasp/MSX-Development

OCM-SM Unapi Pack version 1.3

02 Jan 13:24
Compare
Choose a tag to compare

ko-fi

O texto em português está disponível logo abaixo :)

This package update the SD-BIOS (four versions available, two using latest Nextor Kernel, version 2.1.2 from December 2023 and two using DOS2 Kernel), instructions that contemplate OCM-SM 3.9.1 and newer versions that no longer need OCM-BIOS.DAT to be the first file and updates HUB/HUBG to the latest version as of January 2nd 2024.

When you use it you will have firmware 1.2 and you might use UNAPI BIOS, it is a lot better way to use UNAPI and also the BIOS has a built-in Wi-Fi configurator that can be accessed by keeping F1 pressed during boot, it is way, way easier to set-up your access point or configure time-outs using the BIOS built-in configurator, and it also allows for a way faster method to update date and time, that doesn't require using SNTP and WAITWIFI in your autoexec.bat. You can still keep using the RAM driver if you want though.

This pack will update all the components (ESP8266 firmware, UNAPI Driver, related utilities) to the latest version. It also includes, as a bonus, the most used network applications in their latest versions as of this package submission.

Please readme the TXT files in the package, they have all information you need to update it.

RELEASE NOTES:

The following has changed in relation to 1.2:

OCM-BIOS.DAT - four versions, with and without Wi-Fi, DOS2 or Nextor Kernel (default Nextor and Wi-Fi), using latest Nextor Kernel, version 2.1.2, December 2023

HUB and HUBG - update from April 2023 with reliability improvements

ko-fi

O texto em português está disponível logo abaixo :)

Este pacote atualiza a SD-BIOS (quatro versões disponíveis, duas com Kernel Nextor 2.1.2 de Dezembro de 2023 e duas com Kernel DOS2), instruções atualizadas para a OCM-SM 3.9.1 e versões mais novas que não precisam mais que OCM-BIOS.DAT seja o primeiro arquivo e atualização do HUB/HUBG para a última versão disponível em 2 de Janeiro de 2024.

Com esse pacote terá o firmware 1.2 e poderá utilizar a BIOS UNAPI, é uma forma muito melhor de usar a UNAPI e a BIOS também tem um configurador do Wi-Fi que pode ser acessado ao manter F1 pressionado durante o boot, é muito, mas muito mais simples configurar o seu ponto de acesso/roteador ou tempo para desligar o Wi-Fi automaticamente usando o configurador da BIOS, e também permite manter a data e hora atualizada de forma muito mais rápida sem usar SNTP e WAITWIFI no seu autoexec.bat. Caso deseje, pode continuar utilizando o driver em RAM.

O pacote atualiza todos os componentes (firmware do ESP8266, Driver UNAPI, utilitários diversos) para a última versão. Também inclui as aplicações de rede mais utilizadas, na versão mais atual disponível na data que esse pacote foi liberado.

Por favor LEIA os arquivos TXT do pacote, lá irá encontrar toda informação que precisa para atualizar e utilizar o Wi-Fi.

NOTAS DA VERSÃO:

Mudanças em relação ao pacote 1.2:

OCM-BIOS.DAT - quatro versões, duas com e duas sem Wi-Fi, DOS2 ou Kernel Nextor (default é Nextor e Wi-Fi), usando o último Kernel Nextor, versão 2.1.2 de Dezembro de 2023

HUB e HUBG - atualização de Abril de 2023 com melhorias gerais

OCM_SM 3.9.1plus

29 Dec 14:38
Compare
Choose a tag to compare

OCM-PLD v3.9.1plus

ko-fi

IMPORTANT / IMPORTANTE

**This version has been tested by me on SM-X and Mc2p, by NOP on SX2, by Danilo and Marcelo on SM-X HB. I'm waiting for some testers to finish testing it ON SM-X Mini. I wouldn't recommend you use on SM-X Mini UNLESS you have an USB Blaster and knows how to use a JIC file to restore your device in case it doesn't work and doesn't allow you to flash a new firmware on MSX DOS. YOU'VE BEEN WARNED :)

Esta versão foi testada por mim no SM-X e Mc2p, pelo NOP no SX2 e pelo Danilo e Marcelo no SM-X HB. Estou aguardando o resultado de testadores voluntários no SM-X Mini. Não recomendo que use nesses dois dispositivos A MENOS QUE você tenha um USB Blaster e saiba como usar um arquivo JIC para restaurar seu dispositivo caso não funcione e não permita que use o MSX DOS para voltar a um firmware antigo. VOCÊ FOI AVISADO :)**

Quer ler em Português?

A versão em português desse documento está logo abaixo :)

Version Selection Cheat Sheet

Firmware Version OPL3 Mono OPL3 Stereo SN76489 SMS VDP PS/2 Mouse as MSX Mouse Paddle using PS/2 Mouse 2x PSG MIDI Out Turbo-R PCM Second 4MB Mapper
MC2P Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
SM-X/SX2 Yes No No No Yes Yes Yes Yes Yes Yes
SM-X/SX2 Franky No No Yes Yes Yes Yes Yes Yes Yes Yes
SM-X/SX2 Snd Yes No Yes No Yes Yes Yes Yes Yes Yes
SM-X Mini Yes No No No Yes Yes Yes Yes Yes No
SM-X Mini Franky No No Yes Yes Yes Yes Yes Yes Yes No
SM-X Mini Snd Yes No Yes No Yes Yes Yes Yes Yes No
SM-X HB No No No No Yes Yes Yes Yes Yes No
SM-X HB Franky No No Yes Yes No No Yes No No No
SM-X HB Snd No No Yes No Yes No Yes Yes Yes No

NOTE: NEVER, EVER THINK ABOUT USING MC2P IF YOU DON'T HAVE MC2P, SM-X IF YOUR DEVICE IS OTHER THAN SM-X, ETC... Cheat Sheet is only to help you choose what version for your device has the features you want. If your device doesn't have a feature or the combination of features you want, DO NOT USE THE FIRMWARE OF OTHER DEVICE, IT WILL BRICK YOUR DEVICE AND YOU WILL ONLY BE ABLE TO RECOVER IT USING USB BLASTER AND A PC. YOU'VE BEEN WARNED!

I'm lost and don't know what version to choose for my device

CHOOSING.TXT file will help you, but the Lazy Couch Penguin version is: first get ocmsm_XXXX_3.9.1plus.7z file where XXXX is your device name.

IMPORTANT: SM-X HB Mini IS A SM-X HB DEVICE AND USES SM-X HB FILES. NEVER, EVER THINK ON USING SM-X Mini FOR SM-X HB Mini!

My first recommendation as the version I use and find it funnier and more interesting is the FRANKY version, language that matches the layout of your PS/2 keyboard, dual EPBIOS and backslash. It allows you to play Coleco (COL4MMM, use COM - Franky version), SG1000 (SG1000 or SSMS) and Sega Master System (SSMS or converted games). Note that for SMX-HB you won't have PS/2 Mouse as MSX Mouse, Turbo-R MIDI and PCM when using that version.

I don't like to read manuals, how do I upgrade?

Read the above note and download the right version for your device, in the file you will find a PLD file and a JIC file. Copy the PLD file and SMXFLASH.COM to your card, and when in MSX DOS run SMXFLASH OCM-SM.PLD

But, you won't be able to enjoy many of the extra features if you don't read MINI-MANUAL-EN-USR.txt

New in relation to v3.9d

  • Incorporated all 3.9.1 changes not present in 3.9d, check original KdL 3.9.1 release for more information. Note: PS2 new controller was not Incorporated as my understanding is that it might make some keyboards currently working on 3.9.0 to not work on it unless you make some proposed hardware changes.

  • Three "flavours" available, Regular, Franky and Snd. See in the table above what each flavor har or doesn't have. MC2P has a single version that has all features.

Release notes

OCM-PLD v3.9.1plus is an extension on KdL OCM release v3.9.1. What this extension brings to the table:

  • New supported devices:

    • SMX-HB, SMX-HB EX and SMX-HB MINI: It is a 1.75gen device. Its FPGA has about 1/3 less logic cells as result of components shortage. It is meant to replace the motherboard of Hotbit / Expert MSX Computers (HB / HB EX), adding (almost) the full OCM-SM experience. HB MINI is like the original SM-X in the fact it uses PS/2 keyboards and has its own case. As being a device with real MSX Keyboard (HB and EX ONLY), it has its own needs (some doesn't apply to HB MINI that uses only PS/2 keyboards):

      • I've added support to a third keyboard map table, so you have the one from the build (us/br/fr/es/it) and japanese if using PS/2 and one for the MSX keyboard Hotbit/Expert have. Hotbit and Expert keyboards are not standard and their mapping are very peculiar as PS/2 keyboards have a different mapping. DIP switch 9 set to OFF is the default, using the MSX Keyboard mapping, if set to ON it will use the mapping the firmware has built-in, that is handy when you want to use an external PS/2 keyboard. (HB MINI always should have DIP 9 set to on)

      • Fix: Select key was not working on original 3.7.1 based release, it works now. (HB)

      • Improvement: SELECT + UP and SELECT + DOWN replaces Page Up and Page Down, so it is possible to activate the autofire module using only SMX-HB internal keyboard. Also, SELECT + F1 to F4 replaces F9 to F12, making it possible to use most of the keyboard shortcuts. (HB)

      • Missing: it doesn't support OPL3 as it won't fit on the FPGA used. It doesn't support paddle emulation on franky/snd version due to the same reason. In HB firmware, Franky version also doesn't have the following features: PS/2 mouse as MSX mouse, Turbo-R MIDI out through joystick port 2 and Turbo-R PCM. (HB, EX and HB MINI)

    • Multicore 2+: it is like a MiSTER device, but with less FPGA capacity ( more than double of second gen devices, but about half of MiSTER) and also without an extra ARM core to help with USB devices (so it uses SEGA Genesis / Mega Drive controllers or SEGA Master System controllers and PS/2 mouse and keyboards). One advantage it has over MiSTER is that it was made with an expansion slot that you can insert expansions that allows to use real cartridges/interfaces for the device. There is a SM-X expansion available that adds three MSX Slots and ESP Wi-Fi.

      • Legacy: all features from OCM 3.8 build by Roberto Focosi and Victor Trucco were ported, so it supports the external slots extension, usage of images instead of needing a dedicated SD card, keyboard layout selection using OSD menu, etc.

      • Fix: when using images instead of dedicated SD card, writing to the card could cause errors / failures, now it should be working fine everytime.

      • Improvement: MC2+ has SEGA Genesis / Mega Drive joystick port. As such, my initial 3.7.1 version used only two buttons of any joystick and allowed invoking OSD using MODE + START on an eight button joystick, Focosi release ditched invoking OSD for sake of simplicity of design, I've restored invoking OSD and now ALL 8 buttons can be used on Joymega compatible games/software as well, for both joysticks. It also works with 4 buttons joysticks (Joymega) and 2 buttons joysticks (Master System joystick detected as regular MSX joystick).

      • Unique behavior: since MC2+ doesn't have dip switches but uses OSD being invoked through F12 key, turbo changing through F12 key was removed and it can be adjusted only on the OSD menu (F12 or MODE+START on joystick 1) or using switched I/O or software that sets the CPU speed. Since you need to hit F12 to invoke OSD and hit it back to remove it, it was not nice having F12 also switching the CPU clock.

      • Unique behavior: paddle emulation is turned on/off through the OSD menu, SETSMART commands for paddle won't have any effect.

      • Improvement: in general all DIP settings are done through the OSD. If you are using a disk image, settings are saved / kept on the SD Card, and restored back when OSD is invoked. When using a dedicated SD Card, since the card is owned by the MSX as a whole, it is not possible to save settings in it as the SD Card I/O is not assigned to the MC2+ microcontroller that makes the OSD a reality, so whenever you pop up the OSD, settings are reset to "default values", since microcontroller doesn't know settings on FPGA and could not save the settings into the SD Card to read back when invoked again. Due to that I've changed a few of those settings to alow sane defaults. Rem...

Read more

OCM_SM 3.9d - Release Candidate

02 Dec 19:39
Compare
Choose a tag to compare

OCM-PLD v3.9d

ko-fi

Para ler em português do Brasil, continue rolando a tela. :)

#WARNING

While I and some testers do our best to make sure there are no issues
that should cause device bricking or causing hardware failures, we are
in no way responsible for any issues that might arise.

Also, notice this has been tested by me on MC2+, SM-X, but not tested on
SM-X Mini and SX2 as currently no one with SX2 has shown
interest on testing it. If you have a SX2, an USB Blaster and is willing
to make a few tests, please contact me. So, for SX2 users, I'm sorry
but while I did my best to make sure it will work fine, it is untested on
that platform. For users of SM-X Mini, the same warning
applies, but risks are lower, but since it was not
tested on real hardware
there is always the (minimal) chance of something going wrong and
you needing to use USB-Blaster. If you test on SX2 or SM-X Mini
let me know the results. :)
Test on SMX-HB done by Daniel Afarelli, thanks!

New in relation to v3.9c

  • Improvements from KdL to the SDRAM controller allowing features like 1MB VRAM
    to work with Victor Trucco SDRAM controller

  • Fix z80 so Lilly's Saga runs ok now

All source code and binaries that changed in relation to OCM 3.9:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

All source code from OCM 3.9 originally is a work of many people, including
KdL and Hara-san that are really huge contributors to it!

All code can be re-used, re-written, derivative work can be sold, as long as the
source code of changes is made public as well.

#AVISO

Eu e algumas pessoas testamos da melhor maneira possível para nos
certificarmos que não há qualquer problema que possa causar danos aos
dispositivos testados ou bricking (necessitando um USB Blaster para
restaurar o dispositivo), não somos de forma alguma responsáveis por
quaisquer problemas que possam acontecer.

Também, note que foi testado por mim no MC2+, SM-X. SM-X Mini e
SX2 não foram testados já que atualmente ninguém que tenha um
SX2 se mostrou interessado em testar. Se tiver um SX2 e um USB Blaster
e puder fazer alguns testes, por favor entre em contato. Então, usuários do
SX2, sinto mas apesar dos meus esforços para garantir que funcione em seu
dispositivo, essa é uma plataforma que segue sem testes e sem garantias.
Para usuários do SM-X Mini, o mesmo aviso se aplica, mas os
riscos são menores, mas como eu não pude testar no hardware real sempre
há uma (mínima) chance de algo estar errado e você precisa usar um USB
Blaster para recuperar. Se testar no SMX-HB ou SM-X Mini me avise sobre
o resultado. :)
Teste no SMX-HB feito pelo Daniel Afarelli, obrigado!

Novidades em relação a v3.9c

  • Melhorias do KdL na controladora de SDRAM permitindo que coisas como a VRAM
    de 1MB funcionem com o controlador do Victor Trucco

  • Correção no z80 para que Lilly's Saga funcione adequadamente

Todo código fonte e binários alterados em relação ao OCM 3.9:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

Todo código fonte do OCM 3.9 é um trabalho de muitas pessoas, incluindo KdL e
Hara-san que são grandes contribuidores!

Todo código adicional pode ser reutilizado, re-escrito, trabalhos derivados
podem ser vendidos DESDE QUE o código fonte das mudanças seja publicado também.
Para o código original do OCM 3.9, verifique a licença do mesmo.

HUBG v0.90

30 Nov 14:08
0861200
Compare
Choose a tag to compare

HUBG 0.90

ko-fi

Para ler em português do Brasil, continue rolando a tela. :)

(c)2020-2022 Oduvaldo Pavan Junior - ducasp@gmail.com
Israel F. Araujo - github.com/israelferrazaraujo

This pack includes HUBG as well as its manual

HUBG v0.90

CHANGELOG v0.90

- Expands the number of packages that can be listed for a category.

v0.90 Is brought to you by @israelferrazaraujo , thank you very much for your
great collaboration!

Esse pacote inclui o HUBG e seu manual

HUBG v0.90

MUDANÇAS v0.90

- Expande o número possível de pacotes listados para uma categoria.

v0.90 Foi feita por @israelferrazaraujo , muito obrigado pela sua grande
contribuição!
HUBG.zip
README.MD

OCM_SM 3.9c - Release v2

01 Jun 14:43
Compare
Choose a tag to compare

OCM-PLD v3.9c

ko-fi

Para ler em português do Brasil, continue rolando a tela. :)

#WARNING

While I and some testers do our best to make sure there are no issues
that should cause device bricking or causing hardware failures, we are
in no way responsible for any issues that might arise.

Also, notice this has been tested on MC2+, SM-X, SM-X Mini and
SMX-HB, but not tested on SX2 as currently no one with SX2 has shown
interest on testing it. If you have a SX2, an USB Blaster and is willing
to make a few tests, please contact me. So, for SX2 users, I'm sorry
but while I did my best to make sure it will work fine, it is untested on
that platform.

Release v2

- only MC2+ changed
- possible improvement on compatibility with expansion #02

New in relation to v3.9b

- MC2+ supported
- Fixes for MC2+ related to original 3.8 build from Focosi/Trucco
- Improvements and fixes to MSX Mouse emulation over PS/2 mouse
- As a result, paddle emulation also is now smooter

Release notes

OCM-PLD v3.9c is an extension on KdL OCM release v3.9. What this extension
brings to the table:

  • New supported devices:

    • SMX-HB: It is a 1.75gen device. Its FPGA has about 1/3 less logic cells
      as a fruit of component shortage. It is meant to replace the motherboard
      of Hotbit MSX Computers, adding (almost) the full OCM-SM experience. As
      being a device with real MSX Keyboard, it has its own needs:

      • I've allowed Joystick port debounce to be disabled, this perhaps can
        alleviate the issues some users were having with paddles. To turn off
        Joystick port debounce use the command SETSMART -89 , to turn it back
        on use SETSMART -8A , power cycle will restore default, on.

      • I've added support to a third keyboard map table, so you have the one
        from the build (us/br/fr/es), japanese and one for the built-in MSX
        keyboard Hotbit has. Built-in keyboard of Hotbit is not standard and
        its map is very peculiar and PS/2 keyboards have a different mapping.
        DIP switch 9 set to OFF is the default, using the internal mapping, if
        set to ON it will use the mapping the firmware was built-in, that is
        handy when you want to use an external PS/2 keyboard.

      • Fix: Select key was not working on original 3.7.1 based release, it
        works now.

      • Improvement: SELECT + UP and SELECT + DOWN replaces Page Up and Page
        Down, so it is possible to activate the autofire module using only
        SMX-HB internal keyboard. Also, SELECT + F1 to F4 replaces F9 to F12,
        making it possible to use most of the keyboard shortcuts.

      • Missing: it doesn't support OPL3 as it won't fit on the FPGA used.

    • Multicore 2+: it is like a MiSTER device, but with less FPGA capacity (
      more than double of second gen devices, but about half of MiSTER) and also
      without an extra ARM core to help with USB devices (so it uses SEGA Genesis
      / Mega Drive controllers or SEGA Master System controllers and PS/2 mouse
      and keyboards). One advantage it has over MiSTER is that it was made with
      an expansion slot that you can insert expansions that allows to use real
      cartridges/interfaces for the device. There is a SM-X expansion available
      that adds three MSX Slots and ESP Wi-Fi.

      • Legacy: all features from OCM 3.8 build by Roberto Focosi and Victor
        Trucco were ported, so it supports the external slots extension, usage
        of images instead of needing a dedicated SD card, keyboard layout
        selection using OSD menu, etc.

      • Fix: when using images instead of dedicated SD card, writing to the
        card could cause errors / failures, now it should be working fine
        everytime.

      • Improvement: MC2+ has SEGA Genesis / Mega Drive joystick port. As
        such, my initial 3.7.1 version used only two buttons of any joystick
        and allowed invoking OSD using MODE + START on an eight button joystick
        , Focosi release ditched invoking OSD for sake of simplicity of design,
        I've restored invoking OSD and now ALL 8 buttons can be used on Joymega
        compatible games/software as well, for both joysticks. It also works
        with 4 buttons joysticks (Joymega) and 2 buttons joysticks (Master
        System joystick detected as regular MSX joystick).

      • Unique behavior: since MC2+ doesn't have dip switches but uses OSD
        being invoked through F12 key, turbo changing through F12 key was
        removed and it can be adjusted only on the OSD menu (F12 or MODE+START
        on joystick 1) or using switched I/O or software that sets the CPU
        speed. Since you need to hit F12 to invoke OSD and hit it back to
        remove it, it was not nice having F12 also switching the CPU clock.

      • Unique behavior: paddle emulation is turned on/off through the OSD
        menu, SETSMART commands for paddle won't have any effect.

      • Improvement: in general all DIP settings are done through the OSD. If
        you are using a disk image, settings are saved / kept on the SD Card,
        and restored back when OSD is invoked. NOTE: the following is valid if
        you have a STM firmware lower than 2.01, on STM firmware 2.01 there
        is an OSD option, SAVE & RESET, that overcomes this at the expense of
        rebooting the MSX. On STM 2.00, when using a dedicated SD Card,
        since the card is owned by the MSX as a whole, it is not possible to
        save settings in it as the SD Card I/O is not assigned to the MC2+
        microcontroller that makes the OSD a reality, so whenever you pop up
        the OSD, settings are reset to "default values", since microcontroller
        doesn't know settings on FPGA and could not save the settings into the
        SD Card to read back when invoked again. Due to that I've changed a few
        of those settings to alow sane defaults. Remember: if using dedicated
        SD card, set all settings the way you want before exiting OSD. If you
        invoke OSD again the default values will be loaded and your settings
        all lost / need to set it again. There is no other way around it
        currently.

      • Extra: if you have a ZX Next Expansion for MC2+ but doesn't have the
        SM-X one, you can use it after enabling it on the OSD. Currently the
        only feature supported is use of Wi-Fi / ESP. IMPORTANT: SM-X / Second
        Gen OCM devices use a customized ESP firmware, and ZX Next use standard
        "AT" firmware from Espressif. In order to make this feature useful, you
        need to have a second ESP-01 module flashed with the customized ESP
        firmware, so you can just put it into the extension when using it for
        MSX, and put back the original one when using it for ZX Next.
        Instructions on how to flash the custom ESP firmware are available at:
        https://youtu.be/uoaiEamWUUg

  • For devices/builds supporting OPL3:

    • Fix: I've fixed OPL3, it had two issues that prevented it to work with
      the latest VGMPlay version:

      • IRQ was not connected, so timers programmed wouldn't trigger,
        instead only the VDP interrupt, to slow, so music would play darn
        slow with VGMPlay.

      • Even after fixing that, playing speed was almost half of the correct
        speed for VGMs. The timer scaler was not properly set causing it to
        trigger slower than programmed.

      Since VGMPlay 1.3 relies on OPL3 timer when present to drive a high speed
      interrupt, not having IRQ and not having the proper scaler for timer
      caused its timing to be slow, darn slow...

    • Fix for second gen devices: I've fixed OPL3 sound rendering as it was
      discarding all information that is on right output channel only,
      unfortunately we do not have enough FPGA resources to run the sequencer
      for two channels, but a clever trick allows all songs content to be
      properly played in MONO glory :P Try as an example Doom soundtrack track
      3 before updating and after updating it. :)

    • Improvement for Multicore 2+: since MC2+ has a really large FPGA, OPL3
      works in real stereo mode since it can acommodate the extra registers
      needed for it that do not fit on regular second gen devices.

  • For devices supporting SN76489 / Second PSG:

    • Extra: I've added partial support to a built-in Franky. That partial
      support is good enough to work with SG1000, COL4MMM (using COM\Franky
      versions) VGMPLAY, ROBOPLAY and Sofarun (remember to set it to use MSX
      VDP and Franky's PSG). As Franky sound uses I/O ports 0x48 and 0x49, and
      those ports are part of the switched I/O, it is usually disabled, as OCM
      IPL loader will leave switched I/O selected after booting. There are
      different ways to enable Franky sound:

      • Latest release of COL4MMM automatically disables switched I/O, so no
        need for a SETSMART command or using VGMPLAY before.

      • VGMPLAY will automatically disable switched I/O, so you can play a
        VGM song that uses SN76489 and after exiting VGMPLAY you can use other
        software.

      • De-select the internal switched I/O by sending the basic command
        OUT &H40,0

      • Use SETSMART -8C to enable the I/O ports 0x48 and 0x49 for that, so
        any program relying on reading OCM information on those ports won't
        get it.

    • Extra: Second PSG on ports 0x10 to 0x13. It also allows the PSG registers
      to be read back.

  • For all devices:

    • Improved: Victor Trucco made improvements on the SDRAM controller so it
      is able to...
Read more

OCM_SM 3.9b - Release Candidate

29 Apr 23:55
Compare
Choose a tag to compare

OCM-PLD v3.9b - Release Candidate

ko-fi

IMPORTANT: This is a pre-release. It was tested on SM-X by me, SM-X Mini by Edson Kadoya and on SMX-HB by Fabio Santos, it was not tested on SX2. If you have one a SX2 I recommend that you only use this IF you have an USB Blaster so you can use Altera/Intel Programmer to restore your device using a JIC file. You've been warned!

OCM-PLD v3.9b is an extension on KdL OCM release v3.9. What this extension
brings to the table:

  • For regular SM-X, SM-X mini and SX-2:

    • Fix: I've fixed OPL3, it had two issues that prevented it to work with
      the latest VGMPlay version:

      • IRQ was not connected, so timers programmed wouldn't trigger,
        instead only the VDP interrupt, to slow, so music would play darn
        slow with VGMPlay.

      • Even after fixing that, playing speed was almost half of the correct
        speed for VGMs. The timer scaler was not properly set causing it to
        trigger slower than programmed.

      Since VGMPlay 1.3 relies on OPL3 timer when present to drive a high speed
      interrupt, not having IRQ and not having the proper scaler for timer
      caused its timing to be slow, darn slow...

    • Fix: I've fixed OPL3 sound rendering as it was discarding all information
      that is on right output channel only, unfortunately we do not have enough
      FPGA resources to run the sequencer for two channels, but a clever trick
      allow all songs content to be properly played in MONO glory :P Try as an
      example Doom soundtrack track 3 before updating and after updating it. :)

  • For all devices:

    • Improved: Victor Trucco made improvements on the SDRAM controller so it
      is able to work with different chips. Some SM-X mini and SMX-HB use chips
      that need this to work.

    • Extra: I've added Paddle emulation when using a PS/2 mouse. To enable
      VAUS (Arkanoid/Taito) Paddle emulation use SETSMART -8E, to enable MSX
      standard paddle emulation use SETSMART -8F, to disable it (default) use
      SETSMART -8D. Note that MSX Standard paddle only works properly if Z80
      clock is 3.58MHz, like a real MSX Standard paddle on a MSX machine with
      turbo CPU. Unfortunately this implementation doesn't fit SMX-HB with
      Franky Sound and second PSG. P.s.: you can adjust four levels of
      sensitivity by clicking the third mouse button.

  • Adds support to SMX-HB (as it has only initial support for OCM 3.7.1)

    • Extra: I've allowed Joystick port debounce to be disabled, this perhaps
      can alleviate the issues some users were having with paddles. To turn off
      Joystick port debounce use the command SETSMART -89 , to turn it back on
      use the command SETSMART -8A , power cycle will restore default, on.

    • Extra: I've added support to different keyboard map tables. This is handy
      as the internal keyboard of Hotbit is not standard and its map is very
      peculiar, while PS/2 keyboards have a different mapping. DIP switch 9 set
      to OFF is the default, using the internal mapping, if set to ON it will
      use the mapping the firmware has built-in, that is handy when you want to
      use an external keyboard.

    • Fix: Select key was not working on original 3.7.1 based release, it works
      now. Also, SELECT + +/=, SELECT + -/_, SELECT + F1 to F4 replaces Page Up
      , Page Down, F9 to F12, so it is possible to activate the autofire module
      and most of the OCM Hotkey shortcuts using only SMX-HB internal keyboard.

    • Missing: SMX-HB FPGA has less cells than other SM-X devices as it uses
      a FPGA with about 70% of the capacity of the other devices, so it doesn't
      support OPL3 as it won't fit

  • Adds to regular SMX-HB, SM-X, SM-X mini and SX-2 a frankysnd build:

    • Extra: I've added partial support to a built-in Franky. That partial
      support is good enough to work with SG1000, COL4MMM (using COM\Franky
      versions) VGMPLAY and Sofarun (remember to set it to use MSX VDP and
      Franky's PSG). As Franky sound uses I/O ports 0x48 and 0x49, and those
      ports are part of the switched I/O, it is usually disabled, as OCM IPL
      loader will leave switched I/O selected after booting. There are
      different ways to enable Franky sound:

      • VGMPLAY will automatically disable switched I/O, so you can play a
        VGM song that uses SN76489 and after exiting VGMPLAY you can use other
        software.

      • De-select the internal switched I/O by sending the basic command
        OUT &H40,0

      • Use SETSMART -8C to enable the I/O ports 0x48 and 0x49 for that, so
        any program relying on reading OCM information on those ports won't
        get it.

    • Extra: Second PSG on ports 0x10 to 0x13.

  • Planned for the future SM-X, SM-X mini and SX-2 will have a franky build:

    • Missing: FPGA in those devices can't fit OPL3 along with Franky VDP and
      PSG, so that build won't have OPL3 support.

    • Extra: this is a WIP, please wait, but it will have Franky VDP :P

How to choose the firmware?

1 - Obviously, you will download the one for your device. (i.e.: I have a SM-X,
so I get firmware files from folders that start with smx_)

2 - Next step is to find out if you want vanilla or Franky Sound version. If
you don't own a Franky cartridge or a Playsoniq cartridge, go ahead with the
Franky Sound version. If you have one of those two interfaces, a Franky or
Franky Sound version will conflict with your cartridge, so it is best to stick
with a vanilla version. (Vanilla means nothing after the device name)

3 - (FUTURE ONLY, NOT NOW) You've found out that your 2nd Gen device has
support for a FrankyFull version. If in 2 you would choose Franky Sound, then
seems like choosing FrankyFull (that has Master System VDP support) would be a
no brainer, right? Wrong... Unfortunately it is not possible to fit Master
System VDP / CRAM / VRAM along with OPL3. So if you like VGMPLAY and use it to
play OPL3 VGMs or have other uses for OPL3, you may prefer to use Franky Sound
version instead.

4 - WOW! That folder contains 16 different firmware files!!! I have no idea how
to choose from...

- Do not worry, first, let's get down to four different files, you do this
by figuring out your PS/2 Keyboard Layout, French, Spanish, Brazilian or
US. IMPORTANT: SD-BIOS DO NOT CHANGE Keyboard Layout, so it is important
to choose the correct one :)
- Now, you have four different versions, let's get down to two. Do you
prefer backslash symbol to be shown as a real backslash or do you prefer a
it to be shown as the yen symbol like japanese MSX's? Based on that, choose
yen or backslash. If you use SD-BIOS, then this is not relevant as the
SD-BIOS will override whatever is flashed in that regards
- Finally, you will have SINGLE EPBIOS or DUAL EPBIOS. On DUAL EPBIOS, if
you do not use a SD-BIOS, you can easily switch between Nextor or MSX Dos 2
kernel by flicking dip-switch 7. In the position for 4096 MB Mapper it will
use Nextor Kernel (this change needs turning the device off and then on to
take effect), in the position for 2048 MB Mapper it will use MSX Dos 2
Kernel. Single EPBIOS use only MSX Dos 2 Kernel. If you use SD-BIOS, then
this is not relevant as the SD-BIOS will override whatever is flashed in
that regards

5 - Now you have your firmware file, just use it :)

All source code that changed in relation to OCM 3.9 and binaries:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

All source code from OCM 3.9 originally is a work of many people, including
KdL and Hara-san that are really huge contributors to it!

All code can be re-used, re-written, derivative work can be sold, as long as the
source code of changes is made public as well.

OCM_SM 3.9a - Oficial Release

22 Apr 00:04
Compare
Choose a tag to compare

OCM-PLD v3.9a - Oficial Release

ko-fi

NOTE: This release has been tested on different SM-X and SMX-HB devices. I've made everything I could
to make sure it also works for SX2 and SM-X Mini, if you don't have an USB Blaster available to restore
your device in case the firmware doesn't work for you, I recommend you do not try it until this warning
is removed. If you have a SM-X Mini or SX2 and could test it, please let me know so I can remove this
warning or work on fixing it if it doesn't work there.

OCM-PLD v3.9a is an extension on KdL OCM release v3.9. What this extension
brings to the table:

  • For regular SM-X, SM-X mini and SX-2:

    • Fix: I've fixed OPL3, it had two issues that prevented it to work with
      the latest VGMPlay version:

      • IRQ was not connected, so timers programmed wouldn't trigger,
        instead only the VDP interrupt, too slow, so music would play darn
        slow with VGMPlay.

      • Even after fixing that, playing speed was almost half of the correct
        speed for VGMs. The timer scaler was not properly set causing it to
        trigger slower than programmed.

      Since VGMPlay 1.3 relies on OPL3 timer when present to drive a high speed
      interrupt, not having IRQ and not having the proper scaler for timer
      caused its timing to be slow, darn slow...

    • Fix: I've fixed OPL3 sound rendering as it was discarding all information
      that is on right output channel only, unfortunately we do not have enough
      FPGA resources to run the sequencer for two channels, but a clever trick
      allow all songs content to be properly played in MONO glory :P Try as an
      example Doom soundtrack track 3 before updating and after updating it. :)

  • Adds support to SMX-HB (as it has only initial support for OCM 3.7.1)

    • Extra: I've allowed Joystick port debounce to be disabled, this perhaps
      can alleviate the issues some users were having with paddles. To turn off
      Joystick port debounce use the command SETSMART -89 , to turn it back on
      use the command SETSMART -8A , power cycle will restore default, on.

    • Extra: I've added support to different keyboard map tables. This is handy
      as the internal keyboard of Hotbit is not standard and its map is very
      peculiar, while PS/2 keyboards have a different mapping. DIP switch 9 set
      to OFF is the default, using the internal mapping, if set to ON it will
      use the mapping the firmware was built-in, that is handy when you want to
      use an external keyboard.

    • Fix: Select key was not working on original 3.7.1 based release, it works
      now. Also, SELECT + UP and SELECT + DOWN replaces Page Up and Page Down,
      so it is possible to activate the autofire module using only SMX-HB
      internal keyboard.

    • Missing: SMX-HB FPGA has less cells than other SM-X devices as it uses
      a FPGA with about 70% of the capacity of the other devices, so it doesn't
      support OPL3 as it won't fit

  • For all Second Generation device (SM-X, SM-X Mini, SX2 and SMX-HB):

    • Improved: Victor Trucco made improvements on the SDRAM controller so it
      is able to work with different chips. Some SM-X mini and SMX-HB use chips
      that need this to work.
  • Adds to regular SMX-HB, SM-X, SM-X mini and SX-2 a frankysnd build:

    • Extra: I've added partial support to a built-in Franky. That partial
      support is good enough to work with SG1000, COL4MMM (using COM\Franky
      versions) VGMPLAY and Sofarun (remember to set it to use MSX VDP and
      Franky's PSG). As Franky sound uses I/O ports 0x48 and 0x49, and those
      ports are part of the switched I/O, it is usually disabled, as OCM IPL
      loader will leave switched I/O selected after booting. There are
      different ways to enable Franky sound:

      • VGMPLAY will automatically disable switched I/O, so you can play a
        VGM song that uses SN76489 and after exiting VGMPLAY you can use other
        software.

      • De-select the internal switched I/O by sending the basic command
        OUT &H40,0

      • Use SETSMART -8C to enable the I/O ports 0x48 and 0x49 for that, so
        any program relying on reading OCM information on those ports won't
        get it.

  • Planned for the future SM-X, SM-X mini and SX-2 will have a franky build:

    • Missing: FPGA in those devices can't fit OPL3 along with Franky VDP and
      PSG, so that build won't have OPL3 support.

    • Extra: this is a WIP, please wait, but it will have Franky VDP :P

How to choose the firmware?

1 - Obviously, you will download the one for your device. (i.e.: I have a SM-X,
so I get firmware files from folders that start with smx_)

2 - Next step is to find out if you want vanilla or Franky Sound version. If
you don't own a Franky cartridge or a Playsoniq cartridge, go ahead with the
Franky Sound version. If you have one of those two interfaces, a Franky or
Franky Sound version will conflict with your cartridge, so it is best to stick
with a vanilla version. (Vanilla means nothing after the device name)

3 - (FUTURE ONLY, NOT NOW) You've found out that your 2nd Gen device has
support for a FrankyFull version. If in 2 you would choose Franky Sound, then
seems like choosing FrankyFull (that has Master System VDP support) would be a
no brainer, right? Wrong... Unfortunately it is not possible to fit Master
System VDP / CRAM / VRAM along with OPL3. So if you like VGMPLAY and use it to
play OPL3 VGMs or have other uses for OPL3, you may prefer to use Franky Sound
version instead.

4 - WOW! That folder contains 16 different firmware files!!! I have no idea how
to choose from...

- Do not worry, first, let's get down to four different files, you do this
by figuring out your PS/2 Keyboard Layout, French, Spanish, Brazilian or
US. IMPORTANT: SD-BIOS DO NOT CHANGE Keyboard Layout, so it is important
to choose the correct one :)
- Now, you have four different versions, let's get down to two. Do you
prefer backslash symbol to be shown as a real backslash or do you prefer a
it to be shown as the yen symbol like japanese MSX's? Based on that, choose
yen or backslash. If you use SD-BIOS, then this is not relevant as the
SD-BIOS will override whatever is flashed in that regards
- Finally, you will have SINGLE EPBIOS or DUAL EPBIOS. On DUAL EPBIOS, if
you do not use a SD-BIOS, you can easily switch between Nextor or MSX Dos 2
kernel by flicking dip-switch 7. In the position for 4096 MB Mapper it will
use Nextor Kernel (this change needs turning the device off and then on to
take effect), in the position for 2048 MB Mapper it will use MSX Dos 2
Kernel. Single EPBIOS use only MSX Dos 2 Kernel. If you use SD-BIOS, then
this is not relevant as the SD-BIOS will override whatever is flashed in
that regards

5 - Now you have your firmware file, just use it :)

All source code that changed in relation to OCM 3.9 and binaries:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

All source code from OCM 3.9 originally is a work of many people, including
KdL and Hara-san that are really huge contributors to it!

All code can be re-used, re-written, derivative work can be sold, as long as the
source code of changes is made public as well.

OCM_SM 3.9a - Release Candidate

19 Apr 19:08
Compare
Choose a tag to compare
Pre-release

OCM-PLD v3.9a

ko-fi

PLEASE DON'T USE THIS RELEASE, THE FULL RELEASE IS AVAILABLE, IT IS KEPT HERE FOR HISTORY REASONS.
CHECK FOR OCM_SM 3.9a - Oficial Release instead.

OCM-PLD v3.9a is an extension on KdL OCM release v3.9. What this extension
brings to the table:

  • For regular SM-X, SM-X mini and SX-2:

    • Fix: I've fixed OPL3, it had two issues that prevented it to work with
      the latest VGMPlay version:

      • IRQ was not connected, so timers programmed wouldn't trigger,
        instead only the VDP interrupt, to slow, so music would play darn
        slow with VGMPlay.

      • Even after fixing that, playing speed was almost half of the correct
        speed for VGMs. The timer scaler was not properly set causing it to
        trigger slower than programmed.

      Since VGMPlay 1.3 relies on OPL3 timer when present to drive a high speed
      interrupt, not having IRQ and not having the proper scaler for timer
      caused its timing to be slow, darn slow...

    • Fix: I've fixed OPL3 sound rendering as it was discarding all information
      that is on right output channel only, unfortunately we do not have enough
      FPGA resources to run the sequencer for two channels, but a clever trick
      allow all songs content to be properly played in MONO glory :P Try as an
      example Doom soundtrack track 3 before updating and after updating it. :)

  • Adds support to SMX-HB (as it has only initial support for OCM 3.7.1)

    • Extra: I've allowed Joystick port debounce to be disabled, this perhaps
      can alleviate the issues some users were having with paddles. To turn off
      Joystick port debounce use the command SETSMART -89 , to turn it back on
      use the command SETSMART -8A , power cycle will restore default, on.

    • Extra: I've added support to different keyboard map tables. This is handy
      as the internal keyboard of Hotbit is not standard and its map is very
      peculiar, while PS/2 keyboards have a different mapping. DIP switch 9 set
      to OFF is the default, using the internal mapping, if set to ON it will
      use the mapping the firmware was built-in, that is handy when you want to
      use an external keyboard.

    • Fix: Select key was not working on original 3.7.1 based release, it works
      now. Also, SELECT + UP and SELECT + DOWN replaces Page Up and Page Down,
      so it is possible to activate the autofire module using only SMX-HB
      internal keyboard.

    • Missing: SMX-HB FPGA has less cells than other SM-X devices as it uses
      a FPGA with about 70% of the capacity of the other devices, so it doesn't
      support OPL3 as it won't fit

  • Adds to regular SMX-HB, SM-X, SM-X mini and SX-2 a frankysnd build:

    • Extra: I've added partial support to a built-in Franky. That partial
      support is good enough to work with SG1000, COL4MMM (using COM\Franky
      versions) VGMPLAY and Sofarun (remember to set it to use MSX VDP and
      Franky's PSG). As Franky sound uses I/O ports 0x48 and 0x49, and those
      ports are part of the switched I/O, it is usually disabled, as OCM IPL
      loader will leave switched I/O selected after booting. There are
      different ways to enable Franky sound:

      • VGMPLAY will automatically disable switched I/O, so you can play a
        VGM song that uses SN76489 and after exiting VGMPLAY you can use other
        software.

      • De-select the internal switched I/O by sending the basic command
        OUT &H40,0

      • Use SETSMART -8C to enable the I/O ports 0x48 and 0x49 for that, so
        any program relying on reading OCM information on those ports won't
        get it.

  • Planned for the future SM-X, SM-X mini and SX-2 will have a franky build:

    • Missing: FPGA in those devices can't fit OPL3 along with Franky VDP and
      PSG, so that build won't have OPL3 support.

    • Extra: this is a WIP, please wait, but it will have Franky VDP :P

How to choose the firmware?

1 - Obviously, you will download the one for your device. (i.e.: I have a SM-X,
so I get firmware files from folders that start with smx_)

2 - Next step is to find out if you want vanilla or Franky Sound version. If
you don't own a Franky cartridge or a Playsoniq cartridge, go ahead with the
Franky Sound version. If you have one of those two interfaces, a Franky or
Franky Sound version will conflict with your cartridge, so it is best to stick
with a vanilla version. (Vanilla means nothing after the device name)

3 - (FUTURE ONLY, NOT NOW) You've found out that your 2nd Gen device has
support for a FrankyFull version. If in 2 you would choose Franky Sound, then
seems like choosing FrankyFull (that has Master System VDP support) would be a
no brainer, right? Wrong... Unfortunately it is not possible to fit Master
System VDP / CRAM / VRAM along with OPL3. So if you like VGMPLAY and use it to
play OPL3 VGMs or have other uses for OPL3, you may prefer to use Franky Sound
version instead.

4 - WOW! That folder contains 16 different firmware files!!! I have no idea how
to choose from...

- Do not worry, first, let's get down to four different files, you do this
by figuring out your PS/2 Keyboard Layout, French, Spanish, Brazilian or
US. IMPORTANT: SD-BIOS DO NOT CHANGE Keyboard Layout, so it is important
to choose the correct one :)
- Now, you have four different versions, let's get down to two. Do you
prefer backslash symbol to be shown as a real backslash or do you prefer a
it to be shown as the yen symbol like japanese MSX's? Based on that, choose
yen or backslash. If you use SD-BIOS, then this is not relevant as the
SD-BIOS will override whatever is flashed in that regards
- Finally, you will have SINGLE EPBIOS or DUAL EPBIOS. On DUAL EPBIOS, if
you do not use a SD-BIOS, you can easily switch between Nextor or MSX Dos 2
kernel by flicking dip-switch 7. In the position for 4096 MB Mapper it will
use Nextor Kernel (this change needs turning the device off and then on to
take effect), in the position for 2048 MB Mapper it will use MSX Dos 2
Kernel. Single EPBIOS use only MSX Dos 2 Kernel. If you use SD-BIOS, then
this is not relevant as the SD-BIOS will override whatever is flashed in
that regards

5 - Now you have your firmware file, just use it :)

All source code that changed in relation to OCM 3.9 and binaries:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

All source code from OCM 3.9 originally is a work of many people, including
KdL and Hara-san that are really huge contributors to it!

All code can be re-used, re-written, derivative work can be sold, as long as the
source code of changes is made public as well.

OCM firmware 3.9a version 1 for SX2 w/ Franky Sound

15 Apr 13:53
Compare
Choose a tag to compare

SX2_FRANKYSND

ko-fi

PLEASE DON'T USE THIS RELEASE, THE FULL RELEASE IS AVAILABLE, IT IS KEPT HERE FOR HISTORY REASONS.
CHECK FOR OCM_SM 3.9a - Oficial Release instead.

IMPORTANT! READ THIS AND BE CAREFUL! BRICKING SX2 ISN'T FUN! IT IS A PAIN TO
RESTORE IT USING JIC / USB BLASTER AS YOU WILL NEED TO CONNECT IT TO AN USB
BLASTER TO RESTORE IT. YOU HAVE BEEN WARNED! REALLY!

ONLY USE SMXFLASH.COM to update your SX2. ONLY USE A FIRMWARE THAT IS MEANT TO
SX2. NO, SMX-HB firmware IS NOT COMPATIBLE. SM-X MINI firmware IS NOT
COMPATIBLE. SM-X firmware IS NOT COMPATIBLE. IF THE FIRMWARE IS NOT SAYING IT
IS FOR SX2 STAY AWAY FROM IT.

The version of SMXFLASH.COM that is sent along with the firmware file also
works on NEXTOR. Older versions of SMXFLASH.COM requires MSX DOS 2 Kernel to be
loaded. Why would you use other version? I have no idea. Read this fully and
be carefull to not have any issues. Command line to update:

SMXFLASH OCM_SM.PLD

Wait until it quits to the dos prompt telling it is done. If there is an error
message after it started erasing or writing, try again until it works, as if
you power it down with an unfinished update, it will BRICK and you will need
to use an USB Blaster and JIC file to restore it, like said above, a pain!

Also, be aware that if power fails during update, you are most likely to end up
with a bricked unit and you will need to use an USB Blaster and JIC file to
restore it, again, a pain!

OCM-PLD v3.9a is an extension on KdL OCM release v3.9. What this extension
brings to the table on this frankysnd version:

- Extra: I've added partial support to a built-in Franky. That partial
  support is good enough to work with SG1000, COL4MMM (using COM\Franky
  versions) VGMPLAY and Sofarun (remember to set it to use MSX VDP and
  Franky's PSG). As Franky sound uses I/O ports 0x48 and 0x49, and those
  ports are part of the switched I/O, it is usually disabled, as OCM IPL
  loader will leave switched I/O selected after booting. There are 
  different ways to enable Franky sound:

    - VGMPLAY will automatically disable switched I/O, so you can play a
    VGM song that uses SN76489 and after exiting VGMPLAY you can use other
    software.

    - De-select the internal switched I/O by sending the basic command
    OUT &H40,0

    - Use SETSMART -8C to enable the I/O ports 0x48 and 0x49 for that, so
    any program relying on reading OCM information on those ports won't
    get it.

- Fix: I've fixed OPL3, it had two issues that prevented it to work with
  the latest VGMPlay version:

    - IRQ was not connected, so timers programmed wouldn't trigger,
      instead only the VDP interrupt, to slow, so music would play darn
      slow with VGMPlay.

    - Even after fixing that, playing speed was almost half of the correct
      speed for VGMs. The timer scaler was not properly set causing it to
      trigger slower than programmed.

  Since VGMPlay 1.3 relies on OPL3 timer when present to drive a high speed
  interrupt, not having IRQ and not having the proper scaler for timer
  caused its timing to be slow, darn slow...
  • Planned for the future SM-X, SM-X mini and SX-2 will have a franky build:

    • Missing: FPGA in those devices can't fit OPL3 along with Franky VDP and
      PSG, so that build won't have OPL3 support.

    • Extra: this is a WIP, please wait, but it will have Franky VDP :P

All source code and binaries:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

All code can be re-used, re-written, derivative work can be sold, as long as the
source code of changes is made public as well.

OCM firmware 3.9a version 1 for SM-X Mini w/ Franky Sound

15 Apr 13:31
Compare
Choose a tag to compare

SMXMINI_FRANKYSND

ko-fi

PLEASE DON'T USE THIS RELEASE, THE FULL RELEASE IS AVAILABLE, IT IS KEPT HERE FOR HISTORY REASONS.
CHECK FOR OCM_SM 3.9a - Oficial Release instead.

IMPORTANT! READ THIS AND BE CAREFUL! BRICKING SM-X MINI ISN'T FUN! IT IS A PAIN TO
RESTORE IT USING JIC / USB BLASTER AS YOU WILL NEED TO CONNECT IT TO AN USB
BLASTER TO RESTORE IT. YOU HAVE BEEN WARNED! REALLY!

ONLY USE SMXFLASH.COM to update your SM-X MINI. ONLY USE A FIRMWARE THAT IS MEANT TO
SM-X MINI. NO, SMX-HB firmware IS NOT COMPATIBLE. SM-X firmware IS NOT
COMPATIBLE. SX2 firmware IS NOT COMPATIBLE. IF THE FIRMWARE IS NOT SAYING IT
IS FOR SM-X MINI STAY AWAY FROM IT.

The version of SMXFLASH.COM that is sent along with the firmware file also
works on NEXTOR. Older versions of SMXFLASH.COM requires MSX DOS 2 Kernel to be
loaded. Why would you use other version? I have no idea. Read this fully and
be carefull to not have any issues. Command line to update:

SMXFLASH OCM_SM.PLD

Wait until it quits to the dos prompt telling it is done. If there is an error
message after it started erasing or writing, try again until it works, as if
you power it down with an unfinished update, it will BRICK and you will need
to use an USB Blaster and JIC file to restore it, like said above, a pain!

Also, be aware that if power fails during update, you are most likely to end up
with a bricked unit and you will need to use an USB Blaster and JIC file to
restore it, again, a pain!

OCM-PLD v3.9a is an extension on KdL OCM release v3.9. What this extension
brings to the table on this frankysnd version:

- Extra: I've added partial support to a built-in Franky. That partial
  support is good enough to work with SG1000, COL4MMM (using COM\Franky
  versions) VGMPLAY and Sofarun (remember to set it to use MSX VDP and
  Franky's PSG). As Franky sound uses I/O ports 0x48 and 0x49, and those
  ports are part of the switched I/O, it is usually disabled, as OCM IPL
  loader will leave switched I/O selected after booting. There are 
  different ways to enable Franky sound:

    - VGMPLAY will automatically disable switched I/O, so you can play a
    VGM song that uses SN76489 and after exiting VGMPLAY you can use other
    software.

    - De-select the internal switched I/O by sending the basic command
    OUT &H40,0

    - Use SETSMART -8C to enable the I/O ports 0x48 and 0x49 for that, so
    any program relying on reading OCM information on those ports won't
    get it.

- Fix: I've fixed OPL3, it had two issues that prevented it to work with
  the latest VGMPlay version:

    - IRQ was not connected, so timers programmed wouldn't trigger,
      instead only the VDP interrupt, to slow, so music would play darn
      slow with VGMPlay.

    - Even after fixing that, playing speed was almost half of the correct
      speed for VGMs. The timer scaler was not properly set causing it to
      trigger slower than programmed.

  Since VGMPlay 1.3 relies on OPL3 timer when present to drive a high speed
  interrupt, not having IRQ and not having the proper scaler for timer
  caused its timing to be slow, darn slow...
  • Planned for the future SM-X, SM-X mini and SX-2 will have a franky build:

    • Missing: FPGA in those devices can't fit OPL3 along with Franky VDP and
      PSG, so that build won't have OPL3 support.

    • Extra: this is a WIP, please wait, but it will have Franky VDP :P

All source code and binaries:
(c)2022 Oduvaldo Pavan Junior - ducasp@gmail.com

All code can be re-used, re-written, derivative work can be sold, as long as the
source code of changes is made public as well.