83626930 visitors

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 - KingMike

Pages: 1 2 3 4 [5] 6 7 8 9 10 ... 108
Tengai Makyou IV (port): product placement, a few religious references, political correctness ("indians" now called "red people").
And now "red people" is considered offensive. So much I hear the Washington Redskins football team had their trademark rights pulled.

Indeed EarthBound's text storage is practically its own game engine (if you've played RPG Maker, that should give an idea).

Front Page News / Re: Homebrew: New Homebrew Added to the Database
« on: June 21, 2014, 03:39:56 pm »
Isn't the answer to the WWTBAM question "Rygar"? :P
(localization mixup)

Maybe a silly idea, but a hack for Oracle of Ages/Seasons that allows to equip two or more rings at once (as long as they are not conflicting, like the Form Rings) would be interesting.
You don't already earn that ability in the game? The game makes it sound like you can.

I'm guessing that's the standard memory card warning message.

... oh I'm sorry "Memory Card (for PS2)(8 MB)" :P

Congratulations! :woot!:

I've procrastinated on my translation. Though there's probably no reason to not still release it anyways. Whenever that is.
(as mine was largely an issue with actually playing through. I did get Stage 0 finished, which is most of what needed translation anyways, from what I've seen of the game.)

What do you mean, Vanya? Like the US prototype that is already dumped and available? :P

Only after Nintendo tried to sue it off the market. (even post-market, I've heard some reports of Nintendo trying to get ebay to declare them a prohibited item)

I was thinking more did the official Nintendo/Sega seals at least it had some guarantee it wouldn't break the system at least.
(like most unlicensed companies besides Tengen used brute-force techniques to zap the lockout chip, which I've heard could damage the console if used extensively)

This piece of hardware was released in 1992, AFTER the SNES. It's of no surprise to me that it would fail. It came too little, too late.

It was also unlicensed, which means it had a harder chance of even reaching major chain stores.
(I suppose the Game Genie made it because it was made by a Galoob, then a MAJOR toy company that obviously had some pull.)

Why didn't Nintendo have like a build in "Aladdin deck" of their own already built into the Nintendo console so that they didn't have to produce extra chips?

Because Nintendo probably learned from the Famicom Disk System. The extra box was an extra expense to the consumer, and it also had widespread piracy.
If indeed the Aladdin carts are just the game chips on a small board, it would either be piracy-bait or would have to have anti-piracy that would take as much effort as standard carts (and considering by the early 90s Nintendo had seen the lockout chip the NES already had was a bigger hindrance than help)

Gaming Discussion / Nintendo announces Mario hack app
« on: June 11, 2014, 12:09:48 am »
Sort of. It looks like it's a new game but with built-in level editing, including SMB or New SMB graphics sets.

Who knows, maybe in 20 years they'll condone translation hacks for old games?

General Discussion / Re: So I was watching the new AVGN...
« on: June 09, 2014, 01:04:26 am »
I think the Japanese version allows you to save (though using an ASCII TurboFile memory card). You have to push A on controller 2 for the menu, though I'm not sure which if any emulators support it, so I'd guess you'd have to use savestates otherwise.
However, the NES version doesn't include saving, or even passwords. I'm guessing they gave you 50 lives as an apology.

Programming / Re: [NES] Captain Tsubasa II DTE Hack
« on: June 03, 2014, 12:48:59 pm »
You can double the number of pairs by using two tables (make one table of the first character in every pair, and another table with the second character in each).

So like to read pair 5:
on a single-table DTE, you'd read character 10 (5 x 2) on pass 1 and character 11 (5x2 + 1) on pass 2.
on a two-table DTE, you'd read character 5 in table 1 on pass 1 and character 5 on table 2 on pass 2.

The limit is increased because DTE routines use X to read into the table, so on NES (which has only 8-bit registers) it is only possible to read up to 255 bytes ahead from the start of the table. Since a single-table DTE takes two bytes per pair, that means you can only have half as many pairs.

Programming / Re: [NES] Captain Tsubasa II DTE Hack
« on: June 03, 2014, 02:18:20 am »
Good catch on the TXA/TAX mixup.

As to whether or not A should be implied in an ASL opcode without an argument (as shifts can be used on A or memory) or if that should be considered an error, that's probably an interpretation difference. Not sure if it's official or not.

No offense but you're quoting Urban Dictionary. :D
(probably everything is offensive in some way according to that site :P )

General Discussion / Re: RPG Maker Humble Bundle
« on: May 31, 2014, 11:29:34 am »
I don't see why one should blame the tool if a lot of amateur games come out of it?

And what about that official FF phone game (FF Dimensions?) that looked like RPG Maker? I have a feeling a lot of S-E's current graphics artists couldn't do REAL 16-bit pixel art anymore. :P

ROM Hacking Discussion / Re: Screenshots
« on: May 28, 2014, 06:15:39 pm »
I... don't know, actually. I'm not sure if youtube will let me upload a video longer than 15 minutes? Plus there's the music playing in the background and the possibility of a resulting copyright strike.

I know. I had five seconds of music in one video and copyright-bot blocked it.
I'd argue fair use if I thought the video was worth arguing about, but it was just a personal video to show a friend.

Personal Projects / Re: KingMike's Translation projects.
« on: May 24, 2014, 11:44:56 pm »
Awhile ago, I found an old floppy disk with some source code to my word-wrap hack for Kaiju Monogatari. I fixed it up a bit into a doc, but as I have no working homepage on the Internet, I have posted it here.

I don't know if it's the final bugtested code or not. For NES, I pretty much write the ASM in a file for planning but insert the raw hex into the ROM. I test and debug in raw hex but may not update my doc. (for SNES, I have used xkas, so I have to fix the ASM source on those.)
I recall at one point I had a version that supported line wrap and the original scrolling method, but I lost in when I replaced my HDD.
I ended up with an uglier version that didn't scroll and would overwrite the old text and then fill out the rest of the window with spaces.

I found a backup ROM on the disk, but apparently that has corrupted in the decade or so since it was written.
Code: [Select]
WordWrapIndex = $E9 Position in the buffer where the text that needs wrapping is
BufferRead = $EA (16-bit) Text window buffer read position for moves
BufferWrite = $EC (16-bit) Text window buffer write position for moves
MoveLength = $EE

TextBufferIndex = $0163 Position to next insert text in buffer

TextBuffer = $04A0 (64 bytes. In the original game it was 16-char x 4 lines
in the translation it is (24 char + 8 overflow) x 3 lines
I think the first line of a string might have been limited by 1 less character
as a "stop" marker at the beginning for when the game scrolls the text window up.)

This routine expects that text in the RAM buffer will be formatted as such:


 Where A, B and C are lines A, B and C on the screen. (24 char by 3 lines)

 If it isn't, then it will detect the start of the word and shift that and everything else down.

Character map:
$FB Toggles Auto-line break
$FC The original game's space code
$FD Do word wrap
$FE New space code
$FF End of text code

lda MoveLength
bne ScrollRoutine
ldx #$00 ;text buffer index 0
lda TextBuffer,x
cmp #$FF ;end string flag
beq EndFormatAdjust
cmp #$FD ;line break flag
beq DoWordWrap
cmp #$FB ;auto-break flag toggle
beq UseScrollingText
cpx #$60
bne CheckFormats
stx TextBufferIndex

lda #$FE ;replace Scroll Toggle flag with hard-space
sta TextBuffer,x
lda MoveLength
beq SetScrollFlagOn
lda #$00
sta MoveLength
beq CheckFormats ;a=0, so this will branch always to CheckFormats, next iteration of loop
lda #$01
sta MoveLength
bne CheckFormats ;a=1, so this will branch always to the the next iteration of the loop

lda #$FE
sta TextBuffer,x ;replace line break with hard space
lda TextBuffer+0x19 ;check if character 25 of line 1 is hard-space already
cmp #$FE
beq CheckLine1B ;if it is, skip wrapping line 1
ldx #$19
jsr WordWrap
beq WrapLine2
lda TextBuffer+0x1A
cmp #$FE
beq WrapLine2
ldx #$1A
jsr WordWrap
lda TextBuffer+0x39
cmp #$FE
beq CheckLine2B
ldx #$39
jsr WordWrap
beq EndWordWrap
lda TextBuffer+0x3A
cmp #$FE
beq EndWordWrap
ldx #$3A
jsr WordWrap

lda TextBuffer,x
cmp #$FE ;check if we have a hard space
beq CheckForEOL
bne WordWrap ;keep going back until we find the last hard-space
beq EndFormatAdjust ;if we get to the start of the window, stop

pha ;backup index of space
lda #$00
sta MoveLength ;initialize Move Length
and #$1F
beq MoveText ;if the text spilled over a line, then we need to break it
lda TextBuffer,x
cmp #$FE ;current text byte a space? Check if it's the EOL.
beq IsItEOL
inc MoveLength
bne FindEOL ;since text buffer isn't 256 chars long, we can use this as branch always

lda TextBuffer,x
cmp #$FE
beq MoveText ;assuming 2 spaces in a row is probably an EOL. Move all text forward MoveLength bytes
inc MoveLength ;it wasn't, so let's assume a space and continue checking
bne FindEOL

pla ;retrieve index of space character
sta WordWrapIndex
and #$60 ;A = start of line index is on
adc #$C0 ;convert to address in buffer
tay ;Y = index of beginning of line with space
ldx #$00
lda #$FF
sta BufferWrite ;Write to $04FF (last byte of buffer)
sbc MoveLength
sta BufferRead ;Read from $04FF - MoveLength
lda #04
sta BufferWrite+1
sta BufferRead+1 ;setting the high bytes of the pointers
lda (BufferRead,x)
sta (BufferWrite,x)
dec BufferRead
dec BufferWrite ;transfer string backwards
cpy BufferRead
bcs MoveTextLoop ;repeat until we've copied through the current line

inc BufferRead
lda BufferRead
sta BufferWrite ;we're going to insert text and the current point
lda WordWrapIndex
adc #$A0 ;low byte of address of TextBuffer
sta BufferRead ;set read position to where the text is that needs to be word-wrapped
lda (BufferRead,x)
sta (BufferWrite,x)
lda #$FE
sta (BufferRead,x) ;now let's delete the string
inc BufferRead
inc BufferWrite
dec MoveLength
lda MoveLength
bne WriteWrapText

This is just me, but I wouldn't have posted shots of that font as-is. I think it's kind of embarrassing from a technical standpoint. There's a reason why people mock the T E R R A N I G M A font, even if that font isn't final.
Some progress is still progress, though.
We can't always have EVERYTHING looking nice all at once. :P

Just curious, what was the difficulty you ran into during the conversion? I did the same for Metroid and didn't have much of a problem at all.

I can only imagine it would be quite different depending on the game.
Converting from CHR-RAM to CHR-ROM means that if the game wants to rewrite even a SINGLE tile in VRAM, another CHR-ROM bank is needed.

Pages: 1 2 3 4 [5] 6 7 8 9 10 ... 108