Home Creators Posts Import Register Favorites Logout

Downloads

Content

Español abajo 日本語は以下

I developed the SEGA System 16 compatible cores in 2021. It was a difficult project because under that unifying System 16 name there are indeed many different arcade boards. For a starter, you have two different sprite and PCM sound approaches for the early System 16A boards and the later 16B ones. But even within the A and B models, there are many different protection systems. Some games have no protection at all, others have an Intel microcontroller, others have encryption in the main CPU (M68000) instructions (with two variants for this) and finally some have the encryption done in the sound CPU. Then you have different ROM banking approaches for graphics and different joystick input systems. Overall, these games are quite heterogenous and originally demanded 5 different cores to support them. In time, I was able to consolidate them into two single cores: JTS16 and JTS16B.

The Alpha team at that time made extensive testing at the time and reported many issues but I was not able to fix all of them at the time. Having at least a version of a given game working, made it less important to fix issues on other versions.

Yet some of the issues were ugly. Dynamite Dux character would get funky colors in stage 2, the truck in stage 9 of E-SWAT was unbeatable, some actions could lock up Golden Axe, there were occasional glitches in Cotton background, some games would start up in service mode… We had to come back to this and fix it.

I originally thought it would take a month to get over these issues but two years after the core release, the JTFRAME workflow is much better for debugging and I am more experienced too. So we have been able to fix pretty much all of them in two weeks. Thus we are making a service release, that will also add Y/C video output to the MiSTer version. We also add System 16A files for the Analogue Pocket.

Issues fixed

Sprite alignment, noticeable in Shinobi’s eye, for instance

Golden Axe and Tough Turf main sets started in service mode

The length of the horizontal sync signal (CRT output) did not match the PCB

Silence sections in the middle of PCM sounds were too short, very noticeable in the count down for Alien Syndrome time out that ended when the on-screen counter was still at four, instead of ending at zero

A genuine horizontal line glitch in Ryukyu was occuring a few lines lower in the core

Golden Axe locked up in stage 2 if an enemy was pushed off the turtle shell on some versions

The core was effectively operating slower than real hardware, provoking  Dynamite Dux character  color changed on stage 2

Sprites remained on screen after some scenes, especially annoying when entering the service menu but sometimes during the game too such as some scenes in Sonic Boom

Alien Syndrome player got frozen if an impossible input (like left+right) was sent using a keyboard

Several rom sets of Passing Shot did not boot

Stage 9 of E-SWAT was locked up in some versions

There was a buzzing sound in some versions of Golden Axe during attract mode

Control for players 2P and 4P in Dunk Shot was inverted, which the intention for the original cocktail table but does not suite modern playing setups

The second scroll layer in Cotton got corrupted lines occasionally

The core sound CPU got broken in one source code update, and we could not make new releases

MiSTer version had many timing errors during compilation, which made new releases impractical

The remaining work on this core is about supporting some S16A titles that use the microcontroller and fixing the cocktail mode. There has been no demand for this from patrons, though. So that takes a bit less priority.

Español

En 2021 desarrollé los núcleos compatibles con SEGA System 16. Fue un proyecto difícil porque bajo el nombre unificador de System 16 hay muchas placas arcade diferentes. Para empezar, tienes dos enfoques diferentes de sprites y sonido PCM para las primeras placas System 16A y las posteriores 16B. Pero incluso dentro de los modelos A y B, hay muchos sistemas de protección diferentes. Algunos juegos no tienen ningún tipo de protección, otros tienen un microcontrolador Intel, otros tienen encriptación en las instrucciones de la CPU principal (M68000) (con dos variantes para esto) y finalmente algunos tienen la encriptación hecha en la CPU de sonido. Luego tienes diferentes enfoques de banca ROM para gráficos y diferentes sistemas de entrada de joystick. En general, estos juegos son bastante heterogéneos y originalmente exigían 5 núcleos diferentes para soportarlos. Con el tiempo, pude consolidarlos en dos únicos núcleos: JTS16 y JTS16B.

El equipo Alpha de la época realizó pruebas exhaustivas e informó de muchos problemas, pero no pude solucionarlos todos en su momento. Tener al menos una versión de un juego funcionando, hacía menos importante arreglar problemas en otras versiones.

Sin embargo, algunos de los problemas eran feos. El personaje de Dynamite Dux se ponía de colores raros en la fase 2, el camión de la fase 9 de E-SWAT era imbatible, algunas acciones podían bloquear Golden Axe, había fallos ocasionales en Cotton background, algunos juegos se iniciaban en modo servicio... Tuvimos que volver sobre esto y arreglarlo.

Al principio pensé que tardaría un mes en solucionar estos problemas, pero dos años después del lanzamiento del núcleo, el flujo de trabajo de JTFRAME es mucho mejor para depurar y yo también tengo más experiencia. Así que hemos podido solucionar prácticamente todos ellos en dos semanas. Así que estamos haciendo una versión de servicio, que también añadirá salida de vídeo Y/C a la versión MiSTer. También añadimos archivos del Sistema 16A para el Analogue Pocket.

Problemas solucionados

Alineación de sprites, notable en el ojo de Shinobi, por ejemplo

Los sets principales de Golden Axe y Tough Turf se iniciaban en modo servicio

La longitud de la señal de sincronización horizontal (salida CRT) no coincidía con la PCB

Las secciones de silencio en medio de los sonidos PCM eran demasiado cortas, muy notable en la cuenta atrás para el tiempo de espera de Alien Syndrome que terminaba cuando el contador en pantalla aún estaba en cuatro, en lugar de terminar en cero

Un fallo genuino en una línea horizontal en Ryukyu ocurría unas líneas más abajo en el núcleo

Golden Axe se bloqueaba en la fase 2 si un enemigo era empujado fuera del caparazón de tortuga en algunas versiones

El núcleo funcionaba más lento que el hardware real, lo que hacía que el color del personaje de Dynamite Dux cambiara en la fase 2

Los sprites permanecían en pantalla después de algunas escenas, especialmente visibles al entrar en el menú de servicio, pero a veces también durante el juego, como en algunas escenas de Sonic Boom

El jugador de Alien Syndrome se quedaba congelado si se enviaba una entrada imposible (como izquierda+derecha) usando el teclado

Varias roms de Passing Shot no arrancaban

La fase 9 de E-SWAT se bloqueaba en algunas versiones

Había un zumbido en algunas versiones de Golden Axe durante el modo atraer

El control de los jugadores 2P y 4P en Dunk Shot estaba invertido, lo que era la intención de la mesa de cóctel original, pero no se ajusta a las configuraciones de juego modernas

La segunda capa de fondo en Cotton se corrompió líneas de vez en cuando 

El módulo de la CPU de sonido se rompió en una actualización del código fuente, y no pudimos hacer nuevas versiones

La versión MiSTer tenía muchos errores de sincronización durante la compilación, lo que hacía impracticables las nuevas versiones.

El trabajo restante en este núcleo consiste en dar soporte a algunos títulos S16A que utilizan el microcontrolador y arreglar el modo cóctel. Sin embargo, no ha habido demanda de esto por parte de los usuarios. Así que eso tiene un poco menos de prioridad.

日本語

私は2021年にセガ・システム16互換コアを開発しました。システム16という統一名称のもと、実に多くの異なるアーケードボードが存在するため、難しいプロジェクトでした。まず、初期のシステム16Aと後期のシステム16Bでは、スプライトとPCMサウンドのアプローチが異なります。しかし、AモデルとBモデルの中にも、さまざまなプロテクトシステムが存在していて、プロテクトがまったくないゲームもあれば、インテルマイクロコントローラーを使ったもの、メインCPU(M68000)命令で暗号化を行うもの(これには2つのバリエーションがある。)、そして最後にサウンドCPUで暗号化を行うものもあります。さらに、グラフィックやジョイスティック入力システムに対するROMバンクのアプローチも異なります。全体として、これらのゲームはかなり異種混合であり、もともとはそれらをサポートするために5つの異なるコアが必要でした。やがて、それらを2つのシングルコアに統合することができました。: JTS16とJTS16Bです。

当時のアルファチームは大規模なテストを行い、多くの問題を報告しましたが、当時はそのすべてを修正することはできませんでした。あるゲームの少なくとも1つのバージョンが動作していれば、他のバージョンの問題を修正する重要性は低くなります。

しかし、いくつかの問題はひどいものでした。ダイナマイトダックスのキャラクターがステージ2でファンキーな色になったり、E-SWATのステージ9のトラックが倒せなかったり、一部のアクションでゴールデンアックスがロックされたり、コットンのバックグラウンドで時々不具合が起きたり、サービスモードで起動するゲームがあったり......。

当初は、これらの問題を解決するのに1ヶ月はかかるだろうと思っていましたが、コア・リリースから2年が経ち、JTFRAMEのワークフローはデバッグにはるかに適していますし、私自身もこの2年でいろいろな経験を積みました。そのため、2週間でほぼすべてを修正することができました。そこで、MiSTerバージョンにY/Cビデオ出力を追加したサービスリリースを作成することにしました。また、アナログポケット用のシステム16Aファイルも追加します。

修正された問題点

スプライトの位置合わせ、例えば『SHINOBI 忍』の目に顕著

『ゴールデンアックス』と『タフ・ターフ』のメインセットがサービスモードで起動した。

水平同期信号(CRT出力)の長さがPCBと合っていなかった。

PCMサウンドの途中の無音部分が短すぎる。エイリアン・シンドロームのタイムアウトのカウントダウンで顕著で、画面上のカウンターがゼロで終わるのではなく、まだ4で終わっていた。

『琉球』の本物の水平ラインの不具合が、コアの数ライン下で発生していた。

一部のバージョンで、敵が亀の甲羅から押し出された場合、『ゴールデンアックス』がステージ2でロックされていた。

コアの動作が実際のハードウェアよりも事実上遅かったため、『ダイナマイトダックス』のキャラクターの色がステージ2で変化していた。

いくつかのシーンの後、スプライトが画面に残っていた。特にサービスメニューに入るときに見えたが、『ソニックブーム』のいくつかのシーンのように、ゲーム中にも見えることがあった。

エイリアン・シンドロームのプレイヤーが、キーボードで不可能な入力(左+右など)が送られるとフリーズしてしまった。

『パッシングショット』のいくつかのロムセットが起動しなかった。

『E-SWAT』のステージ9がいくつかのバージョンでロックされた。

『ゴールデンアックス』の一部のバージョンで、アトラクトモード中にブザー音が発生した。

『ダンクショット』の2Pと4Pのコントロールが逆になっていた。

『コットン』の2つ目のスクロールレイヤーが、時折破損することがあった。

あるソースコードのアップデートで、コアサウンドCPUが壊れてしまい、新しいリリースができなかった。

MiSTerバージョンは、コンパイル時に多くのタイミングエラーが発生し、新規リリースが実用的でなかった。

このコアの残りの作業は、マイクロコントローラーを使用するいくつかのS16Aタイトルのサポートとカクテルモードの修正です。しかし、今のところ これらに対するパトロンからの要望はありません。そのため、優先順位はやや下がります。

Files

Comments

Pixel Cherry Ninja

Thanks Jotego and team, this came, just as I began filming. Have a good weekend

Espiox

Amazing, thank you! (Consider me a patron calling for the other games that need the microcontroller!)

ElloMrChris

It's still #JTFriday somewhere in the world. Thanks Jotego!

Manuel Antoni

Very nice! I like it when bugs are fixed and service releases are made! Now only Carrier Air Wing is missing the sprite priority order ;) You had fixed that once, but it broke another game. Couldn't you just make two cores (CPSA+B), like here with System16? It's a dirty hack, but it doesn't matter, does it? ;)

ronalvel .

Amo estos sistemas, gracias por corregirlos!!!

Trey S.

My OCD appreciates these service releases, haha. Great work! Love hearing the context and history of System16 core development, too.

Mat Azel

Thank you very much for doing this!!

Salvador Perugorria Lorente

Excelente 😊. Una duda, en Sidi (que también tengo) veo que están actualizados los dos cores y en MiST sólo JTS16 y no JTS16B. ¿No es necesario? ¡Muchísimas gracias!!

Mark Saunders

Absolutely fantastic, thanks for these long weeks to get the cores updated , you must have have had to work your socks off to revisit and fix them 💪 hopefully you can relax again for a bit, at least 😊 . In safe hands with JT !

Findamember

Thanks Jotego and the team for this update. New cores are fun but these maintenance releases are what makes our Patreon support even more worthwhile. And thanks for supporting still SIDI and MiST. Nice rest of the weekend.

Holger Lagerfeldt

Thanks! However ~ I'm getting screen tearing with the new jts16b update in the upper part of the screen (Alien Syndrome, Dynamite Dux) and left part of the screen in Sonic Boom as it's vertically oriented. Golden Axe only when scrolling vertically, such as the second stage. No probs in Wonder Boy III since it's not scrolling vertically AFAIK. jts16 core works fine (Shinobi etc.). Previous jts16b core worked fine with no screen tearing. Should I report this at Github?

davethebulb

Any plans to fix the remaining bugs/glitches in the OutRun core? The solid line on the road and OutRun logo for example?

Kent Pendragon

All your work on System 16 is much appreciated. A very important and fun system. Thank you for this update! Can't wait for you to throw your skills at System 18 someday...