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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - RadioTails

Pages: [1] 2 3 4 5 6 ... 8
ROM Hacking Discussion / Re: Screenshots
« on: October 15, 2019, 07:01:37 pm »
This is the most interesting screenshot ever! I'm also very mature. 8)

Now "Alex Kidd in the Enchanted Castle" has one of the worse fonts ever. Let's use a 16x16 pixels for the English font. It doesn't look ugly what so ever. Plus that's what I expect a noob romhackers to do, not used in an official translation.

This game is also strange how it stores stuff. The font is uncompressed, but is displayed using 1bpp. It uses one byte to change the text, and I have put together the table. There is also a table that tells the game which tiles to use for for each font (currently only found the Intro). I think there is room to add more letters, but I need to check.

The reason for the uneven letters is because you have to tell the game the amount of space to leave. It's a easy fix, but I need to figure out the formula to make the calculations easier.

Personal Projects / Re: Balloon Fight - 4 players hack
« on: October 11, 2019, 10:13:44 am »
That looks pretty sweet. Can't wait to try it out!

ROM Hacking Discussion / Re: Screenshots
« on: October 02, 2019, 05:53:45 pm »

So the Frame instruction in Puyo Puyo has one byte that determines:
- Who is speaking (character 1 or character 2)
- Max letters per line (max can be 15)
- Number of lines to use (max can be 4)

So digging through a trace, I figured out how it does the calculations. This is what the Visual Basic Net code looks like:
                Puyo_Script.Max_Letters = &HF And Puyo_Script.Test_Byte(2)

                Puyo_Script.Last_Line = Puyo_Script.Test_Byte(2) >> 4
                Puyo_Script.Last_Line = &H7 And Puyo_Script.Last_Line

                Puyo_Script.Current_Letter = 0

As I showed early, I know how to modify the font routine to output 8x16 tiles, but I need to dig deeper into how the box is generated.

The text that appears at the end and during the How to Play work in a slight different way. Will need to get that added to the Script Dumper.

ROM Hacking Discussion / Re: Screenshots
« on: September 07, 2019, 10:37:27 am »
The Puyo Puyo (Mega Drive) - Script Dumper is coming along nicely.
The left textbox shows the instructions that are used, while the right textbox just shows the text.
I figured out what one of the bytes was during when the a frame is set up. It's used to tell the game who is talking, and the length of the frame. So with this in mind, the script shows who is talking, but starts the text on the next line when it reaches the end of the frame.

ROM Hacking Discussion / Re: SNES Japan letters question
« on: August 28, 2019, 04:50:58 am »
Well keep in mind that Japan use more than one alphabet:
- Hiragana
- Katakana
- Kanji
- Latin
- Arabic Numerals

The SNES has 64KB of VRAM (where the tiles are stored). It all depends on how much space the programmer dedicates to store the font. The size of the font would also come into play.

Super Puyo Puyo for example uses a different font set for each stage, with each letter taking up 4 (16x16) tiles. So each font set only displays the required characters.

Rockman and Forte goes for the 1 (8x8) tile approach, so it can store all the Hiragana, Katakana, Numbers, and ? ! 。 etc. To save some space, characters like ブ have the " above the tile as seen here:
I would have to check the VRAM, but I suspect it only uses the required Latin and Kanji characters. So "D" and "r." would be used for "Dr.ワイリー (Dr. Wily)". 出 (Exit) might be one of the Kanjis that is used.

Super Puyo Puyo 2 doesn't store the font set in the VRAM. Instead it transfers the required character that is needed. This way, you aren't hogging up the VRAM, and store more characters.

Hope that helps.

Thanks for the help 730 and niege.  8)

Can anyone help me find the missing Kanji that is used in Puyo Puyo 1 "How To Play" section?

You can see the text in action at 0:38:

Here's a dump of the font:

The table for the Kanji sections:
044C = 右 (Right)

0450 = 応
0454 = 下
0458 = 回 (Game)
045C = 覚
0460 = 降
0464 = 高
0468 = 左 (Left)
046C =

0470 = 手
0474 =
0478 = 上
047C = ⾊ (Color)
0480 =
0484 =
0488 = 相
048C = 側

0490 = 速
0494 = 対
0498 = 点 (Point)
049C =
04A0 = 得
04A4 = 入
04A8 = 四 (Four - The graphic in game is missing the far right vertical stoke?)
04AC = 明

04B0 = 用
04B4 = 落
04B8 = 連

I think you have set the wrong values if the colors are not correct. Try only editing the values I mentioned.

Also, I think the graphics are uncompressed (EDIT: Only some are uncompressed):

Now these two line of codes are interesting:

00:5C16  21 FC  MOVE.L  #$40000000,($FC56)     
00:5C1E  21 FC  MOVE.L  #$941693C0,($FC5A)

The #$40000000 basically tells the Control Port to Write to VRAM at address 0000. Change it to #$40080000 to write the title graphics to VRAM at 0200. :)

The the second line is something to with the where the tiles are stored. Just trying to figure out the format.

The Plane Table data at 38B94 just contains each tile data to place on the Plane (2 hex bytes).

The code has been setup so the tiles automatically display on the next row based on the length that is set, and stops based on the height that was set.

It is currently set to 33 x 16 tiles.
So (33 x 16) * 2 = 1056 (Hex: 420)

So add 420 to 38B94 = 38FB4

So the Plane Table Data is between. 38B94 to 38FB4


When displaying the tile from the VRAM to Plane, it uses a specfic format. Let's take a look at 215F.

Convert this to binary: 215F = 0010000101011111

Each bit represents a task:

0 01 0 0 00101011111

P  = Priority
PL = Palette Set
V  = Vertical Flip
H  = Horizontal Filp
T  = Tile ID

So in this case, it uses palette set 1 and uses tile ID 15F from the VRAM.

So you can basically set the properties for each  tile. So to set the following:

P  = High
PL = 2
V  = No
H  = Yes
T  = 243

This is how it is set in binary:
1 10 0 1 01001000011

Convert to hex: 1100101001000011 = CA43


Hope that helps.

Let's break this down in what you should be investigating.

Now the Mega Drive uses the Control Port to write or read to the CRAM (Colors), VRAM (Video), or VSRAM (Scrolling Video). More details here:

The layout is a bit crazy, but if you can figure out what address the palettes or graphics are being transferred, you could search for address value in a trace.

For example, to write to CRAM address $0: #$C0000000

While the palettes are most likely not compressed, the graphics probably are. There are loads of graphic hacks of SOR2, so I suspect its using a common compression like Nemesis ( Nemesis does have a tool that can detect and separate them, so you could give that a shot.

Now the next thing to figure out is are the tiles being stored in the Plane or as Sprites?

If it's on a Plane, then you have to use Plane Tables to transfer 8x8 tiles to the required location. More details on here:

If it's using Sprites, then you have to use Sprite Attribute Tables to determine the size, tiles to use, flip, pattern etc. More details here:

If you can figure the where the address are, you could search the data in the rom, or find it in a trace.

When I get some time, I'll have a look myself. Hope this helps.

August 10, 2019, 07:12:14 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Using the USA version, the title is stored in the Plane B area. The rom stores them as mapping values.

English Title (US version) = 38B94 to 38FD4 (440 Hex Bytes)

I also found this in the trace:

00:5C2C  4D F9  LEA     ($00038B94),A6
00:5C32  2A 3C  MOVE.L  #$61060003,D5
00:5C38  7E 21  MOVEQ   #$21,D7   
00:5C3A  7C 10  MOVEQ   #$10,D6
00:5C3C  4E B9  JSR     ($000017D0)

5C2C = Offset to Plane Table Title, so you can store the data at end of the ROM and expand.
5C39 = Length of Title (hex)
5C3B = Height of Title (hex)
5C34 = Y Position of Title (hex)
5C35 = X Position of Title (hex)

Now we just need to figure out where the palettes and graphics are. The graphics are not Nemesis compressed, so I need to do some digging. It feels great when you make progress.

ROM Hacking Discussion / Re: Screenshots
« on: July 21, 2019, 07:28:35 pm »
Since I need to get a Puyo Puyo 1 script extracted, I thought I better make a tool. It currently displays "Stage 1" text:

Because this game likes to be awkward, a different font table is used for each scenarios. So not only do I have to find the text locations (easy enough to do), I have to find each font table and identify the required characters. So that's going to be fun. :-\

ROM Hacking Discussion / Re: Screenshots
« on: July 13, 2019, 10:48:45 am »

I'll go into more detail when I create a Puyo Puyo (Mega Drive) translation topic, but I recently figured out the compression, so we can edit the graphics.

I've also successfully modified the text routine to display the 8x16 font (it's from Kirby's Avalanche). The only thing to fix is the automatic start text on next line. Time to do some more tracing.

Programming / Re: 68000 Mega Drive Assembly - Move Instruction
« on: July 02, 2019, 04:33:33 pm »
Thank you so much jonk! That is correct, and it makes so much sense now.

MOVE.b D4, (A2,D1.w)


D4 = 12

  A2 = FF0100
D1.w = 0000

RAM FF0100 = 12

Now to figure out this Puyo compression. I'm slowly cracking it. :)

Programming / 68000 Mega Drive Assembly - Move Instruction
« on: June 30, 2019, 09:28:43 pm »
So I'm a bit unsure about how this works:

MOVE.b (A4)+, D4

MOVE.b D4, (A2,D1.w)

The first one takes the byte from Address A4. So if 007000D0 in the rom contains hex DE and stores this in Data D4.

So the second instruction moves the value in D4 (in this case DE), but I don't understand what it means in the brackets. So it's referring to A2 Address and D1 word, but it doesn't make sense looking at the live disassembler.

Hopefully someone can clear that up.

Newcomer's Board / Re: Super Mario Bros. 2 (NES) arabic
« on: June 28, 2019, 07:06:36 pm »
The problem is the amount of 8 x 8 tiles you can use. The game has A - Z, ! ? . , etc. I will have to check, but I think you have 40 tiles to use.

There are some NES Arabic translations out there, so you could use those fonts. Hopefully the Aracic alphabet will fit in the space.

The way the text works, you just mention the Y, X, Number of tiles, tile id. Since the text doesn't scoll, displaying right to left won't be an issue (you just tell the game which tiles to display). Plus moving the positio n of the text us easy.

There are codes to skip levels, plus use invisibility to beat the game. Plus make save states.

When I get to my computer, I will check my notes on the Pony Poki Panic romhack. They should help out.

Personal Projects / Re: Super Bomberman 5 - English Translation
« on: June 04, 2019, 08:00:53 am »
Well, that would certainly be more unique... but the original is more like a signature stamp that is common in Japan but not elsewhere. Still, I'm open to more suggestions on what to do.

Fancy an update? Go on then, here's a screenshot: I've just finished putting in the titles for the Normal Mode menus.

The CONTINUE WHICH FILE? text doesn't flow very well in English. Most games would use something like: SELECT A FILE

What you have done so far is looking really good. I hear Super Bomberman 5 is really good.

Personal Projects / Re: SMB2 - Super Beatles - Pepperland
« on: February 15, 2019, 03:47:27 am »
I made a post on how to edit the edit the SMB2 USA title screen:

I should really submit that information to the website.

I hear some fellow called dtothefourth
released a SMB2 Editor and is apparently working on a music editor. I'll have to investigate that further.
Edit: OMG! this is so amazing, you guys! The editor is so dope! Also the music editor for SMB2 is confirmed!

Check it out here:

I'll have to check that tool out.

ROM Hacking Discussion / Re: Screenshots
« on: June 13, 2018, 03:01:09 am »
No, it's not correct, and that isn't what that site is saying. Affect is a verb, and effect is a noun. It is definitely "affected units". Effected units means, "the units that were brought about (as an effect)". Affected units means, "the units which were/are affected".

This site that covers these particular conjugations may help clarify.

Clearly I have been too exited about Daisy being playable in Smash. That's my excuse.  :P

But yes, it should be "Affected Units" since these are the units that will have an impact from the "CO Effect".  8)

Time to update the utility!

ROM Hacking Discussion / Re: Screenshots
« on: June 12, 2018, 07:09:14 pm »
Slight nitpick: 'Effected Unit' ought to be 'Affected Unit'.

Well according to this website, use affect if using a verb, use effect if using a noun. Since we are talking about units, which is a noun, "Effected Units" is correct.

Plus the game even uses "CO Effect" to describe the CO's ablities, which is correct. It's odd that it uses "CO Effect" when seeing what units are effected / boosted, when a better description could have been used. The French text uses Efficacité (Efficiency),

The original version was posted, but your new one hasn't been.

You are right, I did post the old one. It can be found here:

I can make post on on the tool. I'll try and do that this week.

ROM Hacking Discussion / Re: Screenshots
« on: June 09, 2018, 08:35:10 pm »

Finally got those negative values to work for those who want to give negative results in a CO Zone.  :P

Pages: [1] 2 3 4 5 6 ... 8