logo
 drop

Main

Community

Submissions

Help

82376625 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 ... 107
81
No offense but you're quoting Urban Dictionary. :D
(probably everything is offensive in some way according to that site :P )

82
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

83
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.

84
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:

 AAAAAAAAAAAAAAAA
 AAAAAAAA........
 BBBBBBBBBBBBBBBB
 BBBBBBBB........
 CCCCCCCCCCCCCCCC
 CCCCCCCC........

 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
CheckFormats:
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
inx
cpx #$60
bne CheckFormats
stx TextBufferIndex
EndFormatAdjust:
rts

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

DoWordWrap:
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
CheckLine1B:
lda TextBuffer+0x1A
cmp #$FE
beq WrapLine2
ldx #$1A
jsr WordWrap
WrapLine2:
lda TextBuffer+0x39
cmp #$FE
beq CheckLine2B
ldx #$39
jsr WordWrap
beq EndWordWrap
CheckLine2B:
lda TextBuffer+0x3A
cmp #$FE
beq EndWordWrap
ldx #$3A
jsr WordWrap
EndWordWrap:
rts

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

CheckForEOL:
txa
pha ;backup index of space
lda #$00
sta MoveLength ;initialize Move Length
FindEOL:
inx
txa
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

IsItEOL:
inx
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
dex
bne FindEOL

MoveText:
pla ;retrieve index of space character
sta WordWrapIndex
and #$60 ;A = start of line index is on
clc
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)
sec
sbc MoveLength
sta BufferRead ;Read from $04FF - MoveLength
lda #04
sta BufferWrite+1
sta BufferRead+1 ;setting the high bytes of the pointers
MoveTextLoop:
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
clc
adc #$A0 ;low byte of address of TextBuffer
sta BufferRead ;set read position to where the text is that needs to be word-wrapped
WriteWrapText:
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
rts

85
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

86
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.

87
So someone in another forum posted an old ad for a Japanese retro-game store, with a Mega Drive game misspelled "WWF Law".
Unintentional idea inspiration! :)
I mean, isn't pro-wrestling largely attitude anyways? :P (at least that's the impression I've always gotten when my dad watched the shows)
Why not put them to work fighting criminals in a beat-em-up?

88
Newcomer's Board / Re: How do I find the script to this N64 RPG?
« on: May 22, 2014, 10:21:10 am »
I open the rom with notepad+ and hexecute, and the only thing that stored in ASCII are the item and enemy names. But the letters are not even in order, for example, the enemy "Tomb Rat" is spelled "oTmbR ta" inside the ROM.
Your ROM is probably byte-swapped.

89
General Discussion / Re: VIZ acquires the Sailor Moon franchise.
« on: May 17, 2014, 10:58:09 am »
I might consider watching that if they can charge reasonable prices for it.
I mean, it looks like when ADV released the series last they wanted $160 for a 2-season set? That's about double what most boxsets cost.
Not surprising then that used legit copies of said set seem to have retained their value.

90
Newcomer's Board / Re: Editing the End Credits in Super Mario 2
« on: May 15, 2014, 01:17:43 am »
I'm not sure but I have heard the text is sprites, and as such is stored as sprite data.
Try searching every 4 bytes (since each sprite definition is 4 bytes) C***L***A (or some games might omit the property byte, since it is the same, so if that doesn't work try wildcards with letters 3 bytes apart).

91
Newcomer's Board / Re: Money and Romhacks
« on: May 15, 2014, 01:11:13 am »
I think D- and some other romhackers set up a company that released translations for a cancelled SNES game and three Japan-only Megadrive games (Super Fighter Team company or something). They even went so far to buy a prototype of the cancelled official English version for Blue Almanac specifically to prevent its release since they were working on their own separate translation in the mean time.
I don't think D was involved in the creation of Super Fighter, though he has worked with them.
And the thing is that Super Fighter licenses their translations from the copyright owners.
As to the Star Odyssey prototype, D said the original canceled was a pretty crappy translation and had some major bugs anyways.

92
ROM Hacking Discussion / Re: Patching problem Esper Dream
« on: May 10, 2014, 09:23:45 pm »
The only two BIOS revisions I know of are the standard FDS BIOS and the Twin Famicom BIOS. They should be identical except for the logo.

The only other difference between FDS "ROMs" that I know is that some may have a header (131,016 bytes for most games) and others don't (131,000 bytes). You might need a hex editor that lets you add/remove data if needed to try that.
(the header is just "FDS",0x1A,number of sides (2 for 128KB games, which is most of them) and the rest of the bytes are 0.)

According to No-intro, there are two versions of the game, 1.0 and 1.1. According to the readme, the patch is for version 1.1.

93
Gaming Discussion / Re: Remake of Pokemon Ruby and Sapphire in 3DS!
« on: May 10, 2014, 11:31:29 am »
They've done it twice before.

Probably a safe guess the 4DS will have a remake of Diamond/Pearl/Platinum as well.

94
ROM Hacking Discussion / Re: Changing rom size of snes rom
« on: May 09, 2014, 11:43:29 am »
First Google result for "snes cart header"
ROM $7FD7 (if LoROM) or $FFD7 (if HiROM, both values unheadered), value 0C = 4MB.

If the patch doesn't pad the game to a full 4MB, then you should do that (either use a hex editor and 0, FF or whatever to the end of the ROM up to 0x3FFFFF, or just download WindHex. There's an option in there somewhere to pad the ROM.

95
Gaming Discussion / Re: Remake of Pokemon Ruby and Sapphire in 3DS!
« on: May 08, 2014, 09:23:14 am »
Okay?

I think we need tell Nintendo TRUMPETS OR RIOT.

96
I remember reading about that back in the day in Nintendo Power. It sounded cooler than the actual game.

Then again there were the Austin Powers GBC "games" that had nothing but those extras, leaving me confused. So someone made an AP parody of Windows 95 for GBC and then decided it was worth selling as a retail product? With two versions?

97
ROM Hacking Discussion / Re: What is a (Rev B) ROM?
« on: May 06, 2014, 09:20:58 am »
In Link's Awakening, it is only 1.1 that has the warp glitch fixed. 1.0 and 1.2 contain the bug (I can confirm it works on Player's Choice, which are definitely 1.2. I know it worked on my first copy, which had to have been 1.0 as I had the game a few weeks after it was out.)
It's said Nintendo actually undid all the 1.0->1.1 fixes when they made 1.2, so supposedly the level 4 sequence break that can cause you to run out of available keys was put back in.

98
Thank goodness someone invented smartphones!

They will destroy our brains before such a situation can happen.  ;D

99
Newcomer's Board / Re: Line Breaks in WindHex Text Dumps?
« on: May 04, 2014, 09:24:05 pm »
I think the WindHex new line code would be "/=FD" (or maybe *=FD). If my memory is right, WindHex had it backwards from the standard (aka Thingy) format.

100
Programming / Re: Adding CHR-bank Swaps to a ROM
« on: May 03, 2014, 12:43:02 pm »
You're not inserting it into the NMI function are you?

Also, you probably shouldn't read $4016/4017 directly. Let NMI do that, most games I've ever looked at will have code there that reads them and stores the results somewhere in RAM: P1 pushed buttons (newly pressed this frame. You probably can't possibly remove your finger fast enough between checks for pressing the button :) so they need to filter that), P1 held buttons, P2 pushed buttons, P2 held buttons. Do a read breakpoint on 4016, and you will likely see it quickly SHIFT (ror/rol) bits into some RAM address.

Then to insert your code, look for the code where the game checks for whatever button is needed to progress is pushed (using RAM mirrors above) and modify that routine.

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