| |||
Views: 88,478,692 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-24-24 08:08 PM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 2 guests |
Main - ROM Hacking - Seiken Densetsu II (Secret of Mana) Reverse Engineer | New thread | New reply |
jargon |
| ||
Ninji Banned until 2010-10-15 for an utterly psychedelic posting style Level: 36 Posts: 68/247 EXP: 300200 Next: 7910 Since: 12-10-07 From: 480/85260 Last post: 4947 days Last view: 4605 days |
This is what i have from tonight..
som.overworld.split.LZMA.7z Each ripped sheet is a left-to-right, top-to-bottom order rip of the source over world as a left-to-right, top-to-bottom output image. I ripped as 4x4 pixel tiles. Next i plan to progressively scan each sheet, simplifying 1/4th at a time in order to remove 4 way mirrors, all 256 output sheets, then recombine them like how the sweet-sixteen college basketball play-off post-season works. Meaning one at a time I remove all 4 way mirrored clones from 1/4th progressive scan of each of the 256 output sheets. Then I combine each set of 4 and remove all 4 way mirrored clones. Then I use binary split tree in order to reduce each of those results for all 256 raw sheets I ripped tonight. Eventually, I will end up with a source progressive scan sheet of 4x4 pixel tiles anti four way mirrored for the Seiken Densetsu II (Secret of Mana) over world. The next step being creating a map sheet for the over world consisting of (?)bit tile index and 2 bits of four-way mirror info. Somewhere along the line i have to implement recolor info. And that is the jist of what I am attempting. Btw, reason I failed so many times in the past was due to blowing all the memory in my video card and all my page memory doing so in one go, without using a binary split tree method. Wish me luck, and feel free to leave any comments. ------------------------------------------- -edit- (Sorry, "can't double post twice within a day" somehow got triggered.) Okay, I said how I split the Secret of Mana over world into 0x00 through 0xFF 256x256 pixel 24bit sheets of 4x4 pixel tiles mapped left-to-right, top-to-bottom. It's been 12 minutes and my secondary Brute Force Reverse Engineering Tool, has only 18% simplified just sheet 0x00! This is ridiculous. :/ And each follow-up sheet is going to take a logarithmically plateauing amount of time to process. -.- Blackhole89, you are a master of the "ioi"... How can I trans-code this algorithm into a parallel-processed shader? The first program I mentioned reconfigured the 24bit over world into the set of images as mentioned in my prior post. My algorithm maps out all the tile x/y's in the current sheet as 0 through n, where 'n' is the last tile in the sheet. it starts at '1' in the top-left though. tile '0' is the reserve blank tile for the final sheet. each entry is earmarked to point at itself. In a sub-loop it loops through all thus-far noted tiles and resets the earmark to any four-way-mirror matched tile, and exits this inner loop. If the earmark of the current comparison tile in this inner loop doesn't match itself anyways, it skips that cycle. After that nested loop is done (50% of each sheet pass), it then cycles through all tiles earmarked as their self, skipping any marked as a tile other than itself, starting at tile 0, redrawing the simplified sheet to attach the next pass's sheet so it's top edge meets the simplified sheet's bottom edge, then recurses using that on the next pass. There are 0x00 through 0xFF passes to do! Blackhole89, how may I easily trans-code this algorithm from a CPU intensive set of loops, into a parallel-processed GPU shader? Obviously in order to trans-code the CPU intensive algorithm as a GPU intensive shader, the GPU would have to throw generally accepted minimalist algorithmic permutations theory out the window and perform unnecessary extraneous steps within the parallel process pipe in order to actually parallel process in an optimal fashion. Any ideas Blackhole89? -edit- (Sorry) After 45 minutes the first pass only got to 35% before my computer nearly froze and crashed. No memory is being created nor deleted during the first 50% of a pass, and no processes are being recursed, so I have no idea why my computer slowed down so much by the first 35% of the first pass. The program should simply run in a linear fashion through the core algorithm. I have no idea what was causing the massive slow-down in the CPU. This reverse engineering project has become a disaster. -.- -edit- (GPU shader discussion) 20080325-002811 <+jargon> brute force reverse engineering sucks :| 20080325-002920 <+jargon> it's going to take like 15 hours to simplify the secret of mana overworld to a sheet of unique anti-four-way-mirrored 4x4 pixel tiles x.x 20080325-003341 <+jargon> 3 minutes and its only on 14% of sheet 0x00 of 0x00 thru 0xFF 20080325-003344 <+jargon> :/ 20080325-003612 <+jargon> nm took 5 minutes to do 14% of the first sheet x.x 20080325-004837 <+knuck> you're lying 20080325-011936 <+jargon> AB2 is dead 20080325-011946 <+jargon> http://acmlm.kafuka.org/board/thread.php?pid=80883#80883 20080325-011950 <+jargon> :/ 20080325-012010 <+knuck> so jargon 20080325-012016 <+knuck> are you normal now 20080325-012021 <+jargon> yes 20080325-012028 <+knuck> what was all that about 20080325-012031 <+knuck> like a month ago or so 20080325-012305 <+jargon> i was thinking of using the GPU shader's CMP pixel operation when overlaying every permutation of two 4x4 pixel tiles, then stacking all the pixels within each permutation using CMP :/ 20080325-012320 <+knuck> what gpu 20080325-012324 <+knuck> snes doesnt have a gpu!! 20080325-012334 <+jargon> this would result in a full set of all tiles that match as a truth-table 20080325-012346 <+knuck> snes doesnt have a gpu!! 20080325-012507 <+jargon> obviously i would use the GPU mirror/flip for the left handed one in each pair and then stack using OR of those 4 truth tables 20080325-012520 <+knuck> 20080325-012523 <+knuck> he is at it again 20080325-012523 <+jargon> this would solve for 4-way-mirroring 20080325-012524 <+knuck> sigh 20080325-012534 <+jargon> knuck not snes 20080325-012543 <+knuck> computer gpu? 20080325-012600 <+knuck> what computer gpu has its instruction set known? 20080325-012607 <+jargon> i am using a pc to take a rip of the secret of mana overworld and then simplifying it into a single sheet of 4x4 pixel tiles 20080325-012656 <+jargon> by that i mean four-way-mirror unique 4x4 pixel tiles 20080325-012745 <+jargon> i just haven't figured out how to use the shader to find the remove duplicates that have been identified 20080325-012803 <+knuck> what computer gpu has its instruction set known? 20080325-012810 <+jargon> to find and remove * 20080325-012826 <+jargon> GPU shaders can do mirror/flip/CMP/OR etc 20080325-012916 <+jargon> those are the four layering operations other than mesh permutations 20080325-012930 <+knuck> ah 20080325-012937 <+knuck> by cmp and or i thought you meant the instructions 20080325-012942 <+jargon> GPU's already have the built in ability to perform all possible permutations 20080325-012954 <+knuck> it'd be neat to have a nowadays' geforce's instruction set 20080325-013035 <+jargon> i just can't think of how to remove all the duplicates once the truth table of duplicates is rendered 20080325-013040 <+jargon> :/ 20080325-013230 <+jargon> maybe there is a operand in contemporary GPU shaders that remove permutations based on recurring pixel data 20080325-013256 <+jargon> if that were the case i could use that operand in order to render the simplified sheet using the resulting permutation 20080325-013437 <+jargon> which would also allow me in the same fashion to map the secret of mana over world with the indices and mirror info for each unique tile 20080325-013513 <+jargon> thus completing the goal of my reverse engineer 20080325-013606 <+jargon> the next way-point would be somehow using the GPU shader op set in order to remove all re-colors 20080325-013745 <+jargon> there is prolly a topography mapping opcode that resets all pixel colors used in a piece of video memory as another palette based on a permutation order 20080325-013841 <+jargon> this would allow all tiles that have recolors to be mapped the same as each other 20080325-013850 <+jargon> then i just recurse what i already outlined 20080325-013915 <+jargon> only issue would be if the recolor colors two unique colors as the same color :| 20080325-014012 <+jargon> meaning i'd have to somehow count max unique colors used out of all the tiles on a per tile basis 20080325-014047 <+jargon> then ghetto rig some sort of shader that tests for redundant palette entries off that 20080325-014104 <+jargon> but i am tired and i don't feel like delving that deep right now, knuck ____________________ NIHYFDTTMWTMR |
Main - ROM Hacking - Seiken Densetsu II (Secret of Mana) Reverse Engineer | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 37, rows: 57/58, time: 0.016 seconds. |