Golden Sun Hacking Community
May 28, 2017, 10:27:35 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
  Home   Forum   DC Wiki Help Search Calendar Downloads Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: LSDJ RAM Dump stuff  (Read 11491 times)
0 Members and 1 Guest are viewing this topic.
Seto Kaiba
the blind-oriented developer
Jupiter Clan

Regular Member
*

Coins: 2
Offline Offline

Gender: Male
I am: owner of kaiba corp
Posts: 173

« on: June 30, 2015, 06:21:25 PM »

LSDJ is a tracker for the Gameboy that allows players to create their own chiptunes with it. I've done quite a bit of music with this nifty piece of software and I can say it's pretty dang awesome. Unfortunately, being a Gameboy game, it's completely inaccessible outside of memorization. So I may be writing a specific GB emulator that will allow blind musicians to explore this pretty awesome tool.

I may just make it so that you can write your own files and then just load it into VBA but whatever, I found these, so have fun.

Anyways, I'm dumping my findings here, so hopefully someone else finds it useful.

LSDJ Memory Values:

0xB290-0xB68F

On the SONG screen, these values include the values of the various Chains.

These values do NOT reflect the actual values on any other screen. This should only be referenced when SONG is the active screen.

Each 4 bytes indicates a row of Chains. For example, the first byte in a set of 4 is PU1, then PU2, then WAV, then NOISE. Then it repeats until reaching FF.

These values seem to be stored elsewhere when not on the SONG screen, but I can't find them.

Idea: Extract these values when SONG is first loaded and place them in an array for quick access while on this screen, and flush the array when the screen changes.

0xA080-0xA87F

On the CHAIN screen, these values include references to various phrases.

These values do not reflect the actual values on any other screen. This should only be references when CHAIN is the active screen.

Each 16 bytes reflects a single chain. Chain 00 starts at A080, chain 01 starts at A090 ect.

These values are stored elsewhere but I can't find them.

Idea: Extract these values when CHAIN is first loaded and place them in an array for quick access while on this screen, and flush the array when the screen changes. Only reference the CURRENTLY SELECTED CHAIN.

0xA880-0xB07F

On the CHAIN screen, these values are the pitch offset for each individual phrase.

Similar to the references to the phrases, each 16 bytes corresponds with each chain. So A880 is chain 00, A890 is chain 1 ect.

0xA000-0xAFEF

On the PHRASE screen, represents the various notes. C3 (the lowest note) is represented with 01 while the highest note, B8, is represented by 48.

This has a weird update format. When deleting a note, it completely erases all the notes. This also occurs if you insert the same note. Adding the same instrument clears the memory as well. The list is resorted when you change the current note.

Each 16 bytes represents a single phrase. A000 is Phrase 00, A010 is phrase 01, ect.

0xC0AD

Current screen. Values correspond to:

01 - PHRASE screen
02 - GROOVE screen
03 - CHAIN screen
04 - SONG screen
05 - TABLE screen
06 - INSTRUMENT Screen
08 - FRAME screen
09 - PROJECT screen
0A - BANK screen

I might be missing a few, it's always tricky to go and figure this one out. lol

0xC1EF

5 character string representing currently selected instrument's name. Only applicable on INSTRUMENT screen.

The following are values that monitor the cursor. They stay the same when switching screens unless otherwise specified.

0xC1CC

PHRASE screen:

Horizontal cursor position. Starts at 1. 1 is note, 2 is instrument, 3 is type of modulation and 4 is modulation modifier.

0xC1CD

PHRASE screen:

Vertical cursor position.

0xC1D2

CHAIN screen:

Horizontal cursor position. 0 is chain, 1 is transpose.

0xC1D3

CHAIN screen:

Vertical cursor position.

0xC1D7

SONG screen:

Horizontal cursor position.

0xC1D8

SONG screen:

Vertical cursor position.
« Last Edit: June 30, 2015, 07:23:15 PM by Seto Kaiba » Logged

View Profile WWW
Pages: [1]   Go Up
  Print  
 
Jump to:  

Cbox
Today at 08:38:45 AM
Fox: The other theory is it could be coming from Mt. Aleph somehow. Umm..?
Today at 08:36:28 AM
Fox: I not really sure... but if it is appearing right there like that... it almost seems like something targetted... but maybe it could be the presence of artifacts that are high in psynergy.... and maybe one of those was in Isaac's cabin.... (High concentrations of psynergy causes vortexes?)
Today at 08:28:53 AM
Fox: One of the vortexes in a town destroys the bridge... and it looks like the vortex at the end could have destroyed the house (OR maybe have some indirect connection/dunno.), and will probably destroy the bridge the PCs are on as well. :P Umm... 
Today at 08:24:53 AM
Fox: at least* Don't they* have*
Today at 08:24:03 AM
Fox: From what I read. (Or atl et least my interpretation/memory of what I read.) ... Don't think only really appear every 10 years...?  And hve some connection to the mourning moon (Probably what the vortex is at the end.)
Yesterday at 11:46:04 PM
Lord Squirtle: I'm not even sure how that could be advanced unless there is a good reason why they stop showing up.
Yesterday at 11:45:13 PM
Lord Squirtle: I think the vortex stuff basically ends maybe 1/4 into the game, at least until the post-credits scene.
Yesterday at 08:47:52 PM
Fox: (That's assuming we make a remake, and take out any contradictions or altar them a bit to fit in.) ... However, here's the thing... the Vortexes were corrupted, so the solution didn't quite work out. (And there might have been others trying to do the same thing.)
Yesterday at 08:43:49 PM
Fox: Anyway... I don't know much about Dark Dawn... but if I was to advanced the story on the Psynergy Vortexes, I would say that Felix was behind it. - It's like in GS1/GS2... How we were at first led to believe the lighting of lighthouses needed to be stopped... and that flips in GS2.... so I'm going to guess the vortexes is similar.
Yesterday at 08:36:22 PM
Fox: If you search "gstla" (even shorter) ... Rom sites are appearing on page 2. .... Hm...
Yesterday at 08:24:47 PM
Fox: And the main reason I thought that was semi-intersting... because it's basically advertising... "Hey you're looking up this game?" "Well, did you know you could emulate it?" ... to those very few (mostly children) who don't already know. 
Yesterday at 08:22:54 PM
Fox: @ratings spot = I mean of the same rom site.
Yesterday at 08:22:00 PM
Foxno ... I need advanced error checking on my English... it's not enough to have error checking in programming. :P
Yesterday at 08:19:35 PM
Fox: Who knew... that a simple search like "Golden Sun 2" (With [bno[/b] text for "rom" or "download"/etc.)  will have a link to a rom site on the first results page... not to mention having a ratings spot in the right side-bar.
May 24, 2017, 06:49:14 PM
Lord Squirtle: I guess I'll make a topic for the GBA concept room in Dark Dawn soon.
May 24, 2017, 04:27:21 PM
Fox: Yep ... There are many libraries for many languages... Python, etc... And then there are things like  the Google apis - e.g. http://maps.googleapis.com/maps/api/geocode/json?address=(whatever you want to search for)
May 24, 2017, 07:46:43 AM
Luna_blade: I can see how XML/JSON are a thing these days.
May 23, 2017, 04:52:18 PM
Fox: Easier in the idea that I can reduce required external stuff where the source code isn't available/modifyable (Well, there is overrides in some cases, but still.) ; So it's possible the only "Events" I would require are those of the Form.... (Mouse Events, Keyboard Events, Paint Events, Etc. when needed.)
May 23, 2017, 04:42:14 PM
Fox: Anyway... I know I am using built-in controls in my current editor, but it is not out-of-the-question that I might just go and make my own custom controls... so that it is actually easier for me (But that'd take a lot of work.)  I'm thinking about one large bitmap object, and just drawing them on it. Problem is, I'm afraid it might not be efficient enough.  So I haven't decided about doing it.)
May 23, 2017, 04:33:28 PM
Fox: @XML = If I recall, I believe Visual Studio uses it for Settings Variables that remain even after you close the program. (e.g. There's one variable I have in my program that I call "LastRom" to make it easier to get back into the program.)

Affiliates
Temple of Kraden Golden Sunrise
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.077 seconds with 22 queries.