What's new

Golden Axe Port - Dev log

h0ffman

Professional
Joined
Jan 8, 2025
Messages
59
Reaction score
429
Location
UK
Afternoon peeps.

Seems like a nice place here so thought I'd share my current Neo Geo project progress with you.

Current status is..

* Original code about 80% disasassembled. There is some really odd shit in the latter part of the ROM which feels like it's BS, so I might actually be further than I thought
* All sprites ripped ( re-using Shinobi conversion code )
* Setup tile ripping pipe line for levels and general tile maps
* Most tile maps found, titles, FBI, character pages, ending, player select etc. etc. etc.

I've since started a fresh code base and begun pulling in code from the original, while also making some better adjustments to my sprite / tile display code.

The below screen is an interesting one. The system 16 tiles are 8x8 and 8 colors. The below image uses 16 grey scales, so to manage this it implements two tile maps on top of each other. The "proper" way I guess would be to composite the image then convert it to something using less sprites and c rom. But, I like to get shit done, so instead I've left this using two layers. Just makes things simpler. ( yes I'm fully aware I've not set the background color yet ;) )


axe.PNG


Anyway, now I've got a stack of assets it's time to start getting to the nitty gritty. First port of call is the Attract Loop. Why? Because this is the first thing which is run by the code, so makes sense to start from there and branch out to each of the elements as I go.

And here we are so far... not much I know, but it's a good starting base.

 
Dude, you are incredible!

I think NeoGeo might finally get some good games!!!! (I kid, I kid, don't sic the neogeo.com dudes on me!)

By the way, Shinobi is awesome! Is there anyway to add a title screen to the NeoSD Pro game selection screen? right now it just shows an EPROM picture.

Thank you again, this is so cool. Even though I have the real PCBs, it's so neat being able to replay these on NG!
 
A total noob question: what makes these ports possible? (I assume you're not reimplementing the game 1:1?)
Is it because System16 and Mvs both use the combination of MC68000 + Z80?
 
Hard work and determination!

The process starts by disassmbling the original program ROM back into source code, which I can then edit and rebuild for the Neo Geo. As part of that process I also identify where all the graphics are held, data formats etc. and run them through my Sega System16 to Neo Geo graphics conversion tools I built. When rebuilding the game for the Neo Geo, any graphic or sound specific functions need to be re-written mostly from scratch to deal with new data and graphic formats for the Neo Geo.

The part which really helps speed this process along is game logic, i.e. stuff which isn't system specific. Player, enemy, boss logic etc. just gets copied into the new code base and just works. I don't even need to understand how any of it works, until it crashes :D

For sound I didn't have much of a choice than to record everything and shove it on the ADPCM ROM. I did have to write my own basic Z80 sound driver to push everything along though.

There is no emulation here, everything is running natively on the Neo Geo. For example, if you wanted to change some graphics or modify how the game works, it is possible to do, I just choose not to for authenticity ( and I can't pixel for shit! ).

I'm might be making this sound easy, but it's not. I'm a very experienced 68000 programmer and reverse engineer :)
 
I'm might be making this sound easy, but it's not. I'm a very experienced 68000 programmer and reverse engineer :)

This makes me wonder what you do career-wise... or perhaps what you used to do for work in a previous life. I am sure there's a story here? Or is this all simply a hobby for you? Either way, truly amazed and everything you're doing with these ports, and super appreciative that we all get to experience these games in a new and exciting format!

Thanks for sharing your progress with us!
 
I was very impressed by the Metal Gear Amiga port you released a few years back. Now seeing you work on both Shinobi and Golden Axe for the Neo Geo is ridiculous stuff.

Glad to see you here. Big fan of your ProTracker releases. :)
 
Quick update...

Implemented a function which latches the Neo Geo tilemaps onto each of the layers scroll values. Made for moving all this stuff on the title screen increadibly simple.


Edit: something you may not notice is the color fade on the Sky on the original is a little glitchy and I didn't like it, so generated a fresh set of pre-faded palettes to run through.
 
Hi @h0ffman, can't wait to test it!!
Just a suggestion : is it possible to port the Japanese version of the game please? Other versions were censored, and some people don't really like the FBI message.

Many thanks, ready to help!
 
Don't worry peeps. I already discovered that the ROM set is essentially the same between regions. The region code is located at $D33A in the original ROM. You can easily switch it in Mame using the debugger, but I'll add it as a soft dip / config option in the release.
 
Back
Top