XaiJu
JOTEGO
JOTEGO

patreon


NGP Development Update / 1942/Higemaru for Pocket

2023-12-29 NGP Development Update / 1942/Higemaru for Pocket

Español abajo

NeoGeo Pocket Update

The NeoGeo Pocket core is the worst time to market from my career. I have worked on and off on it for the last two years.  During some months, it has been the main focus. I also tried to have  three different developers work on test tasks on the system CPU and the  whole core with little results. Sadly, after two years, the NGP core was  crashing and we could not find the bug. I put the development on hold  two months ago in order to reconsider it.

The complication with this core has been the Toshiba 900H  CPU. This is a 16-bit CISC CPU that tries to be a hypervitaminated Z80.  The instruction encoding is very diverse, going from 1 to ~8 bytes per  instruction. And the operations these instructions perform are all but  uniform. These two conditions translated to a very convoluted design,  with lots of exceptions and long files. Each time I added a new feature  to the CPU, I felt like I was less in control of the design. That was a  bad feeling. The complexity also made it difficult to hop back and forth  from this project to another one, as it took a couple of days to get my  head around it each time I resumed it.

I decided to redesign it optimizing development time and  debugability over FPGA resources. Normally, a hardware engineer would  optimize for less resource usage. But in our case, it has no impact to  the user whether 40% or 80% of their FPGA is used on a given core. I  changed the CPU architecture to a microcoded one. This means that the  CPU is built by combining a number of simpler hardware elements with a  control logic that follows a sequence defined in software-like way.

Having microcode for each one of the CPU instructions  reversed the feelings about the CPU. This time around, adding a new  feature felt like I understood the design better and everything was  coming together nicely. Many of the complex operations that required  specific implementations before could be broken down into combinations  of smaller operations in sequence, so the hardware became much easier.

The hardware simplification can be stated in terms of  lines of code. The old design had 4.1k lines of Verilog, whereas the new  one is about 1k. That's 4 times less! It's true that the new one also  has 1k lines of microcode, of which 300 are instruction definitions and  700 are the instruction sequences.

After two weeks of work, all instructions are implemented  in the new design. I am moving next to the test phase using the unit  tests I had developed for the old design. Then I will connect it to the  rest of the NeoGeo Pocket system. I will give another update in two  weeks.

1942, Pirate Ship Higemaru and Vulgus for the Analogue Pocket

The updated JT1942 MiSTer core comes to the Pocket. This  core supports three of the first CAPCOM games: 1942, Pirate Ship  Higemaru and Vulgus. These games are the initial work that the old  Konami developers made when they moved to CAPCOM. But from the three,  only Fujiwara's Higemaru has some Konami flavour to it. Fujiwara had  worked on Pooyan and Roc'N Rope in Konami, games with no scroll and cute  characters where playability was the design goal. Higemaru also falls  in that category.

The fourth starting title for CAPCOM is SonSon.  I have not made a core for it yet. Every now and then I check whether  there is a reasonably priced PCB available but have not been lucky yet. I  hope we will get access to it soon.

I hope you enjoy your Christmas Eve.

Español

Noticias de la NeoGeo Pocket

El núcleo de NeoGeo Pocket es el proyecto con más retraso  de mi carrera. He trabajado en él de forma intermitente durante los dos  últimos años y durante algunos meses, ha sido la tarea principal.  También intenté que tres desarrolladores diferentes realizaran tareas de  prueba en la CPU del sistema y en todo el núcleo, con escasos  resultados. Lamentablemente, después de dos años, el núcleo NGP se  bloqueaba y no pudimos encontrar el fallo. Hace dos meses dejé en  suspenso el desarrollo para reconsiderarlo.

La complicación con este núcleo ha sido la CPU Toshiba  900H. Se trata de una CPU CISC de 16 bits que intenta ser un Z80  hipervitaminado. La codificación de las instrucciones es muy diversa,  yendo de 1 a ~8 bytes por instrucción. Y las operaciones que realizan  estas instrucciones son casi uniformes. Estas dos condiciones se  tradujeron en un diseño muy enrevesado, con montones de excepciones y  archivos largos. Cada vez que añadía una nueva función a la CPU, tenía  la sensación de controlar menos el diseño. Era una mala sensación. La  complejidad también dificultaba alternar este proyecto y otro, ya que  tardaba un par de días en entender el diseño cada vez que lo retomaba.

He decidido rediseñarlo optimizando el tiempo de  desarrollo y la depurabilidad sobre los recursos de la FPGA.  Normalmente, un ingeniero de hardware optimizaría para utilizar menos  recursos. Pero en nuestro caso, no tiene ningún impacto para el usuario  si el 40% o el 80% de su FPGA se utiliza en un núcleo determinado. He  cambiado la arquitectura de la CPU por una microcodificada. Esto  significa que la CPU se construye combinando una serie de elementos de  hardware más sencillos con una lógica de control que sigue una secuencia  definida de manera similar al software.

Tener microcódigo para cada una de las instrucciones de la  CPU invirtió las sensaciones sobre ésta. Esta vez, al añadir una nueva  función sentía que entendía mejor el diseño y que todo encajaba a la  perfección. Muchas de las operaciones complejas que antes requerían  implementaciones específicas podían descomponerse en combinaciones de  operaciones más pequeñas en secuencia, por lo que el hardware se hizo  mucho más sencillo.

La simplificación del hardware puede expresarse en  términos de líneas de código. El antiguo diseño tenía 4,1k líneas de  Verilog, mientras que el nuevo tiene alrededor de 1k. Es decir, ¡4 veces  menos! Es cierto que el nuevo también tiene 1.000 líneas de  microcódigo, de las cuales 300 son definiciones de instrucciones y 700  son secuencias de instrucciones.

Tras dos semanas de trabajo, todas las instrucciones están  implementadas en el nuevo diseño. A continuación paso a la fase de  pruebas utilizando las pruebas unitarias que había desarrollado para el  diseño antiguo. Después, lo conectaré al resto del sistema NeoGeo  Pocket. Dentro de dos semanas volveré a informar del progreso.


1942, Pirate Ship Higemaru y Vulgus para la Analogue Pocket

El núcleo actualizado JT1942 de MiSTer llega a la Pocket.  Este núcleo soporta tres de los primeros juegos de CAPCOM: 1942, Pirate  Ship Higemaru y Vulgus. Estos juegos son el trabajo inicial que hicieron  los antiguos desarrolladores de Konami cuando se trasladaron a CAPCOM.  Pero de los tres, sólo el Higemaru de Fujiwara tiene algo de sabor a  Konami. Fujiwara había trabajado en Pooyan y Roc'N Rope en Konami,  juegos sin scroll y con personajes simpáticos en los que la jugabilidad  era el objetivo del diseño. Higemaru también entra en esa categoría.

El cuarto título de partida para CAPCOM es SonSon.  Aún no he creado un núcleo para él. De vez en cuando compruebo si hay  alguna PCB disponible a un precio razonable, pero aún no he tenido  suerte. Espero que pronto podamos acceder a ella.

Espero que disfrutes de tu Nochebuena.

NGP Development Update / 1942/Higemaru for Pocket NGP Development Update / 1942/Higemaru for Pocket NGP Development Update / 1942/Higemaru for Pocket NGP Development Update / 1942/Higemaru for Pocket NGP Development Update / 1942/Higemaru for Pocket

Comments

I think that was a regression error introduced in v1.2.75. I'll update the files on Friday. Thanks.

JOTEGO

Excited for the NGP core when it comes out

Alina Marquardt

I just noticed that the Ghost n' Goblins core has crackling audio. Was this there before? I don't recall it. I'm using the latest core, from the previous post.

Rob Steiner Jr.

Thank you for the hard work of yourself and your team. Sorry to hear about the frustration with the NGP. I agree that leaving it alone for a while and getting results elsewhere is a good strategy. New experience, new strategies and new ways of looking at the problems will happen!

Urban Knish

My apologies I figured out how to acquire the beta key zip and now understand that if its in the root folder, it will do the work for you. Thank you for all your hard work and preservation! Merry Christmas to all!!!!!!

Steven S

Gracias como siempre :-) . De Son Son hay un core antiguo que lleva unos años en MiST, el año pasado se actualizó por última vez. Igual puedes echarle un vistazo :)

Salvador Perugorria Lorente

thanks for your detailed post, I sure appreciate it ! Merry Christmas to you, the team and loved ones!

Mat Azel

I got the 1942 core on my pocket; however, every time I try to get in the game, it says, "Error in framework Missing 'ROM' ID [1]". What should I do to fix this? I have this problem with some other arcade cores as well. Thank you for all you do!

Josh Parker

Thanks for what you do! What does the timeline look like for Turtles in Time on the Pocket?

Alex Hunter

It is on hold. But as you can see from this post, on-hold projects do get resumed eventually.

JOTEGO

Check out the interview on Pixel Cherry Ninjas YT channel. Jotego said due to the amount of work required for CPS3 he feels his time would be better spent on other things for now.

Benjamin Addison

Gracias como siempre don José (y a doña Esperanza). Feliz Navidad y próspero año nuevo.

Dr. Manga

See now ok that is awesome 🤩🙏🏼

Adam Davis

Is CPS3 development dead?

Anthony

Thanks for the update, and merry Christmas to you and the team!

Mark Kilborn

I prefer the arcade cores myself since they never had their own console. The work Jotego has done is incredible and very much appreciated. Merry Christmas!! 🎄 🎅

Halla

Luckily for all of us, this CPU is used in one or two arcade boards too.

JOTEGO

Feliz Fiestas Jose! 🎄 A ver si 2024 nos trae ese core de NGP!

Nifled

Gracias por el gran trabajo y la dedicacion jose, te mando un abrazo hermano, que tengas muy feliz navidad!

Alejandro Fajardo

Newer subscriber really enjoying reading about your efforts with ngp development. Really appreciate all your pocket cores as I don’t have a mister.

Gabriel S

Thanks for this incredibly detailed update! I’m not surprised by the challenges that have come up with this core. The software emulators for NGP struggle and vary from the original hardware in different ways. I don’t have an engineering-level understanding like you all do but, from a neophyte perspective, it always felt like there was a lot of complexity in the hardware design under the hood of this little handheld. I’m looking forward to seeing if this core will be able to get closer to the original hardware. I’m sorry the NGP core has been such a difficult one to develop. Thank you so, so much for the detailed status update this week. Those of us who are super excited for this core couldn’t have asked for a better Christmas present. I can say enough how much I personally appreciate hearing more info about the work being done and the progress you’re making here. Thanks for all your hard work over this past year! I hope you all are getting to spend time with your friends and families over the holidays and having the opportunities to make some lovey memories.

Tatton Partington

Really interesting to hear about the redesign and how much better it is working out. Thank you as always!

ER

The NeoGeo explanation was just amazing. Great work! Have a great holiday season!

RobF228

All your work is very appreciated, thank you. Enjoy the journey, and have a great holiday!

a sandwich

https://www.ebay.co.uk/itm/154513614627?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=XiTsBLxaSn-&sssrc=4429486&ssuid=5kcr7wzmtvc&var=&widget_ver=artemis&media=COPY

Darren Newman

Just me but personally I don’t care about the Pocket and hope that someday you can get back to focusing on arcade cores. I do appreciate what you do for this hobby. Thank you Jose. Merry Christmas

Adam Davis

The one in MiSTer is derived from emulation sources, which are derived from software-based reverse engineering. I want to get the board to extract the schematics and make a 100% accurate core based on it. I also want to understand how the CAPCOM hardware evolved from it to 1942, for which there are schematics available.

JOTEGO

Almost all CPUs have used microcode inside, including M68000, 8086. This is actually a hardware design technique, not software. The original microcode for some CPUs is actually known and "public". The CPS core uses a M68000 core that executes the original microcode, so the accuracy is spectacular!

JOTEGO

The updaters should work fine

JOTEGO

These are manual install to the pocket? or can I get them with Pocket Updater?

Yeti X

Use of microcode and software emulation is not the same. It's still a hardware implementation, but with a different cpu architecure, with all the advantages of fpga. Again, thank you so much for all your hard work, and best of luck with this approach Team!

none none

Thank you for the great work Jose and team👍🏻 Happy holidays😊

Zichio

JT has no core for it. But main mister does. I’d be surprised if he will bother with implementing it for pocket alone when someone has already beaten him to the punch.

Darren Newman

It's for the Pocket.

RetroMister

So with all the new microcode / software emulation in fpga CPUs for easier development, do we still have advantages over the old software emulators on PC? Is there still any benefit doing this in fpga then? Could you not just run common software emulators on the Mister ARM cpu then?

Hama

Son son already in main mister, Jose.

Darren Newman

... and a very merry Christmas to you!

Kent Pendragon

Great to hear from you again Jotego. Can't wait 'till you finish the Neo Geo Pocket nightmare. Not because I want the core, but because I hope it will free up more time for you to focus on arcade cores (sorry, but that is where my interest is). Must have been an incredible hard process for you to be stuck in. Glad you found a way forward.

Kent Pendragon

Many thanks, I hope you and the team have a good holiday season.

Pixel Cherry Ninja


More Creators