Super Hang On beta
Added 2022-09-30 17:08:44 +0000 UTCI stopped working on the Out Run core on the 18thof August after a frustrating debug week. The core was hanging up right at the start and I could not find the problem. I published the source code in the hope of another developer finding the problem. And open source worked its magic. Gyurco, who I have already mentioned in the past, is a developer from the MiST scene. He found the problem in a few hours. When he described it to me, it was something I had come across but I didn’t make sense of it at the time. The problem is that the M68000 can use its reset pin as an output and not just as an input. The two M68000 chips in the game share the same reset pin, but the game CPU can toggle it to reset the road CPU. It was a bit counter intuiteve to me as I had not seen the reset pin used as input/output before so when I came across that part of the code I dismissed it too quickly. Thank God, Gyurco didn’t. He just corrected a couple of lines so the reset could be an output too and the game was booting!
Booting the game isn’t enough. The sprite logic of Out Run is different from other games and that part is missing in the core. However, Super Hang On uses a cut-down version of Out Run’s road hardware and the same sprite logic than System 16. So a first step has been to complete the Super Hang On support. Please find attached (or in update_all) the beta for it. Note that only Super Hang On is playable. The road colors are not right and the sprites are displayed over the text layer. These are the only two issues I am aware of.
Other than that, a lot of interaction with Boogermann and Pramod plus a firmware update from Analogue got the Pocket support much closer to a release. Many games seem to be working correctly now, including DIP switches. But some features are still missing and both System 16 and CPS games still have some odd problems in the Pocket. The firmware update actually broke all the cores that I had already ported. It was a good thing I hadn’t released any! The cores are working again but I need more testing before releasing them.
After one month of full time work on the coverage analysis on the Neo Geo Pocket CPU, we’ve got most metrics to 100% or close. We have discovered two bugs so far thanks to this effort -and gained confidence on the test suite. Please find attached the oldest and latest coverage reports so you can see the progress. Coverage work on the current design should finish next week. Then we will resume design work to finish the interrupt and microDMA implementation.
Next week Esperanza is back from holidays and we will resume PCB schematic extraction work too on the TAITO SETA games. We’ve missed her during September.
See you next week!
Español
Dejé de trabajar en el núcleo de Out Run el 18 de agosto después de una frustrante semana de depuración. El núcleo se colgaba nada más arrancar y no podía encontrar el problema. Publiqué el código fuente con la esperanza de que otro desarrollador me echara un cable. Y el código abierto hizo su magia. Gyurco, a quien ya mencioné en el pasado, es un desarrollador de la escena MiST. Encontró el problema en pocas horas. Cuando me lo describió, era algo con lo que me había topado pero que no tenía sentido para mí en ese momento. El problema es que el M68000 puede usar su pin de reinicio como salida y no solo como entrada. Los dos chips M68000 del juego comparten el mismo pin de reinicio, pero la CPU del juego puede cambiarlo para reiniciar la CPU de la carretera. Era algo inesperado, ya que no había visto el pin de reinicio utilizado como entrada/salida antes, así que cuando encontré esa parte del código, la descarté demasiado rápido. Gracias a Dios, Gyurco no lo hizo. ¡Simplemente corrigió un par de líneas para que el pin de reset también pudiera ser una salida y el juego estaba arrancando!
Arrancar el juego no es suficiente. La lógica de sprites de Out Run es diferente a la de otros juegos y esa parte falta en el núcleo. Sin embargo, Super Hang On usa una versión reducida del hardware de carretera de Out Run y la misma lógica de sprites que System 16. Así que un primer paso ha sido completar el soporte de Super Hang On. Encuentre adjunto (o en update_all) la versión beta. Tenga en cuenta que solo se puede jugar a Super Hang On. Los colores de la carretera no son los correctos y los sprites se muestran sobre la capa de texto. Estos son los únicos dos problemas que conozco.
Aparte de eso, mucha interacción con Boogermann y Pramod más una actualización de firmware de Analogue ha hecho que el soporte de Pocket esté mucho más cerca de un lanzamiento. Muchos juegos parecen estar funcionando correctamente ahora, incluidos los interruptores DIP. Pero todavía faltan algunas funciones y tanto los juegos de System 16 como CPS todavía tienen algunos problemas extraños en Pocket. La actualización del firmware de esta semana rompió todos los núcleos que ya había portado. ¡Qué suerte que no había publicado ninguno! Los núcleos están funcionando otra vez, pero necesito más pruebas antes de publicarlos.
Después de un mes de trabajo a tiempo completo en el análisis de cobertura en la CPU Neo Geo Pocket, tenemos la mayoría de las métricas al 100 % o casi. Hemos descubierto dos errores hasta ahora gracias a este esfuerzo, y ganamos confianza en el conjunto de pruebas. Adjuntos están los informes de cobertura más antiguos y más recientes para que pueda ver el progreso. El trabajo de cobertura sobre el diseño actual debería terminar la próxima semana. Luego retomaremos el trabajo de diseño para terminar la interrupción y la implementación de microDMA.
La semana que viene Esperanza vuelve de vacaciones y retomaremos el trabajo de extracción de esquemas de PCB también en los juegos TAITO SETA. La hemos extrañado durante septiembre.
¡Te veo la proxima semana!
日本語
イライラするデバッグ週間の後、8 月 18 日に Out Run コアの作業を停止しました。コアは最初からハングアップしていて、問題を見つけることができませんでした。別の開発者が問題を見つけてくれることを期待して、ソース コードを公開しました。そして、オープンソースは魔法のように働きました。過去に言及した Gyurco は、MiST シーンの開発者です。彼は数時間で問題を発見しました。彼が私にそれを説明したとき、それは私が遭遇したものでしたが、その時は意味がわかりませんでした.問題は、M68000 がそのリセット ピンを入力としてだけでなく出力として使用できることです。ゲーム内の 2 つの M68000 チップは同じリセット ピンを共有しますが、ゲーム CPU はそれを切り替えてロード CPU をリセットできます。以前にリセットピンが入力/出力として使用されているのを見たことがなかったので、それは私にとって少し直感に反していたので、コードのその部分に出くわしたとき、すぐにそれを却下しました。神に感謝します、Gyurcoはしませんでした.彼は数行を修正しただけなので、リセットも出力になり、ゲームが起動していました!
ゲームを起動するだけでは不十分です。 Out Run のスプライト ロジックは他のゲームとは異なり、その部分がコアに欠けています。ただし、Super Hang On は、Out Run のロード ハードウェアのカットダウン バージョンと、System 16 と同じスプライト ロジックを使用しています。そのため、最初のステップは、Super Hang On のサポートを完了することでした。添付されている (または update_all にある) ベータ版を見つけてください。スーパー ハング オンのみがプレイ可能であることに注意してください。道路の色が正しくなく、スプライトがテキスト レイヤーの上に表示されます。これらは、私が認識している唯一の2つの問題です。
それ以外では、Boogermann と Pramod との多くのやり取りと、Analogue からのファームウェアの更新により、Pocket サポートがリリースにかなり近づきました。現在、DIP スイッチを含む多くのゲームが正しく動作しているようです。しかし、いくつかの機能がまだ不足しており、System 16 と CPS の両方のゲームには、Pocket に奇妙な問題がいくつか残っています。ファームウェアの更新により、実際には、既に移植したすべてのコアが壊れました。リリースしなくてよかった!コアは再び機能していますが、リリースする前にさらにテストする必要があります。
Neo Geo Pocket CPU のカバレッジ分析にフルタイムで 1 か月取り組んだ結果、ほとんどの指標が 100% またはそれに近い値になりました。この取り組みのおかげで、これまでに 2 つのバグを発見し、テスト スイートに対する信頼を得ることができました。進捗状況を確認できるように、最も古いカバレッジ レポートと最新のカバレッジ レポートを添付してください。現在の設計に関するカバレッジ作業は来週終了する予定です。その後、設計作業を再開して、割り込みと microDMA の実装を完了します。
来週、Esperanza は休暇から戻り、TAITO SETA ゲームの PCB 回路図抽出作業も再開します。 9月中、私たちは彼女がいなくて寂しいです。
また来週!
Comments
What about Super Hang on for the Analogue Pocket?
Roland
2023-04-02 18:37:17 +0000 UTCHello thankyou for the Super Hang-on implementation, it is such a beautiful SEGA classic. Can you write a post when you get a moment in the near future explaining to us the challenges of progressing from similiar SEGA superscaler hardware into FPGA implementation? such as system 32 or X/Y boards..thankyou again and have a great week.
Lee Turner
2022-10-02 21:30:39 +0000 UTC