Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - X-Band Revival project | |
Pages: 1 2 3Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5222/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 06-24-05 05:48 AM Link | Quote
Hm, the garbled font one is semi-interesting (an unused sequence should just point to code that doesn't do anything) but given that it was written in C and used on all different systems I imagine they're just not meant for SNES.
Overload
Newcomer
Level: 3

Posts: 1/3
EXP: 58
For next: 70

Since: 06-28-05

Since last post: 116 days
Last activity: 110 days
Posted on 06-28-05 12:35 PM Link | Quote
I found an X-Band for you. Check your private messages.

Is the X-Band's SRAM mirrored at Bank 60H-7DH?
Geiger

Buster Beetle
Level: 34

Posts: 384/460
EXP: 241080
For next: 12571

Since: 03-15-04
From: Indianapolis, IN, USA

Since last post: 6 hours
Last activity: 6 hours
Posted on 06-28-05 09:02 PM Link | Quote
If you are willing to help, and find someone selling one (usually just posting on a gamer's board will bring a couple XBander's to the surface) I will buy it for you. I don't expect miracles from you, but please people ... don't rip me off. This really is for those interested in helping.

You would probably be better off buying one for the SNES9x and ZSNES development teams (and since so much of the code work is shared nowadays, you may literally only have to buy one). I would suggest posting on the SNES9x boards and see what they have to say about it.

---T.Geiger
neviksti

Goomba
Level: 8

Posts: 13/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 06-29-05 03:51 AM Link | Quote
Originally posted by Overload
I found an X-Band for you. Check your private messages.

Is the X-Band's SRAM mirrored at Bank 60H-7DH?


Thank you for pointing that out. I got it just a couple hours before it expired... that was close. So now I have an extra X-Band to fiddle with.

And yes, the SRAM is mirrored at Bank $60-$7D.

Would you like the X-Band to work on?
It goes without saying that you know how to reverse-engineer with the best of them. I'd definitely enjoy working on it with you.

I have a rough idea of how the server works now. There's some "checksum" business that I'm not very sure about yet. I'm going to write a small server program to test out the ideas soon.

Originally posted by Geiger
You would probably be better off buying one for the SNES9x and ZSNES development teams (and since so much of the code work is shared nowadays, you may literally only have to buy one). I would suggest posting on the SNES9x boards and see what they have to say about it.

The information necessary to get the X-Band rom to load and run has already been known for about two years. It involves the SRAM mapping already described here, and the modem regs set to always return some constants (I don't remember this, as Overload was the one that figured it out and posted it on the old Zsnes board). Anyway, Overload was the only one that incorporated the info into his emulator. (Well, and the UOsnes emulator which I've never used.) So support for loading the X-Band rom is not missing in Snes9x / Zsnes due to lack of information.

I don't think it's reasonable to include all the features of the X-Band into an emulator (it would be neat, but way too much effort would be required). So the only purpose the emulators play in this is just to give us a quick way to see how the code fits together (and to see directly the code that is pertinent to a particular situation).

Since I prefer Overload's emulator for debugging anyway... I'm already quite happy. However, if you want the X-Band ROM to load/run on Snes9x and/or ZSNES, feel free to remind them about it.


(edited by neviksti on 06-28-05 09:04 PM)
Overload
Newcomer
Level: 3

Posts: 2/3
EXP: 58
For next: 70

Since: 06-28-05

Since last post: 116 days
Last activity: 110 days
Posted on 06-29-05 07:16 AM Link | Quote
I'm on the Snes9x development team and a lot of my dsp code is in ZSNES

Sure, I'll help out where i can. Feel free to send it my way.

Besides the Dumper, I have the best setup for logging registers.
neviksti

Goomba
Level: 8

Posts: 16/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 07-08-05 11:48 AM Link | Quote
AN XBAND THAT STILL HAS A GOOD BATTERY / SRAM HAS BEEN FOUND!!

I can't believe it. I'm almost scared to fiddle with it right now.

I tried for hours to dump the SRAM and kept failing. Reading $E0:8000-FFFF on the cartridge from a SNES program was just returning the same data as from $E0:0000-7FFF. Eventually I figured out the following:

Using the following sequence:
	lda $FBC0F8
ora #$01
sta $FBFC02

would change the memory map so all the SRAM is accessible. I don't understand the purpose of this, and it drove me nuts to figure out ... but we now have a copy of the X-Band Sram that should still have patches and other goodies in it!!

Anyone that wants the SRAM, just let me know.

I'll try to figure out what patches are on it and let you guys know
---------
EDIT:

Here are all the games that there are "stats" for on this X-Band, so were probably played at least once.

Mortal Kombat 3
Killer Instinct
WeaponLord
Super Mario Kart
Super Street Fighter II
Zelda (test)
Mortal Kombat II

I've been starting it up with a random game (you need to have a game inserted since the X-Band doesn't have a CIC of its own). It would tell me at the beginning that the game might not be supported and I'd have to connect to check for a patch. However, with Mario Kart inserted, it doesn't say this. Hopefully this means the patch is still there (but it may mean nothing more than that it knows a patch exists).


Kind of off topic, but check out what I found when searching for X-Band stuff:
http://www.aep-emu.de/index.php?name=PNphpBB2&file=viewtopic&t=1593&postdays=0&postorder=asc&start=19

Someone posted about this thread on a German emulation site ... and took the time to translate the first post!
It's both odd and flattering.


(edited by neviksti on 07-08-05 06:01 AM)
Overload
Newcomer
Level: 3

Posts: 3/3
EXP: 58
For next: 70

Since: 06-28-05

Since last post: 116 days
Last activity: 110 days
Posted on 07-08-05 07:22 PM Link | Quote
Originally posted by neviksti
AN XBAND THAT STILL HAS A GOOD BATTERY / SRAM HAS BEEN FOUND!!


I had a feeling this was a good one.

Originally posted by neviksti

Anyone that wants the SRAM, just let me know.



I'll have a copy.

Originally posted by neviksti

I've been starting it up with a random game (you need to have a game inserted since the X-Band doesn't have a CIC of its own). It would tell me at the beginning that the game might not be supported and I'd have to connect to check for a patch. However, with Mario Kart inserted, it doesn't say this. Hopefully this means the patch is still there (but it may mean nothing more than that it knows a patch exists).



Try it with your other X-band and see what happens?

d4s

Panser
Level: 29

Posts: 253/325
EXP: 142151
For next: 5734

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 07-08-05 07:57 PM Link | Quote
although i dont have an xband modem for snes yet, i'd like to have a copy of that sram file, please.

im trying to get one, but they dont show up often on ebay.

oh, just found one on yj.
it comes with a small card, too.
i assume these cards contain credits to use the service, yes?
sorry, im new to this.
the instructions on the box are hard to read, and my japanese isnt that good, either.
http://page.auctions.yahoo.co.jp/jp/auction/76905722


(edited by d4s on 07-08-05 11:08 AM)
(edited by d4s on 07-08-05 11:08 AM)
creaothceann

Red Paragoomba
Level: 11

Posts: 27/50
EXP: 5903
For next: 82

Since: 01-27-05

Since last post: 21 hours
Last activity: 21 hours
Posted on 07-08-05 07:58 PM Link | Quote
Originally posted by neviksti
Someone posted about this thread on a German emulation site ... and took the time to translate the first post!
It's both odd and flattering.

Hey, you never know who collects the stuff.
neviksti

Goomba
Level: 8

Posts: 17/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 07-09-05 03:27 AM Link | Quote
Overload and d4s, the files have been sent.

If patches are still present in this device, then I shouldn't have to figure out as much about the hardware to get the first "connected game" running. However, I still haven't decided on the appropriate "short cut" / path to take now.

I still need to learn more about the communication protocal, but I know enough now that it may be advantageous to make a small server and start testing things. However, I have no place I can connect up the X-Band and PC server to phone lines in close vicinity to each other. Does anyone have some suggestions on how to proceed from here? (It will probably take a long time to get the first connect to work, so at this point, giving someone an X-Band and trying to connect to each other for testing would be way too slow for debugging purposes. I need a way to have quick / easy control over both sides.)


Overload:
> I had a feeling this was a good one.

And, thank you very much for pointing out that auction


> Try it with your other X-band and see what happens?

Apparently, until you connect to the server the first time, it doesn't really check about the cartridge/patches. Even on your emulator, it comments on the cartridge with the good SRAM. If instead I delete the SRAM and have the x-band software notice it is "corrupt" and fill out a new one (with a new character, etc), then the programs doesn't comment about the cartridge (not even after resetting it).


d4s:
> oh, just found one on yj.
> it comes with a small card, too.
> i assume these cards contain credits to use the service, yes?

Yes, that is what the cards are for. I have never seen one in person though.
I have also heard vague references to that being used as a "debug" port as well (some device with a ribbon cable and card like end was attached to the X-Band during operation). I do not know how likely the truth of that is though.

I took apart the X-Band and the card receptor ... the card slot is nothing but some metal contacts. So the card must have an IC chip on it, so the X-Band can communicate with it. I know which register the X-Band checks to see if a card is inserted, or at least here is what my old notes say:

$FBC108 bit 0 ... appears to say whether a card is inserted or not

So you probably can track down the card communication software if you are curious.


(edited by neviksti on 07-08-05 06:30 PM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5585/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-09-05 04:39 AM Link | Quote
Isn't there a way you could just connect the X-Band directly to your modem instead of using a phone line? Would save on phone bills too.
neviksti

Goomba
Level: 8

Posts: 18/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 07-09-05 07:25 AM Link | Quote
Originally posted by HyperHacker
Isn't there a way you could just connect the X-Band directly to your modem instead of using a phone line? Would save on phone bills too.


There may be (and I intend to do that at some point), but I hesitate to start with that method. That is because I need to hack around stuff in the ROM to not look for the dial-tone and enable the "straight-connect" mode (or whatever it is called) since the lines are now free-floating. (Also, unlike the X-Band, I'm not sure if my PC modem supports that type of connection.)

So if there are any problems, I won't know if it is with the data, or my hack (the settings I choose, the code I skip, etc).

I fully expect the initial steps of the server to be quite difficult to debug and reverse-engineer. Once we surmount that hill though, it should get easier. And then I'll feel much more comfortable adventuring out into more complicated methods (albeit, methods that will ultimately be easier on me).
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5605/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-09-05 08:51 AM Link | Quote
I imagine you could fake a dial tone and such. Maybe if you have a second PC with 2 modems. I'm not entirely sure how all that works, but it seems like this should be doable.
spoondiddly

Goomba
Level: 7

Posts: 7/22
EXP: 1235
For next: 213

Since: 06-12-05

Since last post: 14 days
Last activity: 17 hours
Posted on 07-09-05 11:14 PM Link | Quote
I'm not good for constant help (been doing a lot of N64 lately) but would like to look over the docs and sram.

I've been asking around and found out a little on how the credit thing worked end-user wise. Originally the service used credits. If you ran out, they cut you off. You could purchase them online and probably also over the phone, etc.

It wouldn't check your credits until you tried to play with someone. That's relatively good news ;*)

It is most likely the main server dealt with handling the credits. It would make the most sense if each card just had a constant signature and they handled the credits on their end with server-side accounts.

Later though they abolished the credit system altogether to increase sales. Instead it went to a flat-rate system and from all acounts the cards weren't used any longer. If that was handled by the server (most likely) they just didn't bother to read them anymore, but if it wasn't expect some patches on those x-band roms.

It seems unlikely that they stored them on the cards, but memories just aren't as clear as they were a decade ago.
neviksti

Goomba
Level: 8

Posts: 19/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 07-10-05 03:09 PM Link | Quote
Okay, I sent the SRAM to you as well.

As for help with the code... I'm really getting lost in it. However, I have learned a great deal in the last few days. Enough, that we may be able to just skip looking at much more of the code.

Here's what a packet looks like:

--------------
"IBM's BiSync" like framing
special characters:
STX = start of text / data = $02
ETX = end of text / data = $03
DLE = data link escape = $10

packet looks like:
STX ...data... DLE ETX

Any DLE characters in the data itself are "padded" with an extra DLE.

The code seems to ignore the STX character (doesn't even check it), but it does expect a character there.
---------------
The data in that last packet is actually a crude AppleTalk like packet.
(I've been told they used a form of ADSP, and have also seen interviews where people have re-iterated this as well.)

this "inner" packet looks like:
ADSP header ...data... crc

The crc is a checksum of all the packet data before it, INCLUDING the STX character, and the ADSP header, and BEFORE padding the data with any DLE characters.

ADSP header, $0D bytes long
how the code treats the data -
(word), (two dword entries - treated as a pair?), (word), ?flags? (byte)

header data is in network byte order (most significant byte first)
--------------------------------

As for the actual data itself, I've only looked at the server mode (not game mode) stuff so far. It looks like the server controls everything. It basically sends a command and parameters which the X-Band then executes and responds.

I found the crc algorithm in the ROM, and it is easy to follow.
As for the ADSP header stuff, and actual data handling ... I know where the "main controlling routine" is for this. But it calls many routines and I'm getting lost trying to understand everything.

Googling for a bit-level explanation of the ADSP header has not turned up anything useful. I obviously haven't hit upon the correct keywords to search for.

Anyone that can help me understand this header by looking for info ... it would really be appreciated. We're getting closer!
================
EDIT:

Okay, this seems to explain what is in the ADSP header:
http://www.lex-con.com/protocols/apple.htm

Source Connection ID, (Send Sequence Number, Receive Sequence Number), Receive Window, Descriptor

Here's some other pages:
http://www.networksorcery.com/enp/protocol/adsp.htm (has the RFC)
http://www.protocols.com/pbook/appletalk.htm#ADSP (not much better info, but explains what the receive window means)

Still nothing that explains the bits (not even the RFC? Am I missing something obvious?).

EDIT(2):
Okay, found more:
http://darcs.brianweb.net/vendor/powerpc-apple-darwin/include/netat/adsp.h

I don't really understand it right now. I think I'll get some sleep and read it again tomorrow.


(edited by neviksti on 07-10-05 06:45 AM)
(edited by neviksti on 07-10-05 06:57 AM)
Xranger60
Newcomer
Level: 1

Posts: 1/1
EXP: 10
For next: 1

Since: 07-11-05

Since last post: 114 days
Last activity: 109 days
Posted on 07-11-05 07:26 AM Link | Quote
Now, I know you are focusing on getting the SNES version to work first, but do you have any plans to dump a Genesis version with the patches? This could be vital as time is of the essence with this memory and once dumped it can be stored for good.
neviksti

Goomba
Level: 8

Posts: 20/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 07-11-05 08:33 AM Link | Quote
I do not have the tools to dump the Genesis data. But if anyone here does, I agree ... it should be done as soon as possible.

From what I've heard, the protocal was the same for both systems (well, at least nearly the same). Therefore if I get the server working for the SNES version, it probably will work (maybe with minor modifications) for the Genesis version as well!

Also, I should point out that I would still like more dumps of the SNES XBand SRAMs as well. We should collect as many patches as possible before all the batteries die.


(edited by neviksti on 07-11-05 11:20 PM)
Jagasian
Newcomer
Level: 3

Posts: 1/4
EXP: 79
For next: 49

Since: 07-27-05

Since last post: 4 days
Last activity: 3 hours
Posted on 09-13-05 08:50 PM Link | Quote
I just got myself an X-band off of Ebay. I haven't played with it yet, just unpacked it. What is the best way to see if its SRAM data is still intact? Also, what is the best way to dump the data? I have a SWCDX2, GDSF7, and a Tototek SNEX Kit. From looking at pictures of the X-band's PCB on SNES Central, I see that they used a battery holder for their coin battery. I wish other SNES carts did the same. It sure as hell would make cart preservation allot easier.

Also, I am not sure if this was mentioned, but is part of the plan to be able to directly connect the modem to a PC that proxies the X-band's protocol over the net? That would surely save on long distance bills
JLukas

Red Paragoomba
Level: 13

Posts: 45/51
EXP: 8897
For next: 1370

Since: 03-15-04
From: USA

Since last post: 9 hours
Last activity: 6 hours
Posted on 09-18-05 12:14 AM Link | Quote
Today I was digging through old EGMs looking for a certain article, and stumbled upon some Xband codes in the Tricks of the Trade section.

Edit: found some more!

SNES version:


Legend: U,D,L,R = Up, Down, Left, Right on the Direction pad.
A,B,X,Y = buttons A, B, X, Y on the controller.
Button L and button R = the left and right buttons on the top side of the controller.
To enter chat (requires both players to do so):
enter U, U, U at the "Do you want to play 'Thrasher' again?" dialogue.
To play maze while dialing server, enter U, U, D at the "Are you sure you want to register with XBAND?" dialog."
To play maze until button is pressed, enter D, D, L, L, R, B at the main six-button screen.
To play "Blockade" game, enter U, U, L, R, L, R button L at the main Six-button Screen.
To see Vomitvision/TripOTron, enter U, U, L, R at the Intro Splash Screen.
To access Rainbow Mode, enter L, L U, U, R, R, D at the Choose Player Screen or main Six-button Screen.
To access Green and Yellow Mode, enter U, U, R, R, D, D, L at the main Six-button Screen or Choose Player Screen.
To access Searchlight Mode, enter D, D, L, L, U, U, R at the main Six-button Screen or Choose Player Screen.
To go to the Screen Saver, enter L, R, D, D, button R at the XMail, BANDWIDTH, XBAND News Screen.


Genesis version:


When the dialogue says, "Do you want to play 'Thrasher' again?" press UP, UP, DOWN. This will enter chat (requires both players to do so).

At the Main Six-button Screen ("Challenge"/"Player List" etc.) press UP, UP, UP, UP, RIGHT, B. This will go to Fish Pong. You will play against the computer until any button is pressed, which will end the game.

If you press UP, UP, UP, LEFT, RIGHT, LEFT, RIGHT, UP you will get to the sound test/ Configuration Screen. At the Choose Player Screen, enter UP, DOWN, UP, UP, DOWN, LEFT, UP for Accordian Text Mode and RIGHT, LEFT, RIGHT, RIGHT, UP, RIGHT, LEFT for Earthquake Text Mode.



(edited by JLukas on 09-17-05 04:15 PM)
(edited by JLukas on 09-18-05 06:59 PM)
neviksti

Goomba
Level: 8

Posts: 23/25
EXP: 1510
For next: 677

Since: 06-09-05

Since last post: 36 days
Last activity: 30 days
Posted on 09-18-05 03:04 PM Link | Quote
JLukas wrote:
enter U, U, U ath the "Do you want to play 'Thrasher' again?" dialogue.

Okay, thanks. I noticed that as one of the "sequences" but couldn't figure out where it was supposed to be used (or what it did). What I believe is the "full list" of possible sequences is in a post on the first page of this thread... so there are a few other neat codes to fiddle with if you're curious to check it out.


Jagasian wrote:
I just got myself an X-band off of Ebay. I haven't played with it yet, just unpacked it. What is the best way to see if its SRAM data is still intact? Also, what is the best way to dump the data?

Are you the one that contacted me via email? If not, just write me a quick email and I'll respond with an SF7 program to allow you to dump the XBand SRAM.


Jagasian wrote:
Also, I am not sure if this was mentioned, but is part of the plan to be able to directly connect the modem to a PC that proxies the X-band's protocol over the net? That would surely save on long distance bills

The slow modem in the XBand was specifically chosen for its low latency (latency matters more than data throughput in this application). Adding two computer's inbetween (let alone a network connection) would probably make the games unplayable. It's important to remember that these games weren't designed/meant to be modem games ... it's an amazing feat that this company was able to hack games to work like this in the first place
Pages: 1 2 3Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - X-Band Revival project | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.065 seconds.