Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Need Some Help With Golden Axe ROM Tiles

Reply to topic
Author Message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Need Some Help With Golden Axe ROM Tiles
Post Posted: Tue Aug 04, 2020 9:28 am
Hi everyone, I'm a bit new here, I did join a little while back, and have been lurking at a bunch of projects, but this is my first time posting.

I'm working on a number of side projects. One of them being a SMS Golden Axe hack. Nothing too fancy, just want to update the graphics with Tyris Flare. So a Tyris Flare version so to speak. I'm still pretty green to the whole ROM hacking scene, so forgive me if I sound ignorant.

Thanks to the information given on this site (there's a lot of information), and from another user's (hang-on) post on creating a trainer for the same game, it has been pretty much smooth sailing. I have a background in game programming and programming in general, but hacking has always been entirely different beast altogether.

Ok, with that out of the way, I have created a general tool in .net to make replacing the graphics generally painless for me. Most graphics in SMS Golden Axe are uncompressed. Just some images like the title/end screens are compressed. I got those and the stage data all completed (as I may want to change those too), I'm now working on getting the Ax Battler sprite data, but I am confused on the data I'm getting.

It seems like it's uncompressed 4bpp data when I look at it in tilemolester. Except there looks like there are some lines going through things where it shouldn't. I figured out the palette the game is using on the sprite, and it leaves me unable to explain it. I can shift pixels and read them in differently, but the lines remain. Has anyone else have this issue? What did you do to resolve it? Thanks in advance.
issue_01.png (19.35 KB)
issue_01.png

  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14687
  • Location: London
Reply with quote
Post Posted: Tue Aug 04, 2020 11:48 am
My guess is that the data is not raw, and maybe contains some extra info for the loader to use. I’d disassemble the code that reads it in to understand the data format. The “shadowing” almost looks like it’s misaligned by byte or two.

Could it be using one of the bit planes for another purpose, so you should mask it out?
  View user's profile Send private message Visit poster's website
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Tue Aug 04, 2020 12:24 pm
Thank you for the suggestions! Makes sense, I'll look into the loader method. I only have a rudimentary understanding of Z80 asm, so this is probably going to be brutal. I'm curious on how it's using the data.
  View user's profile Send private message
  • Joined: 29 Mar 2012
  • Posts: 879
  • Location: Spain
Reply with quote
Post Posted: Wed Aug 05, 2020 8:22 am
As the character data is "merged" with background data in the game (not using real sprites), it could be some kind of mask data or so....
  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Wed Aug 05, 2020 11:45 am
kusfo wrote
As the character data is "merged" with background data in the game (not using real sprites), it could be some kind of mask data or so....


Could very well be. I did notice that the tiles merge together through emulators, which I though was pretty nifty. I double checked my locations for the pixel data. By analyzing the resource data a bit more, I found that I wasn't starting the data read at the precise byte. What I found is that the tile set data is preceded by the tile map data. For each tile map, it is preceded by 6 bytes of info, which the last two bytes are the height and width of the tile map (Not sure what the other 4 bytes are yet). Through that I was able to get the exact byte each tile set started. Which made the sprite look correct, but the palette indexes are still off, bwahahaha fml

Oh well, I'll go further down the rabbit hole later, right now I have all the data I want, so I'm just going to start making my replacement graphics.
issue_02.png (27.03 KB)
Almost?
issue_02.png

  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Wed Aug 19, 2020 3:46 am
Ok, for future reference all tilesets for moving stage objects in Golden Axe have their color indexes stored offset to the upper 8 colors of the background palette within the ROM. If you try to store the tileset using the lower 8 colors (As shown within an emulator), the transparency does not work when you overlap tiles.

This means that moving objects can only use the first 8 colors of the background color palette. Effectively 7 colors, because the first is the transparent color. On top of that, the stage tiles can only use 8 colors plus the transparency color. I'm guessing this is a limitation of the tile overlap. I wonder why they just didn't use sprites for Ax Battler, and background tiles for everything else? Might have gotten at least another color or two in there.

I mask the values when I read the ROM data in, with a flag that it is masked. Then offset the color indexes when I write the ROM out. I've come up with some work arounds, and I've decided to redo pretty much everything graphically.
screen_14.png (19.47 KB)
screen_14.png
screen_13.png (36.06 KB)
screen_13.png

  View user's profile Send private message
  • Joined: 02 Mar 2011
  • Posts: 165
  • Location: Valencia,Spain.
Reply with quote
Post Posted: Wed Aug 19, 2020 9:36 am
It looks awesome, I had that game when I was a kid and I still have It.

It is one of my favourite sms games but I always asked myself why It only had one character and one player.

Sometimes we talk about this topic in a Spanish forum.

It could be possible to hack the game for having two players coop mode?.

Thank you for your time and effort making this hack possible.

Greetings from Spain.
  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Wed Aug 19, 2020 10:09 am
You still have the game? That's awesome! I live in the states, and tbh, I never knew they made a master system version. It just happened to show up on my youtube feed as a long play. I thought it was cool, but everything is blue and white.

The ROM is 512K, which from the information I've read, is the biggest ROM size they made. The ROM is pretty stuffed too. There are some areas that MIGHT fit another player in, if you want say, Tyris and Ax Battler as playable characters. If not, then the palette could support two Ax Battlers (Red and Blue). The only concern I would have is the input lag (And general screen lag), but I'm no expert on coding in ASM. I believe it's possible. Although, don't take my word for it.
screen_15.png (20.59 KB)
The palette could support two different players
screen_15.png

  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14687
  • Location: London
Reply with quote
Post Posted: Wed Aug 19, 2020 10:50 am
A few 1MB games came out later, but I suspect that would have been very expensive in the 80s. The limitation on players would be the screen update time, but that's pretty much the same as for an extra enemy. I guess for a two player game the enemy count ought to increase too, applying further pressure.
  View user's profile Send private message Visit poster's website
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Wed Aug 19, 2020 11:20 am
Aye, I thought that as well, about the increased difficulty for two players. Also, I don't know if it's just my crap laptop, or if it was an issue in the original game, but sometimes I can hammer the attack button and nothing happens. Plus the double tap run seems flawed. Might already be too much going on? Plus 1MB? Holy crap. Thanks for the tid bits.
  View user's profile Send private message
  • Joined: 02 Mar 2011
  • Posts: 165
  • Location: Valencia,Spain.
Reply with quote
Post Posted: Wed Aug 19, 2020 5:04 pm
Xfixium, is the same problem wherever you play It. I have played It in both Master System and Megadrive hardware.

If you are alone on the screen, then your character reacts perfectly in time, with no lag, but if there are some stuff, like enemies, dragons, bosses, your character reacts slowly, and sometimes you press the button and nothing happens.

It is a game that takes some time to get used to, but It is very easy to beat It when you refuse to atack with your sword when there are more than two enemies at the same time.

I always remember that my father bought us this game on Saturday, and I beat It on Sunday morning, and we only could have two games per year, because they were very expensive as you know.

But the best part is that with Golden Axe there is neither difficulty level nor another player to select, then when you beat the game there is nothing to do but your own imagination.
  View user's profile Send private message
  • Joined: 14 Oct 2008
  • Posts: 508
Reply with quote
Post Posted: Wed Aug 19, 2020 7:24 pm
Odd that Master System had 512KB games by 1987 (though for comparison, somehow Famicom didn't get any until 1990, I think), yet for 8-bit games they didn't want to make the next step to 1MB until the mid '90s. I guess that by the time 1MB was fairly common (the 16-bit era), they felt 8-bit was too old to warrant the higher cost.
So only a few very late GG and (Brazil-exclusive) SMS games were that large.
(even Game Boy as well did not use 1MB until the VERY end of the mono era)
  View user's profile Send private message
  • Joined: 28 Feb 2016
  • Posts: 502
  • Location: Barcelona
Reply with quote
Post Posted: Wed Aug 19, 2020 10:22 pm
Hello, would possible set Player 1 and 2 to sprites and enemies to tilemap?

It is used in Dragon - The Bruce Lee Story
  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Wed Aug 19, 2020 11:29 pm
Quote
Xfixium, is the same problem wherever you play It. I have played It in both Master System and Megadrive hardware.


Oh wow, that seems frustrating to me. Thanks for the info.

Quote
always remember that my father bought us this game on Saturday, and I beat It on Sunday morning, and we only could have two games per year, because they were very expensive as you know.

But the best part is that with Golden Axe there is neither difficulty level nor another player to select, then when you beat the game there is nothing to do but your own imagination.


Oh man, two games a year, and you beat one in less than a day. lol

Quote
So only a few very late GG and (Brazil-exclusive) SMS games were that large.


I don't know everything about the Master System's history, but I did see a bunch of videos saying how crazy popular it was in Brazil, and the market went on for quite awhile post 8-bit era.

Quote
Hello, would possible set Player 1 and 2 to sprites and enemies to tilemap?

It is used in Dragon - The Bruce Lee Story


EDIT: Never mind my rant about video memory., for some reason I thought all frames of animation for a given tileset were loaded into VRAM (That would be horrible). I think the biggest amount of tiles you'd need is 45. So I guess this would be doable?
  View user's profile Send private message
  • Joined: 02 Mar 2011
  • Posts: 165
  • Location: Valencia,Spain.
Reply with quote
Post Posted: Thu Aug 20, 2020 5:23 pm
Xfixium , Have you thought about making anything like "Golden Axe 2"?

I realised that you changed the background of the first stage a little, and It looks great!, maybe if you change more things and the main character, your hack could be like a brand new game, and maybe releasing a physichal copy.
  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Thu Aug 20, 2020 7:57 pm
Aranya wrote
Xfixium , Have you thought about making anything like "Golden Axe 2"?

I realised that you changed the background of the first stage a little, and It looks great!, maybe if you change more things and the main character, your hack could be like a brand new game, and maybe releasing a physichal copy.


I was doing this as a side project to take a break from a Phantasy Star IV HD remake project I'm doing. So I'm not delving too much time into this. I think that I'll be able to wrap this up in about two-three more weeks. I plan on redoing everything graphically. I also plan on releasing the .net tool source and binaries, as well as the rom map to my github. It'd be awesome to make a physical copy of the game though, just as a keep sake.
screen_16.png (10.66 KB)
Trying to use the Genesis version graphics as reference
screen_16.png

  View user's profile Send private message
  • Joined: 09 Dec 2013
  • Posts: 228
  • Location: detroit
Reply with quote
Post Posted: Thu Aug 20, 2020 11:54 pm
Just wanted to say I had a laugh when I saw your editor and noticed that the beaky-monster that you ride is called "Chicken Leg" :)
  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 367
Reply with quote
Post Posted: Fri Aug 21, 2020 1:57 am
dink wrote
Just wanted to say I had a laugh when I saw your editor and noticed that the beaky-monster that you ride is called "Chicken Leg" :)


Lol I had a weird idea for a tee shirt while I was working on this. A pic of Chicken Leg wearing the karate kid bandana, with the words, "Sweep the leg" written on it. For some reason I found that hilarious XD
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14687
  • Location: London
Reply with quote
Post Posted: Fri Aug 21, 2020 2:43 pm
https://goldenaxe.fandom.com/wiki/Chicken_Leg

Quote
Chicken Leg (チキンレッグ Chikin Reggu), also known as Cockatrice, is a rideable monster from Golden Axe and Golden Axe II that originally appeared as an enemy in the Sega game Altered Beast. This small monster attacks by swinging its tail. It can also dash at opponents.

Chicken Legs also appear as enemies in Golden Axe Warrior.
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!