What's new

Golden Axe Port - Dev log

The only excellent arcade port I know on the Amiga is Pang. Almost arcade perfect.

In last years the Amiga platform gets many good new developed Arcade ports. The developer JOTD was very active. Ports for Pooyan, Galaga, Phoenix, Tetris, Xevious etc. are available. An overview is here on itch.io
 
OK small update.. I did the between level map drawing thing today and fixed the scroll routine for stage two. No pics or videos but will be soon.

If you're wondering what the game logic looks like.. here it is. I've no idea what this does.

20250120_223625.jpg
That looks nice! Am I right assuming that this game code went through IDA? Very impressive work!
 
Don't know how doable it is, but if you ever do start taking requests on what would be some good games to port to a Neo, I can think of a few that need rescuing..

ns01.png
 
OH MY GOD This was hard to achieve, but I've finally got mid-level palette changes in. It's only taken three days to get there!

Trying not to get into too much detail but the graphics conversion tools needed a complete overhaul to support this. When converting four 8x8 tiles into one Neo Geo 16 color 16x16 tiles, the obvious thing to do is to de-dupe the colors. The problem as you can see in this video is the parallax background is initially fairly flat. When the palette change comes in, all the detailed dithering is then shown. Meaning if you de-duped solely on the palettes initial state, all of those pixels would be merged.

To get around this, each color is now treated as a "stack", a kind of transient state. By using a combination of all the colors a pixel uses over the life cycle of a level, the pixels can then be de-duped without losing anything detail between fades.

That then balloned the number of palettes being generated. Yesterday and today have movely been coming up with some kind of algo to clean up the palettes into a much more sensible number.

Anyway.. hurdle overcome... onwards!

 
Quick update.. The TODO list...

NOTES!!!!!!!!!!!!!!!!!!!!!!!!

Steaming pile of broken..

sound silent after last boss death
Add remaining code chunks even though they don't look like they are used
hi-score section is broken
NEOCD fun
DIPS!
map quill thing is broken
LOTS OF TESTING

EDIT: the game is now playable from end to end.
 
Thought I'd add as little info on how the music works.

For Shinobi I wrote a very rudimentary music driver for ADPCM-B. It was dead simple.

Stage 1 - Play intro ADPCM-B sample
Stage 2 - Z80 polls the finished flag, when intro has finished, trigger a looping ADPCM-B sample

It did the job and everything squeezed into an 8mb V rom at 44khz without any trouble.

The problem here is the music in Golden Axe is generally longer per track and has more tracks. First run made the rom bigger than 16mb. I want to try and keep this sensible in size so bootleggers can still make money ;) so some serious changes were needed.

Most music has sections that will repeat, so it makes sense to cut up the track into chunks and then play those chunks in a specific order. As I'm a big fan of tooling I decided to use my DAW of choice, Ableton, to do all the required editing. The project files are then pulled apart to create the required data.

Each clip is cut from the wav file, resampled to 22khz, converted to ADPCM and shoved into the V rom.
The play order of clips is also determined during this process and it spits out the play order into a source file for the Z80 music driver.

so it goes from this...

1738067940536.png



To this...


1738067974305.png
 
@h0ffman Is ableton able to do automatic cutting of looped parts and as such trimming down a tune? Are there plugins or tools to perfectly match them up? Or, are you a skilled wizard and able to do it by hand?

I ran into the same issues for my NBA Jam TE port where i used PyMusicLooper to get some big loops for the PSX CDDA music tracks (as an option besides the original FM sampled sounds), but it wasn't the most elegant way to find all loops and parts that could be repeated. (And as such the CD sountrack isn't an option ready for release.. yet.)

Excellent work by the way, you deserve more praise!
 
@h0ffman Is ableton able to do automatic cutting of looped parts and as such trimming down a tune? Are there plugins or tools to perfectly match them up? Or, are you a skilled wizard and able to do it by hand?

I ran into the same issues for my NBA Jam TE port where i used PyMusicLooper to get some big loops for the PSX CDDA music tracks (as an option besides the original FM sampled sounds), but it wasn't the most elegant way to find all loops and parts that could be repeated. (And as such the CD sountrack isn't an option ready for release.. yet.)

Excellent work by the way, you deserve more praise!
It's not automatic, editing and cutting is still a manual process. The benefit is I can get a track sliced up in a matter of minutes in Ableton.
 
@h0ffman Is ableton able to do automatic cutting of looped parts and as such trimming down a tune? Are there plugins or tools to perfectly match them up? Or, are you a skilled wizard and able to do it by hand?

I ran into the same issues for my NBA Jam TE port where i used PyMusicLooper to get some big loops for the PSX CDDA music tracks (as an option besides the original FM sampled sounds), but it wasn't the most elegant way to find all loops and parts that could be repeated. (And as such the CD sountrack isn't an option ready for release.. yet.)

Excellent work by the way, you deserve more praise!
I'm impressed you went to so much trouble. I would have assumed you just used NGFX SoundBuilder. If you ever got someone willing to put in the effort of arranging the soundtrack for Neo Geo in Deflemask I'd be over the moon.
 
Back
Top