Next Page

The Official 2sf/NDS Music/HN Thread by unknownfile at 11:41 AM EST on February 14, 2007
Because "Yoshi's Island DS Music hack" was getting a bit off topic, here it is!

The format has yet to be released; in the meantime, go use VGMTrans until I sort this crap out.

FORMAT SPECIFICATION:

Version byte 0x91 (might be subject to change)
Reserved section - SR64-format Desmume uncompressed savestate (dumped by Desmume 2SF)
Code section - zlib-compressed ROM

Reserved section MUST start with either "CODE" or "PATCH" otherwise it is consider invalid.

CODE specifies a savestate (which is immediately followed by an SR64 header, then the Desmume savestate header). PATCH should be only used in mini2sfs. The syntax is:

5 bytes: ASCII "PATCH"
Next byte: 01 (register) or 00 (memory offset)

If byte is 01:
Next byte: Register (r0 is 0, r1 is 1, etc)
Next 4 bytes: signed u32 data

If byte is 00:
Next 4 bytes: signed u32 offset
Next 4 bytes: signed u32 data

Further progress on the format, player, or rips will be posted here.
2ND POST by hcs at 12:27 PM EST on February 14, 2007
Congrats on progress, happy to see the birth of a new format.
Might I suggest ditching the CODE/PATCH labels and just using something binary? Better yet, since CODE always starts with SR64, you could just look for the SR64, otherwise consider whatever is there a patch.

And, if I may give you A WARNING FROM BEYOND THE GRAVE: don't sparsify early, 0s may be more important than they seem...
by unknownfile at 2:40 PM EST on February 14, 2007
SR64 section revised. The load order should be thus:

ROM -> savestate -> patches

mini2sf patches in the code section rather than the reserved section will use the same "PATCH" format as seen aboved, only zlib-compressed. The savestate will not require PATCH/CODE stuff.

I'll also start on the tracer tonight, though it will dump uncompressed data to be saved later.

Also, it's a long weekend, so I should also get started on Highly Nitric (going with the Highly * naming convention...)
by marioman at 2:43 PM EST on February 14, 2007
Good job UF! How soon can we expect rips to be available for listening?

I can't wait to get Mega Man ZX on 2SF.
by Jouw at 3:17 PM EST on February 14, 2007
How will you compress savestates well, though?
Because the Sawaru Made in Wario test you posted was quite big. 23MB for the savestate, 8MB for the zipped savestate.
by unknownfile at 5:01 PM EST on February 14, 2007
SR64

EDIT:

I have a small tracer running now. It's very buggy, and I'm not even sure if it works correctly.

Here's the source to the tracer (add this into MMU_read32):

    // very buggy tracer for 2sf ripping
    writeoffset=adr-0x2000000;

    if (writeoffset < 0) {
        // data out of bounds, probably bios calls or similar
        return T1ReadLong(MMU.MMU_MEM[proc][(adr >> 20) & 0xFF], adr & MMU.MMU_MASK[proc][(adr >> 20) & 0xFF]);
    } else if (writeoffset>0x2000000) {
        // assume this is out of bounds, too
        return T1ReadLong(MMU.MMU_MEM[proc][(adr >> 20) & 0xFF], adr & MMU.MMU_MASK[proc][(adr >> 20) & 0xFF]);
    } else {
        u32 crap=T1ReadLong(MMU.MMU_MEM[proc][(adr >> 20) & 0xFF], adr & MMU.MMU_MASK[proc][(adr >> 20) & 0xFF]);
        fseek(trace,writeoffset,SEEK_SET);
        fwrite(&crap,1,sizeof(u32),trace);
        return T1ReadLong(MMU.MMU_MEM[proc][(adr >> 20) & 0xFF], adr & MMU.MMU_MASK[proc][(adr >> 20) & 0xFF]);
    }

marioman: I'm not really sure when the rips will be complete, though I am currently seeking technical help with the project (other rippers, etc).

edited 5:04 PM EST February 14, 2007
by Jouw at 6:50 PM EST on February 14, 2007
I can't help with ripping, as I know zero about this stuff, song selects, etc. But I'll be happy to test the player when it's in a usable state.
by unknownfile at 10:35 PM EST on February 14, 2007
Todo's:

- improve tracer
- code *really early* public beta HN
- rip a game using the generic sequence player

Also, if anyone has the resources to compile libsnd, please step forward.
by PokeParadox at 11:36 AM EST on February 15, 2007
Certainly interesting stuff. Lot's to do still but I can't wait for this new format :)
by unknownfile at 11:51 AM EST on February 15, 2007
Tomorrow's a day off from school. The Grade 9 students are having Take-Your-Kid-To-Work Day, whereas us Grade 10's have Go-To-The-Scarborough-Town-Center-And-Gossip-Because-You're-Retarded day. I will be having my personal version of the day, called Get-Your-Ass-To-Work-On-Programming-Highly-Nitric Day.

I'm going to need to get started on learning the Winamp API, or I can always rip off some data from 64th Note.

Because Desmume is GPL-licensed, I'll need to release the plugin and emulator code under the GPL license, otherwise a group of geeks will need to sue me because I violated their non-existant license.

Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source