(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-05-24 04:16 AM
Acmlm's Board - I3 Archive - - Posts by Gideon Zhi
Pages: 1 2 3 4 5 6 7
User Post
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 12-05-05 03:50 PM, in Can Lunar Magic load other games with the x200 header? Link
I don't see why. It's stupid. The header is nigh-pointless for people who don't use console copiers, gets in the way of manual address and pointer calculation, is easy enough to detect and factor out of any hardcoded data calculations when programming software (just add a +header to your equation, where header is an int equal to either 0 or 512)...

The only people who should care about headers are the copier users, and unless someone's very new at using copiers, they should already know full-well how to add headers onto their games.


(edited by Gideon Zhi on 12-05-05 02:51 PM)
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 12-05-05 04:22 PM, in Programming Experts directory Link
You can add me to 6502 and 65816. I'm hopefully going to be learning some R3000 at some point in the near future, and I'm in the market for a good C++ datastructures book...
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 12-05-05 04:24 PM, in Datastructures and advanced C++ Link
Can anyone recommend any good books for learning datastructures and advanced ++? I'm certainly in the market...
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 12-05-05 10:42 PM, in Sell me on a new hex editor Link
Originally posted by Datahax
yea UltraEdit-32 is also a very nice hex edtior, however if your doing a translation or a hack of the script in a game probably Translhextion best.


Wrong.

Translhextion is big, clunky, buggy, can't search properly, has a dump format that makes me want to gouge my eyes out and eat brains, and is in general a piece of trash.

Windhex32, on the other hand, is small, sleek, lets you specify an external script dumper if you want, can load two tables at a time plus ascii, has built-in Unicode Japanese support and sports a ton of (fully functional) search options. Accept no substitutes!
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 12-06-05 01:17 AM, in Sell me on a new hex editor Link
Hex Workshop's great if you don't need any romhacking-specific functions. I did Cave Story in Hex Workshop. It doesn't have any wildcard search functions either, and that can be really aggravating sometimes.

For anything else though, WindHex32 all the way.
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 01-09-06 07:29 PM, in putting ShyGuy in Mario 3 ! Link
Originally posted by Dwedit
I think simple graphics hacks like these aren't even threadworthy, but if someone were to actually have a functional shyguy which the player could ride on, pick up and throw, and such, then that would be amazing.


Agreed on principle, but Jason's a beginner and is excited that he's managed to change something in one of his favorite games. Let him have his moment in the spotlight! We can't all start out as superhackers making the next Zelda Outlands or Treasure of the Rudras translation
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 01-10-06 01:41 PM, in putting ShyGuy in Mario 3 ! Link
Originally posted by Dwedit
Then should everyone who takes off mario's clothes in SMB1 get his own thread?


There's a difference between childish, immature pr0n hacks of low quality and legitimate sprite conversion jobs, and you know it. Jason did a fine job with the shyguy sprite, don't be such an arse about it
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 01-11-06 11:14 PM, in Emulators with stabler Debugging for rom hacking Link
Originally posted by Dragonsbrethren
I've never understood why no SNES emulator has the mentioned features, they could be very useful.


Because the SNES hardware is set up very, very differently from the NES. While such features would probably be possible, you'd probably just end up with some sort of generic VRAM viewer, as VRAM's set up differently in every game.
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 01-12-06 01:17 PM, in A revelation I've had... Link
It's been done. Couldn't tell you how, but you could always ask
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 01-12-06 02:28 PM, in A revelation I've had... Link
I don't think it's an actual MP3 decoder, I'm not sure that the 65c816 or SPC700 is fast enough for that. I think what he did was break the MP3 down into samples which he dynamically strung together, similar to what happened with Tales of Phantasia's opening song.
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 01-29-06 12:54 PM, in "How do I" pointer help. Link
Say, is this Villgust? I remember playing a bunch of Villgust and getting stuck, just because there didn't seem to be anywhere else to go, and wondered if it was the fault of the translation.

Edit: Anyway, a pointer is simply a memory address (in an NES game) or a file/bank address (in an SNES game.) It tells the game where a particular piece of text begins. For example, in FF1 you'll see this:


See your face upon the
clean water. How dirty!
Come! Wash your face!


In this case, there'll be a pointer -probably- pointing to the capital S in "See." The reason the MadHacker's document talks about subtracting $10 is because of the iNES header - real NES games don't have this header, and it pushes all the addresses up sixteen bytes and makes your calculations nasty. Same with the $200-byte subtract rule on SNES games, except SNES headers are entirely removable with no real repurcussions.

The various formats that the MadHacker talks about revolve around how the game is programmed (as such, pointer tables don't necessarily work exactly the same way in every game), what the game's mapper is, and where the text ends up in memory. The 6502 also uses an endian mode that we're unused to. We're used to thinking in big-endian; that is, the biggest parts of a number come first. Most consoles think in little-endian; that is, the smallest byte are written first. This is the reason for the "byte swap" thing that you hear about when you're researching pointers.

So that's all they are - somewhat complicated (if only 'cuz you're not used to them) addresses that tell the game where to find a single given bit of its text. Hope that helps some.


(edited by Gideon Zhi on 01-29-06 12:09 PM)
(edited by Gideon Zhi on 01-29-06 12:10 PM)
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 02-20-06 02:35 PM, in SNES Hacking, RAM Write Breakpoints, and Frustration (Need Help) Link
d4s- Dunno what you've been doing, but I've been using code like this in my games for a very long time. Copy and pasted from my DMA Beginner's Doc:


org $02895F
JSL $1FE300 ;Here, we overwrite the old JSL that decompressed the font.
;Read the log to find out how this address was determined.
;If you don't have a 4-byte JSL or load to overwrite, then
;you'll need to overwrite more than one command and reproduce
;them in your DMA routine.

%org $1FE300 ;1FE300 is some blank space before our font. Yay.

LDA #$00 ;$4300 is the DMA control register. Unless you're writing directly to vram,
STA $4300 ;this should probably always be zero.

LDA #$80 ;$4301 is the destination register. The upper address is assumed to be $21,
STA $4301 ;so you're gonna have to figure out which of the $2100-$21FF registers you
;want to write to.

LDA #$00 ;...in our case, since we're writing to WRAM ($7E:0000-$7F:FFFF), we need to
STA $2181 ;use $2180. We store the address that $2180 goes to in $2181-$2183. I'm going
LDA #$11 ;to leave these blank, but they're in standard pointer format. Of note is that
STA $2182 ;bank $7E must be written as $00, and $7F must be written as $01.
LDA #$01 ;So, if you were writing to $7F:9320 you'd write $20, $93, $01 in that order
STA $2183 ;to $2181, $2182, and $2183 in that order.

LDA #$00 ;These registers contain the address your read starts from. Since we're dealing
STA $4302 ;with loroms, you need to remember how lorom addressing works, and you'll need
LDA #$F0 ;to convert the address of your new font ($FF000, right?) to a standard 24-bit
STA $4303 ;LoROM pointer. I'll leave these blank as well.
LDA #$1F ;You should be able to fill them in yourself.
STA $4304

LDA #$00 ;$4305 and $4306 are the number of bytes you need to copy. Again, the order of
STA $4305 ;the bytes is the same as before -- the high byte of your address comes LAST.
LDA #$10 ;Notice that you can't exceed 64K in this. That's cuz of the bank boundaries.
STA $4306 ;Don't try to copy more than 32K if you're dealing with loroms, either.
;Note that since you're not doing -addresses-, counting here starts from $0,
;not $8000, like lorom addresses would.

LDA #$01 ;This register starts DMA! Note that there are 8 DMA channels that can be used
STA $420B ;if you want to do more than one DMA at a time (channels 0-7.) We're using
;Channel 0. If we wanted to use channel 1, we'd be writing to $431X instead of
;$430X. The same holds for the rest of the DMA channels.
;Note that writing a byte to $420B can start more than one channel at a time!
;Since we're writing #$01 to it (00000001 binary), we're starting channel 0.
;If we wrote #$02 (00000010 binary), we'd start channel 1.
;If we wrote #$03, we'd start channels 0 -and- 1!

RTL ;Kay, we're done!


And damn straight it works on the real thing. Been doing this for years. I think the first game I used this code in was Gundam Wing Endless Duel, back in june of '02 :p

Edit: I'm positive I've used the same code, or at least extremely similar derivatives, in at least Gundam Wing, Shin Megami Tensei 2, Kunio-tachi no Banka, G-Gundam, Rockman & Forte, Gunman's Proof, Super Robot Wars 3, King of Demons, Magical Pop'n, Jutei Senki, Cyborg 009, Madou Monogatari, and Hiouden. It's also used in Shiren, although that's not out yet (soon!), and I might have to employ it in Fire Emblem. I can also say for certain that I've completed Gundam Wing, Kunio, Rockman & Forte, Gunman's Proof, King of Demons, Magical Pop'n, and Madou Monogatari on my swcdx2 copier :p


(edited by Gideon Zhi on 02-20-06 01:46 PM)
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 02-22-06 08:52 PM, in SNES Hacking, RAM Write Breakpoints, and Frustration (Need Help) Link
I asked the question of former-emulator-coder MKendora in my IRC channel, and this was the response:


[MKendora] you can't go WRAM to WRAM.
[MKendora] you can go ROM to WRAM, as far as I know.
[MKendora] RAM's not exactly on the A bus.
[Lakmir] this is a major concern for me, because a lot of my translations rely on DMA from ROM to $2180
[MKendora] Someone's on crack there.
[Lakmir] I can always replace the code with MVN or a load/store loop, but I'd rather keep the DMA if possible.
[MKendora] The only thing you can't do it A-bus WRAM to B-bus WRAM.
[MKendora] or DMA to DMA registers.
[MKendora] lots of games use that, iirc.
[MKendora] (ROM to 2180)
[Nightcrawler] According to Anomie's docs, you CAN write to RAM via DMA
[Nightcrawler] http://romhacking.deadbeat-inc.com/docs/regs.txt
[MKendora] then you pretty much can.
[MKendora] anomie's seldom wrong.
[MKendora] neviksti is the authority on limits...
[MKendora] and he only said no WRAM to WRAM DMAs.


Simply put, I think d4s is wrong No offense, man!
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 03-18-06 03:26 PM, in YY-CHR easter eggs/secret features? Link
I seem to recall someone (bmf?) finding some hidden features in YY-CHR, but damned if I can remember what they are. Can anyone help with this?
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 03-18-06 06:17 PM, in YY-CHR easter eggs/secret features? Link
Aha, thanks. Didn't turn up in google for some reason :/ Must've been searching for the wrong thing.

Cheers!
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 04-06-06 03:04 AM, in Compression broken, problems caused Link
Okay, so I've hit a bit of a problem. I'm working on this game whose text originally was compressed. I broke the compression, preferring to store my data decompressed in-rom.

The problem is that each of the compressed strings stored the decompressed size with the string, PASCAL style. Now, the game's still expecting those bytes to be at the beginning of my strings, and it really doesn't like it when those values aren't there - or when the values that are there are much bigger than it's used to handling. Here's some example code...

From the original...
$81/F86E C2 20       REP #$20                A:F99A X:9821 Y:0000 P:eNvMxdizc

$81/F870 E6 23 INC $23 [$00:0023] A:F99A X:9821 Y:0000 P:eNvmxdizc
$81/F872 E6 23 INC $23 [$00:0023] A:F99A X:9821 Y:0000 P:eNvmxdizc
$81/F874 BD 00 00 LDA $0000,x[$B0:9821] A:F99A X:9821 Y:0000 P:eNvmxdizc
$81/F877 85 0E STA $0E [$00:000E] A:0021 X:9821 Y:0000 P:envmxdizc
$81/F879 E8 INX A:0021 X:9821 Y:0000 P:envmxdizc
$81/F87A E8 INX A:0021 X:9822 Y:0000 P:eNvmxdizc
$81/F87B 80 1E BRA $1E [$F89B] A:0021 X:9823 Y:0000 P:eNvmxdizc
$81/F89B E2 20 SEP #$20 A:0021 X:9823 Y:0000 P:eNvmxdizc
$81/F89D 64 0D STZ $0D [$00:000D] A:0021 X:9823 Y:0000 P:eNvMxdizc
$81/F89F A5 25 LDA $25 [$00:0025] A:0021 X:9823 Y:0000 P:eNvMxdizc
$81/F8A1 85 AE STA $AE [$00:00AE] A:00A1 X:9823 Y:0000 P:eNvMxdizc
$81/F8A3 A0 00 00 LDY #$0000 A:00A1 X:9823 Y:0000 P:eNvMxdizc
$81/F8A6 A9 FF LDA #$FF A:00A1 X:9823 Y:0000 P:envMxdiZc
$81/F8A8 85 07 STA $07 [$00:0007] A:00FF X:9823 Y:0000 P:eNvMxdizc
$81/F8AA BD 00 00 LDA $0000,x[$B0:9823] A:00FF X:9823 Y:0000 P:eNvMxdizc
$81/F8AD 85 06 STA $06 [$00:0006] A:003F X:9823 Y:0000 P:envMxdizc
$81/F8AF E8 INX A:003F X:9823 Y:0000 P:envMxdizc
$81/F8B0 06 06 ASL $06 [$00:0006] A:003F X:9824 Y:0000 P:eNvMxdizc
$81/F8B2 90 11 BCC $11 [$F8C5] A:003F X:9824 Y:0000 P:envMxdizc
$81/F8C5 BD 00 00 LDA $0000,x[$B0:9824] A:003F X:9824 Y:0000 P:envMxdizc
$81/F8C8 20 96 F9 JSR $F996 [$81:F996] A:000D X:9824 Y:0000 P:envMxdizc


From the new build, with the direct-from-ROM load in place...
$81/F86E C2 20       REP #$20                A:F99A X:B0A5 Y:0000 P:eNvMxdizc

$81/F870 E6 23 INC $23 [$00:0023] A:F99A X:B0A5 Y:0000 P:eNvmxdizc
$81/F872 E6 23 INC $23 [$00:0023] A:F99A X:B0A5 Y:0000 P:eNvmxdizc
$81/F874 BD 00 00 LDA $0000,x[$E8:B0A5] A:F99A X:B0A5 Y:0000 P:eNvmxdizc
$81/F877 85 0E STA $0E [$00:000E] A:47F4 X:B0A5 Y:0000 P:envmxdizc
$81/F879 E8 INX A:47F4 X:B0A5 Y:0000 P:envmxdizc
$81/F87A E8 INX A:47F4 X:B0A6 Y:0000 P:eNvmxdizc
$81/F87B 80 1E BRA $1E [$F89B] A:47F4 X:B0A7 Y:0000 P:eNvmxdizc
$81/F89B E2 20 SEP #$20 A:47F4 X:B0A7 Y:0000 P:eNvmxdizc
$81/F89D 64 0D STZ $0D [$00:000D] A:47F4 X:B0A7 Y:0000 P:eNvMxdizc
$81/F89F A5 25 LDA $25 [$00:0025] A:47F4 X:B0A7 Y:0000 P:eNvMxdizc
$81/F8A1 85 AE STA $AE [$00:00AE] A:47A1 X:B0A7 Y:0000 P:eNvMxdizc
$81/F8A3 A0 00 00 LDY #$0000 A:47A1 X:B0A7 Y:0000 P:eNvMxdizc
$81/F8A6 A9 FF LDA #$FF A:47A1 X:B0A7 Y:0000 P:envMxdiZc
$81/F8A8 85 07 STA $07 [$00:0007] A:47FF X:B0A7 Y:0000 P:eNvMxdizc
$81/F8AA BD 00 00 LDA $0000,x[$E8:B0A7] A:47FF X:B0A7 Y:0000 P:eNvMxdizc
$81/F8AD 85 06 STA $06 [$00:0006] A:4716 X:B0A7 Y:0000 P:envMxdizc
$81/F8AF E8 INX A:4716 X:B0A7 Y:0000 P:envMxdizc
$81/F8B0 06 06 ASL $06 [$00:0006] A:4716 X:B0A8 Y:0000 P:eNvMxdizc
$81/F8B2 90 11 BCC $11 [$F8C5] A:4716 X:B0A8 Y:0000 P:envMxdizc
$81/F8C5 BD 00 00 LDA $0000,x[$E8:B0A8] A:4716 X:B0A8 Y:0000 P:envMxdizc
$81/F8C8 20 96 F9 JSR $F996 [$81:F996] A:47D4 X:B0A8 Y:0000 P:eNvMxdizc


I'm sure you can see what the problem is. Those values control MVNs, and 0006 specifically causes a lot of loops. I've run a full-execution trace without squelching in geiger snes9x, and that BCC never fails to resolve with the new script in place. To compound on things, this code is used for other compression-related things as well, so breaking it to load an absolute doesn't work. (It did elsewhere, though.)

Any suggestions?


(edited by Gideon Zhi on 04-06-06 02:04 AM)
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 04-23-06 09:24 PM, in does any one have a super mario 64 level editor Link
u get it were u get the tile editer
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 05-03-06 02:26 AM, in The GameBoy NES Series Link
Originally posted by Disch
And what the fuck, ImInvisible. That huge fucking thing is your sig? God I want to stab you so hard.

freaking acmlm's


I've got a knife if you need it.

Anyway, this reminds me of when I had a black and white TV set. Playing games on that sucked, especially Dr. Mario. I have no desire to relive those days.
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 05-10-06 08:39 PM, in What game would you really like to see a translation of... Link
Originally posted by Megaman-Omega
I'm with Link2006 on this I want to see at least "one" Fire Emblem game translated but the only ones I've seen the most being 25% doce and ignores for two years .


I'm "close" to being done with Monsho no Nazo. The script needs heavy revisions and some formatting work, stuff I don't have time for right now in the last few weeks of my undergraduate career, but it -is- fully translated.
Gideon Zhi

Keese








Since: 12-05-05
From: ...behind you! Boo!

Last post: 6287 days
Last view: 6285 days
Posted on 06-17-06 01:38 PM, in Kentai Denjuu Telefang 2 Translation Patch Link



(edited by Gideon Zhi on 06-17-06 12:41 PM)
Pages: 1 2 3 4 5 6 7
Acmlm's Board - I3 Archive - - Posts by Gideon Zhi


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.063 seconds; used 448.20 kB (max 579.91 kB)