News: 11 March 2016 - Forum Rules

Author Topic: Arkista's Ring (NES) Level Editing -- Active Notes  (Read 3356 times)

th60ftatomicman

  • Jr. Member
  • **
  • Posts: 20
    • View Profile
Arkista's Ring (NES) Level Editing -- Active Notes
« on: July 27, 2021, 11:01:31 am »
Hello again, let's talk about Arkista's Ring.
How a tile is defined:
  • Each tile in the map is composed of a group of 4 sprites.
  • Color is stored independently in PRG.
  • We seem to load 4 tiles at a time from PRG to CPU starting from highest address in the group of 4 and iterates backwards.
  • example: we load 0743,0742,0741,0740
  • We always load tile data into CPU Memory 0740 before loading into PPU for each level.
  • 2000 -- where in the PPU we write objects to
  • 9240 or 919E -- Set breakpoint here to begin loading colors into CPU memory
  • to modify objects in ROM see 006800

See what each tile makes below. at bottom of post. Haven't decoded them all but pattern seems to repeat.

How tile color is defined:
  • We define a vertical/horizontal 2x2 square for our colors
  • The first digit in a hex controls vertical (modify 1 or 2)
  • We seem to load 5 tiles at a time from PRG to CPU starting from highest address in the group of 4 and iterates backwards.
  • We also seem to load 2nd digits for all 5 first, than first digit.
  • 23c0 -- where in the PPU we write color to
  • 0640 -- where in the CPU we write color to before loading into PPU
  • 9200 -- Set breakpoint here to begin loading colors into CPU memory (it should be a statement like ORA $B#)
  • CANNOT FIND IN ROM

See the color mapping I was able to black box determine below


Map of objects
00 == metal roof full (same as 20)
01 == metal roof on top half (same as 21)
02 == prison window (same as 22)
03 == door (same as 23)
04 == windowsill
05 == Awning?
06 == chimney
07 == wall
08 == hold on bottom half
09 == side of tall mountain
10 == cross
11 == square structure
12 == another half wall with shadow
13 == some random ground (road!) -- do not know how to get it brown
14 == grass again
15 == half wall
16 == stairs
17 == thick wall (2 tiles !)
18 == tree
19 == mountain
 --> repeat until 40
40

Map of Colors
0 = 2
1 = rightmost
2 = both, (left does not equal right)
3 = both, (left does not equal right)
4 = leftmost
5 = leftmost
6 = leftmost
7 = leftmost
8 = both, (left does not equal right)
9 = rightmost
A = both, same
B = both, (left does not equal right)
C = both, (left does not equal right)
D = rightmost
E = both, (left does not equal right)
F = both, same


What I want to figure out
  • I have the subroutine where we begin to define our colors, I just don't get it since im not great in particular at reading
    the 6052 instructions. How does it assign the colors since it's not a direct translation like the tile
  • How are enemies defined and stored in memory
  • How do we define our start position

Googie

  • Hero Member
  • *****
  • Posts: 1080
  • Keepin' ROM Hacking gangsta since 2003, baby!
    • View Profile
    • My work in progress ROM Hacking site
Re: Arkista's Ring (NES) Level Editing -- Active Notes
« Reply #1 on: July 29, 2021, 07:09:26 pm »
I hacked Arkista's Ring a long time ago, you can check out the video here. Hopefully with your notes a level editor can be made in the future. If I remember right you gotta beat the game three times in a row to see the ending. I'm sure there's a way to bypass that.

Thanks for sharing your notes with us.  ;) :cookie: 

th60ftatomicman

  • Jr. Member
  • **
  • Posts: 20
    • View Profile
Re: Arkista's Ring (NES) Level Editing -- Active Notes
« Reply #2 on: July 30, 2021, 09:10:29 am »
That hack looks awesome! Gives me some incentive to move forward. At some point in time I am going to have to learn to debug 6502 instruction code if I keep doing this. It's game 3 for me lol, and I got lucky on the last 2 that they had notes or it was a game that was incredibly easy to just switch and replace full memory codes.

Googie

  • Hero Member
  • *****
  • Posts: 1080
  • Keepin' ROM Hacking gangsta since 2003, baby!
    • View Profile
    • My work in progress ROM Hacking site
Re: Arkista's Ring (NES) Level Editing -- Active Notes
« Reply #3 on: August 08, 2021, 06:25:10 pm »
I wish you the best of luck, hopefully some of the fellas on here can give you a hand in case you get stuck, I'd love to see an all out editor for this game.  ;) :cookie:

Trax

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 603
    • View Profile
    • Trax ROM Hacking
Re: Arkista's Ring (NES) Level Editing -- Active Notes
« Reply #4 on: August 19, 2021, 06:42:45 pm »
Oh, I like this game. It's quite simple, yet kind of relaxing to play. I found very limited stuff on that game a long time ago, but never came back to it. I still have the docs. The only thing I knew is that the levels were made of groups of 4 tiles. It's one way to save some space for any group that repeats itself. I don't think I had found anything related to enemies.

What you describe, th60ftatomicman, seems to be related to bit fields. A value of 00 having the same effect than 20, and then 40, is a telltale sign that some of the bits of the byte you're modifying are used for something else. Maybe the palette code is in there.

The ROM is relatively simple, 2 PRG banks and 4 CHR banks. It should be easy to find the information needed to reliably modify the maps.

th60ftatomicman

  • Jr. Member
  • **
  • Posts: 20
    • View Profile
Re: Arkista's Ring (NES) Level Editing -- Active Notes
« Reply #5 on: August 30, 2021, 09:50:03 am »
Sorry I disappeared! Thought it'd be easy (it still should be) but not easy enough that other projects have taken over.
I'll eventually get back to this however life has jumped in the way with other projects!

yuvsaha123

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Arkista's Ring (NES) Level Editing -- Active Notes
« Reply #6 on: September 01, 2021, 10:37:39 am »
Sorry I disappeared! Thought it'd be easy (it still should be) but not easy enough that other projects have taken over.
I'll eventually get back to this however life has jumped in the way with other projects!

thanks for the awesome information.