News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: M_Tee's NES Thread  (Read 4103 times)

M-Tee

  • Hero Member
  • *****
  • Posts: 596
  • One pixel at a time…
    • View Profile
    • M-Tee Retro Graphics
M_Tee's NES Thread
« on: November 20, 2012, 10:09:36 pm »
EDIT: I hate starting new threads anytime I have unrelated questions, so gave this one a generic title.

Previously solved issue:
Spoiler:
Working on an NES hack, and I'm sure this won't be the first time I'll need help. So, I'll keep this thread going for my questions. Correct me if I'm posting in the wrong place.

So this is the screen I want to change. I've imported a HEX table graphic I made so I can see the order of the tiles and what palettes are used for each 4-tile group. (micro?)



And I'm having a difficult time finding the data I need to change. The background tile layout for this screen is stored in the format as follows:

AB
CD

I've found this data, and the center rectangle (00-09 x 00-74 ), I can change with no problem.

The problem is that if a micro is used more than once such as:
0072
0000
The data is only defined once, but is then repeated in multiple locations.

How do I find the data that determines the placement of these micros?

If it helps any, I'm using FCEUX and occasionally a separate Hex editor.
« Last Edit: December 02, 2012, 11:29:22 pm by M_tee »

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7067
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: NES Hacking Help
« Reply #1 on: November 21, 2012, 01:34:14 am »
Sounds like something I they call TSA (tile squaroid assembly).
I'd guess your group of tiles 00 72 00 00 is probably part of a big table. Each of those entries defines which four 8x8 tiles will make up a single 16x16 tile.

There's probably another table defining the screen in terms of 16x16 tiles.

I'm guessing 00 72 00 00 is the " C" data. Let's say that 00 72 00 00 was the 10th entry in that list (its actual position in the table is the first thing you need to figure out. Find where that string is, find where the start of the table is.), "HA  " was the 11th, and the blank tile (00 00 00 00) was the first (0th). Then you'd need to find a table like 10 11 00 00 00 00 ...
"My watch says 30 chickens" Google, 2018

M-Tee

  • Hero Member
  • *****
  • Posts: 596
  • One pixel at a time…
    • View Profile
    • M-Tee Retro Graphics
Re: NES Hacking Help
« Reply #2 on: November 21, 2012, 03:32:58 am »
Thanks, Mike. I actually think I was unclear before. In the ABCD example I posted, each letter represents a tile.

However, now that you've shown me what I'm looking for, reading about TSA has helped.

So I believe that I have found the data that constructs each 4x4 micro.

However, I'm looking for the data that determines where each one is placed on the screen. How would I go about trying to find it? Would I try a relative Hex search? or would the information be visible in the Name Table Viewer of FCEUX help? Is this information part of the micro's attributes, or something else?

There's some screens with 16px x 16px text, I suspect it will be organized the same way.

The game's Captain America and the Avengers on NES, by the way.

henke37

  • Hero Member
  • *****
  • Posts: 643
    • View Profile
Re: NES Hacking Help
« Reply #3 on: November 22, 2012, 10:49:21 am »
The game is using meta tiles, tiles composed out of other tiles. There are two ways those can be implemented. Either you have a tilemap that uses metatiles instead of normal tiles or you have a html table style setup where there is a normal tilemap, but a few entries place data in multiple cells at once.

M-Tee

  • Hero Member
  • *****
  • Posts: 596
  • One pixel at a time…
    • View Profile
    • M-Tee Retro Graphics
Re: NES Hacking Help
« Reply #4 on: November 25, 2012, 06:06:18 pm »
Thanks, Henke.

This is the data I've found for it, offset 74C0-7520, color-coded to show the metatiles that coincide with it:



How could I go about finding the data that organizes these tiles and assigns palettes to them?

EDIT: Found the data using FCEUX'x Code Logger. Thanks everybody.





November 28, 2012, 01:21:21 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Original:


My First go, couple weeks back when I was going to just update the characters to their "Ultimate" designs.


Since then, I've decided to rework all characters and story to give it an Avengers movie feel. With the help given in this thread, I present Nick Fury:


Thoughts?
« Last Edit: November 28, 2012, 01:21:22 pm by M_tee »

Pikachumanson

  • Hero Member
  • *****
  • Posts: 607
    • View Profile
Re: NES Hacking Help
« Reply #5 on: November 28, 2012, 06:15:10 pm »
Nice work!

M-Tee

  • Hero Member
  • *****
  • Posts: 596
  • One pixel at a time…
    • View Profile
    • M-Tee Retro Graphics
Re: M_Tee's NES Thread
« Reply #6 on: December 02, 2012, 11:00:10 pm »
Got a secondary hack idea. I need to find the right game to work on it from.

I'm looking for an obscure platformer, (famicom-only would be great) with a fairly large main-character sprite. Stuff along the lines of Samurai Pizza Cats, Yo Noid, or Panic Restaurant, but less complex.

Suggestions?

danke

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 2067
    • View Profile
Re: M_Tee's NES Thread
« Reply #7 on: December 03, 2012, 08:14:23 pm »
Kyoryu Sentai Zyuranger.

Pennywise

  • Hero Member
  • *****
  • Posts: 2355
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: M_Tee's NES Thread
« Reply #8 on: December 03, 2012, 08:47:25 pm »
Isn't Zyuranger a terrible game?

M-Tee

  • Hero Member
  • *****
  • Posts: 596
  • One pixel at a time…
    • View Profile
    • M-Tee Retro Graphics
Re: M_Tee's NES Thread
« Reply #9 on: December 03, 2012, 10:07:35 pm »
Thanks for the suggest. Keep em coming.

In the meantime, does anyone know how to save a bmp in photoshop so that tlp or  yy-chr can recognize it?

I've tried 4-bit, 8-bit, and 16-bit. I get an error each time I try to open or import them.

I've been copying and pasting to Paint, but it's a bit of a hassle.

Relatedly, if I'm saving a 16-color mspaint bitmap, are there 4 specific colors I should be using that always be translated as colors 0,1,2,3 by TLP?

danke

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 2067
    • View Profile
Re: M_Tee's NES Thread
« Reply #10 on: December 04, 2012, 03:22:27 pm »
Isn't Zyuranger a terrible game?

It's horrible. But it features giant sprites, and even 'cutscenes' of sorts. The gameplay is very basic and straightforward. It could be used as a great base for a hack. (I'm pretty sure it was coded by children.)