Konami CPU and other news (Patreon)
Downloads
Content
Español abajo 日本語は以下
The Motorola M6809 CPU powered many arcade games (and some home computers). It was used by CAPCOM in Ghosts’n Goblins and by Konami in Kicker, Track’n Field, etc. The CPU had complex memory addressing instructions that made development easy and was favored by developers despite its relative high price. Konami tried to protect their games by playing an easy trick on the data lines of this CPU in the so called KONAMI-1 CPU. This type of encryption consisted in inverting a few bits for the instruction codes going to the CPU depending on the memory address the data was coming from. However, they did it in a way so straightforward that didn’t prevent bootlegs from appearing.
Hitachi had been manufacturing a compatible chip called the HD6309. This CPU had a special mode where more powerful instructions and internal registers were available. We can see it in use in games such as Contra and other Konami titles. However, they do not seem to use the new instructions. Indeed, we are using a regular M6809 in the FPGA version of these games without any issues. Even if Konami didn’t take advantage of the new processor, the HD6309 was probably the way the KONAMI-2 CPU project started. This chip takes a mix of the M6809 and HD6309 instruction sets, adds direct operations on memory (bypassing internal registers), removes some of the addressing modes and adds a few new instructions. All the encoding for the instructions is radically different from the other CPUs. Hitachi was probably the responsible for developing this part for Konami, which went on to use it in hit titles such as Aliens and The Simpsons.
At this point we have a good understanding of the chip and we have discarded the original idea of modifying the existing M6809 core as the changes needed are too big. We are making a microcode-based implementation, contrary to the M6809 core which uses hardware decoding. Microcoding is akin to a processor inside a processor. You have a small set of hardware blocks whose operation is controlled by something similar to software running inside it. The microcode technique is still in use today in some modern CPUs but there is not much literature about it. One of the best microcode descriptions is found in the 8086 microcode disassembly published here. I am expecting the microcode implementation to take us 1-2 months to complete, so please be patient with us.
On other news, Furrtek uploaded the CPS3 custom chips die shots to https://siliconpr0n.org . There are several developers who have shown interest in working on tracing these chips and we will try to agree on how to break the task so we do not duplicate efforts. This is a big task and we have to be smart about how to tackle it.
On the schematics front too, we worked on polishing up CAPCOM’s Exed Exes schematics we made almost two years ago. That was the first time we extracted schematics and although the information was there, they were messy and hard to follow. Plus it was impossible to print them out without a gigantic plotter. Find attached the re-organized schematics, although we’ll still need a couple more days to finish them up in the new format.
The changes to the binary and source code repositories I have been talking about will be pushed next Friday. We are consolidating the source code for all JT cores in a single GitHub repository and are implementing continuous integration techniques to prevent problems each time we deploy updates or new cores. This has taken a lot of effort to implement but as the number of supported games keeps growing, we needed a way to keep scaling the operations with a small team. I am sorry this has taken time away from new releases and updates, but I am sure it will pay off.
I have spent the week in Silicon Valley and met DJ Hard Rich (Producer) and Atrac17 (Director). I was given Jaguar-related hardware for analysis. We will compare it with existing schematics and use it on a new core. LightCaster games also took the occasion to send a Splatter House PCB for analysis and core development. Thank you all!
Español
La CPU Motorola M6809 impulsó muchos juegos de arcade (y algunas computadoras domésticas). Fue utilizada por CAPCOM en Ghosts'n Goblins y por Konami en Kicker, Track'n Field, etc. La CPU tenía instrucciones de direccionamiento de memoria complejas que facilitaban el desarrollo y era la favorita de los desarrolladores a pesar de su precio relativamente alto. Konami trató de proteger sus juegos jugando un truco fácil en las líneas de datos en la denominada CPU KONAMI-1. Este tipo de encriptación consistía en invertir algunos bits para los códigos de instrucciones que iban a la CPU dependiendo de la dirección de memoria de donde provenían los datos. Sin embargo, lo hicieron de una manera tan sencilla que no impidió que aparecieran placas pirata.
Hitachi fabricaba un chip compatible con el M6809. Lo llamó HD6309. Esta CPU tenía un modo especial en el que se disponía de instrucciones y registros internos más potentes. Esta CPU está en juegos como Contra y otros títulos de Konami. Sin embargo, no parecen utilizar las nuevas instrucciones. De hecho, estamos usando un M6809 normal en la versión FPGA de estos juegos sin ningún problema. Incluso si Konami no aprovechó el nuevo procesador, el HD6309 fue probablemente la forma en que comenzó el proyecto de la CPU KONAMI-2 al poner en contacto a Hitachi con Konami. El KONAMI-2 combina los conjuntos de instrucciones del M6809 y HD6309, agrega operaciones directas en la memoria (sin pasar por los registros internos), elimina algunos de los modos de direccionamiento y agrega algunas instrucciones nuevas. Toda la codificación de las instrucciones es radicalmente diferente de las otras CPUs. Hitachi fue probablemente la responsable de desarrollar este chip para Konami, donde se usó en títulos exitosos como Aliens y Los Simpson.
En nuestro análisis, tenemos ya una buena comprensión del chip y hemos descartado la idea original de modificar el núcleo M6809 existente porque los cambios necesarios son demasiado grandes. Estamos haciendo una implementación basada en microcódigo, a diferencia del núcleo M6809 que usa decodificación de hardware. La microcodificación es similar a un procesador dentro de un procesador. Tiene un pequeño conjunto de bloques de hardware cuyo funcionamiento está controlado por algo similar al software que se ejecuta en su interior. La técnica del microcódigo todavía se usa hoy en día en algunas CPU modernas, pero no hay mucha literatura al respecto. Una de las mejores descripciones sobre microcódigo se encuentra en el análisis del microcódigo del 8086 publicado aquí. Espero que la implementación del microcódigo tarde entre 1 y 2 meses en completarse, así que os pedimos paciencia con nosotros.
En otras noticias, Furrtek subió las fotos de los chips propios de la CPS3 a Siliconpr0n. Hay varios desarrolladores que han mostrado interés en trabajar en el trazado de estos chips e intentaremos ponernos de acuerdo en cómo dividir la tarea para no duplicar esfuerzos. Esta es una gran labor y tenemos que abordarla con un buen plan.
En el frente de los esquemas, hemos trabajado para pulir los de Exed Exes (CAPCOM) que hicimos hace casi dos años. Esa fue la primera vez que extrajimos esquemas y, aunque son informativos, estan desordenados y son difíciles de seguir. Además, es imposible imprimirlos sin un plotter gigante. Encuentre adjunto los esquemas reorganizados que estamos haciendo, aunque aún necesitaremos un par de días más para terminarlos en el nuevo formato.
Los cambios en los repositorios de código fuente y binario de los que he estado hablando se publicarán el próximo viernes. Estamos consolidando el código fuente de todos los cores JT en un único repositorio de GitHub y estamos implementando técnicas de integración continua para evitar problemas cada vez que sacamos actualizaciones o nuevos núcleos. Esto ha requerido un gran trabajo, pero a medida que la cantidad de juegos compatibles sigue creciendo, necesitábamos una forma de seguir escalando las operaciones con un equipo pequeño. Lamento que esto le haya quitado tiempo a los nuevos lanzamientos y actualizaciones, pero estoy seguro de que valdrá la pena.
Pasé la semana en Silicon Valley y conocí a DJ Hard Rich (Productor) y Atrac17 (Director). Me dieron hardware relacionado con la Jaguar para su análisis. Lo compararemos con los esquemas existentes y lo usaremos en un nuevo núcleo. La compañía de juegos LightCaster también aprovechó la ocasión para mandarnos una PCB de Splatter House para su análisis y desarrollo de un core. ¡Gracias a todos!
日本語
モトローラ社のCPU「M6809」は、多くのアーケードゲーム(と一部の家庭用パソコン)を駆動させました。カプコンでは『魔界村』、コナミでは『ショーリンズロード』や『ハイパーオリンピック』などに採用されました。CPUは複合のメモリアドレッシング命令を持っていたため開発が容易であり、比較的高価であったにもかかわらず開発者に支持されました。コナミは、このCPUのデータラインに簡単な仕掛けを施した「KONAMI-1」と呼ばれるCPUを開発し、ゲームの保護に努めました。これは、CPUに送る命令コードのビットを、データが来るメモリアドレスによって数ビット反転させるというものであります。しかし、あまりにも簡単な方法なので、海賊版が出回るのを防げませんでした。
日立は、「HD6309」という互換チップを製造していました。このCPUは、より強力な命令と内部レジスタが利用できる特別なモードを持っていました。『魂斗羅』などのコナミのゲームに使われているのを見ることができます。ただし、新しい命令は使っていないようです。実際、これらのゲームのFPGA版では、通常のM6809を問題なく使っています。コナミが新しいプロセッサを利用しなかったとしても、KONAMI-2のCPUプロジェクトはHD6309から始まったと思われます。このチップは、M6809とHD6309の命令セットをミックスし、メモリに対する直接操作(内部レジスタをバイパスする)を追加し、アドレッシングモードの一部を削除し、いくつかの新しい命令を追加したものであります。命令のエンコードも他のCPUとは根本的に違います。日立はおそらくコナミのためにこの部分を開発し、その後『エイリアンズ』や 『ザ・シンプソンズ』などのヒット作に使用されました。
この時点で、私たちはチップのことをよく理解しており、既存のM6809コアを改造するという当初のアイデアは、必要な変更が大きすぎるため破棄しました。私たちは、ハードウェア・デコードを使用するM6809コアとは逆に、マイクロコード・ベースの実装を実現しています。マイクロコードは、プロセッサの中にプロセッサがあるようなものです。小さなハードウェアブロックのセットがあり、その内部で動作するソフトウェアのようなものによって動作が制御されるのです。マイクロコードの技術は、今日でもいくつかの最新のCPUで使われていますが、それに関する文献はあまり多くありません。マイクロコードの記述として最も優れているのは、ここで公開されている8086のマイクロコードディスアセンブルにあります。マイクロコードの実装には1-2ヶ月かかると予想していますので、どうか気長にお待ちください。
その他のニュースとしては、FurrtekがCPS3のカスタムチップのダイショットをsiliconPr0nにアップロードしています。これらのチップのトレースに興味を示している開発者が何人かいますので、重複しないようにタスクの分割方法について合意しようと思っています。これは大きな仕事なので、スマートに取り組まなければなりません。
回路図の面でも、約2年前に作成したカプコンのエグゼドエグゼスの回路図に磨きをかけました。その時に初めて回路図を抽出したのですが、情報はあるのですが、ごちゃごちゃして分かりにくく、しかも、巨大なプロッターでないと印刷できないものでした。新しいフォーマットで仕上げるには、まだ数日かかりますが、再整理した回路図を添付します。
これまで話してきたバイナリおよびソースコードリポジトリの変更は、来週の金曜日に行われる予定です。私たちは、すべてのJTコアのソースコードを単一のGitHubリポジトリに統合し、アップデートや新しいコアをデプロイするたびに問題が発生しないよう、継続的統合技術を導入しています。この実装には多くの労力がかかりましたが、対応ゲームの数が増え続けているため、小さなチームで運用を拡大し続ける方法が必要でした。このため、新しいリリースやアップデートの時間が取れず、申し訳なく思っていますが、必ずや報われると信じています。
今週はシリコンバレーに滞在し、DJ Hard Rich(プロデューサー)とAtrac17(ディレクター)に会ってきました。Jaguar関連のハードウェアを譲ってもらい、解析を行いました。既存の回路図と比較し、新しいコアに使用する予定です。LightCaster gamesもこの機会に『スプラッターハウス』のPCBを解析とコア開発のために送ってくれました。
みなさん、ありがとうございました!!