News: 11 March 2016 - Forum Rules

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

Pages: [1] 2 3 4 5 6 7
Script Help and Language Discussion / Re: ID help
« on: September 16, 2018, 12:14:54 am »
Thank you. It looks right.

Script Help and Language Discussion / ID help
« on: September 15, 2018, 11:22:52 pm »

This is what I have so far. I put an asterisk next to the ones I think are wrong but would appreciate being corrected on others too.


If I remember right you have to convert the tile molester values to base 10.

Have you checked out the Help Wanted ads?

Be careful with ads that say things like "most of the work is done." If it were then they probably wouldn't need to post the ad.

As a translator you would probably want to look for an ad that said something like "script has been extracted" "needs translated" "insertion is ready to go as soon as the translation is done."

Here's a method I got out of a game then altered for optimization. It just subtracts the hex values of each decimal digit and counts how many times it can be subtracted. Then places the digits one per byte starting at $20 ram.  For the largest number ($FFFFFFFF = 4,294,967,295) it takes 776 operations to do the conversion. It could be further optimized by using another subroutine for the last 4 which don't require math on the 16 high bits.

Code: [Select]
//enter hex equivalents for each decimal digit in $04 and $06, largest first
 REP #$30               
 STZ $0A   
 LDX $0A
 LDA #$CA00
 STA $04   
 LDA #$3B9A 
 STA $06   
 LDA #$E100 
 STA $04   
 LDA #$05F5 
 STA $06   
 LDA #$9680 
 STA $04   
 LDA #$0098 
 STA $06   
 LDA #$4240 
 STA $04   
 LDA #$000F 
 STA $06   
 LDA #$86A0 
 STA $04   
 LDA #$0001 
 STA $06   
 LDA #$2710 
 STA $04   
 STZ $06   
 LDA #$03E8 
 STA $04   
 STZ $06   
 LDA #$0064 
 STA $04   
 STZ $06   
 LDA #$000A 
 STA $04   
 STZ $06   
 SEP #$20
 LDA $00
 STA $20,X

//subtract equivalents from hex number in $00 and $02, increment base 10 digit
 REP #$30 
 STZ $08   
 LDA $00   
 SBC $04   
 LDA $02   
 SBC $06   
 STY $00
 STA $02
 INC $08   
 SEP #$20 
 LDA $0A   // $0a is flag to check if a number has come up yet
 LDA $08   
 LDA #$20    // $20 is tile value for empty space if no numbers have come up yet
 INC $0A 
 LDA $08   
 STA $20,x
 REP #$20               

This might be too simple but you could switch to decimal mode and bitshift and add the decimal value of each shifted bit. It would require approximately 42 operations at about 4 cycles per op for the first 13 bits then 21 more operations for the last 3 bits because the converted decimal value would exceed the 16 bit limit. So in total to convert a 16 bit number it would only cost 63 operations and around 250 cycles.

Programming / Re: Getting Started on a VWF?
« on: April 15, 2014, 11:30:49 am »

Are you using a register map. This will all be in it. The register for reading VRAM data is $2139 and to set the address is $2116 and to set the address increment is $2115, but this would not be practical to use because VRAM can only be accessed during blanking. If you absolutely had to get values out of VRAM those are the registers you would use.

It sounds like you are planning a hybrid of static / dynamic rendering. This would probably be best accomplished using WRAM to assemble the tiles which would defeat some of the purpose of pre-rendering.

ROM Hacking Discussion / Re: YouTube/Google Video thread
« on: April 08, 2014, 12:37:22 am »
I don't know much about it but it looks like it could be a fair challenge to hack. Here is a link the description.

ROM Hacking Discussion / Re: YouTube/Google Video thread
« on: April 07, 2014, 01:55:08 am »
Translation of intro story for Atlas Renaissance Voyager

Newcomer's Board / Re: Itadaki Street
« on: April 05, 2014, 05:35:39 pm »
I can do the hacking on Rose Neon but I'm already busy with many other things so help would be appreciated.

I would be willing to pay a bit to have this work done, if needed.

You are requesting aid in transgression in exchange for a bit of pay. I would expect there will be no takers.

ROM Hacking Discussion / Re: Use of Melissa font in translation
« on: March 29, 2014, 10:46:04 am »
There is no copyright protection for a single size font itself. You can only copyright software which the scalable fonts of the operating would be an example of.

Based upon the decision in Eltra v Ringer and the clear and explicit actions of Congress - the status quo regarding typeface and copyright has remained unchanged and is as firmly in place today as it was since the first Copyright Act in 1790. As it was then, so it is now: typeface designs do not fall within the Copyright Act's definition of pictorial, graphic, or sculptural works that qualify for copyright protection.

Programming / Re: Game & Watch - CPUs
« on: March 22, 2014, 01:23:56 pm »
This is what a programmer who recreated the games had to say about the processor.

Finally, why simulating instead of emulating?

Because of the great lack of informations about the wide range of 4-bit microprocessors used as "engine" in handheld video-games.

ROM Hacking Discussion / Re: Practicality of BRL?
« on: March 16, 2014, 11:20:43 am »
Looks like the IIGS could hold up to 8 MB of ram which could warrant some long branching for ram executions. Thanks BRP.

ROM Hacking Discussion / Re: Practicality of BRL?
« on: March 15, 2014, 10:22:26 pm »
Here's what Ogre Battle does to navigate to out of bank subroutines that only have a regular return. It uses JSR and jumps but no branching. First it jumps to ram, snags the bank for safe keeping on the stack, then back out to rom then proceeds to build a return to the ram position then a return long to the original rom position then a return long to the position it wants to jump to which was inserted in the rom after the program address it came from.

Code: [Select]
$03/E55B 20 99 11    JSR $1199  [$03:1199]   A:0020 X:7800 Y:0080 P:envMxdizC
$03/1199 4B          PHK                     A:0020 X:7800 Y:0080 P:envMxdizC
$03/119A 5C 8E 9F 00 JMP $009F8E[$00:9F8E]   A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F8E 8B          PHB                     A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F8F F4 9D 11    PEA $119D               A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F92 0B          PHD                     A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F93 4B          PHK                     A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F94 08          PHP                     A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F95 C2 20       REP #$20                A:0020 X:7800 Y:0080 P:envMxdizC
$00/9F97 0B          PHD                     A:0020 X:7800 Y:0080 P:envmxdizC
$00/9F98 48          PHA                     A:0020 X:7800 Y:0080 P:envmxdizC
$00/9F99 3B          TSC                     A:0020 X:7800 Y:0080 P:envmxdizC
$00/9F9A 5B          TCD                     A:1FA7 X:7800 Y:0080 P:envmxdizC
$00/9F9B D4 0D PEI ($0D)        [$E55D]      A:1FA7 X:7800 Y:0080 P:envmxdizC
$00/9F9D A5 0B       LDA $0B    [$00:1FB2]   A:1FA7 X:7800 Y:0080 P:envmxdizC
$00/9F9F 85 0D       STA $0D    [$00:1FB4]   A:0303 X:7800 Y:0080 P:envmxdizC
$00/9FA1 68          PLA                     A:0303 X:7800 Y:0080 P:envmxdizC
$00/9FA2 85 0C       STA $0C    [$00:1FB3]   A:E55D X:7800 Y:0080 P:eNvmxdizC
$00/9FA4 E6 0C       INC $0C    [$00:1FB3]   A:E55D X:7800 Y:0080 P:eNvmxdizC
$00/9FA6 A7 0C       LDA [$0C]  [$03:E55E]   A:E55D X:7800 Y:0080 P:eNvmxdizC
$00/9FA8 E6 0C       INC $0C    [$00:1FB3]   A:A0EC X:7800 Y:0080 P:eNvmxdizC
$00/9FAA 3A          DEC A                   A:A0EC X:7800 Y:0080 P:eNvmxdizC
$00/9FAB 85 06       STA $06    [$00:1FAD]   A:A0EB X:7800 Y:0080 P:eNvmxdizC
$00/9FAD E6 0C       INC $0C    [$00:1FB3]   A:A0EB X:7800 Y:0080 P:eNvmxdizC
$00/9FAF E2 20       SEP #$20                A:A0EB X:7800 Y:0080 P:eNvmxdizC
$00/9FB1 A7 0C       LDA [$0C]  [$03:E560]   A:A0EB X:7800 Y:0080 P:eNvMxdizC
$00/9FB3 85 08       STA $08    [$00:1FAF]   A:A000 X:7800 Y:0080 P:envMxdiZC
$00/9FB5 48          PHA                     A:A000 X:7800 Y:0080 P:envMxdiZC
$00/9FB6 AB          PLB                     A:A000 X:7800 Y:0080 P:envMxdiZC
$00/9FB7 C2 20       REP #$20                A:A000 X:7800 Y:0080 P:envMxdiZC
$00/9FB9 68          PLA                     A:A000 X:7800 Y:0080 P:envmxdiZC
$00/9FBA 2B          PLD                     A:0020 X:7800 Y:0080 P:envmxdizC
$00/9FBB 28          PLP                     A:0020 X:7800 Y:0080 P:envmxdiZC
$00/9FBC 6B          RTL                     A:0020 X:7800 Y:0080 P:envMxdizC

The subroutine it wanted to access was run through here.

Afterwards the rts sends it back to the ram position where it proceeds to return long back to the original program location just after the inserted address.
Code: [Select]
$00/119E AB          PLB                     A:1120 X:0F99 Y:0080 P:envMxdizc
$00/119F 6B          RTL                     A:1120 X:0F99 Y:0080 P:envMxdizc

I rewrote this at one time so it worked more smoothly and was easier to understand but I'm not sure what I did with it.

ROM Hacking Discussion / Re: Practicality of BRL?
« on: March 15, 2014, 08:27:11 pm »
I could almost imagine something with some code executed from ram. There doesn't seem to be any games that do that though because Snes9x does not even except BRL in relation to ram (either into, out of, or through it). Those guys would normally modify their emulator to compensate for any game that would require something like that.

ROM Hacking Discussion / Re: Practicality of BRL?
« on: March 15, 2014, 03:27:26 pm »
So the instruction set must have been designed with other purposes in mind and basically on the SNES branch long doesn't have any necessary use.

ROM Hacking Discussion / Practicality of BRL?
« on: March 15, 2014, 09:50:13 am »
I was just comparing the SNES instructions "Jump" and "Branch Long" and it occurred to me there is no particular advantage for branching long. It takes 1 additional cycle and has a smaller range than the jump instruction while using the same number of bytes.

Anyone have any thoughts or examples of what purpose it might serve? Maybe it's got something to do with ease of programming.

The font tiles are compressed by some kind of sick compression scheme starting at $80000 in an unheadered rom. Perhaps created by some mad scientist? Maybe it's actually simple but it doesn't look like something I'd want to mess with. If you do want to play around with it, I would recommend pulling the uncompressed tiles out of vram and using them that way.

Programming / Re: SNES HDMA from WRAM example
« on: March 09, 2014, 11:57:15 pm »
You could host it on and then provide a link to it.

Pages: [1] 2 3 4 5 6 7