Chihiro on XBOX

Discussion in 'Chihiro Development' started by Dabman, Mar 14, 2010.

  1. anks

    anks Member

    Joined:
    Jul 13, 2010
    Messages:
    7
    Likes Received:
    0
    Crazy taxi when it says initializing will be trying to find the jvs wheel and feedback. I think if you could get in the service menu it could be disabled or maybe add a hook to catch it in the launcher.
     
  2. JayFoxRox

    JayFoxRox Spirited Member

    Joined:
    Dec 23, 2010
    Messages:
    176
    Likes Received:
    9
    Still getting "*** KeBugCheckEx STOP: 0x0000000A (0x0,0x2,0x1,0x8001A020)". (Which means write access to address 0x00000000, crashing because IRQL_NOT_LESS_OR_EQUAL as IRQL was 2)

    That should be in KeWaitForSingleObject. The address for the read is retrieved from the first argument Object+12 which should be Object->Header.WaitListHead.Blink [Assuming all objects are KMUTANT, WaitListHead would be +8, Flink consumes 4 bytes, so +12 is Blink].

    One thing that puzzles me is why those pointers are wrong. I really should find the object it's trying to operate on. However, in order to do that I'd have to know where exactly KeWaitForSingleObject is called..

    The problem I'm having with that is that I never even see a kernel call or call to KeWaitForSingleObject and the BugCheck is executed in a different context so there is no stack trace either.


    Looks like I have a lot more digging to do than I expected :(
     
  3. Floydthebarber

    Floydthebarber Rapidly Rising Member

    Joined:
    Sep 1, 2012
    Messages:
    76
    Likes Received:
    4
    How's it coming Jayfox? Were you able to make any more progress over the weekend?
     
  4. DJFender

    DJFender Member

    Joined:
    Feb 11, 2014
    Messages:
    7
    Likes Received:
    0
    I know I may be necroposting from beyond the grave, however I had some success specifically burning a Standard XBOX bios with the normal default.xbe instead pointed towards vc3_t.exe which solves it locking up on a stock xbox until it gets to the main loading menu, I really am intrigued as these are the games I used to play in the arcade all the time and I know how they're supposed to run :)
     
    Last edited: Feb 11, 2014
  5. JayFoxRox

    JayFoxRox Spirited Member

    Joined:
    Dec 23, 2010
    Messages:
    176
    Likes Received:
    9
    No, I had to work on my Lindbergh stuff instead.

    If there is anything worth to talk about I'll do so. I'd rather keep the thread clean and avoid further questions about it. There is also the PM system but I had problems with too many questions - it actually slows down my work if I have 5 parallel conversations.

    Actually, I did a bit of work, but I got frustrated really quickly because nothing seemed to work. I'm also sick at the moment so work is going rather slowly.
    Starting today, I'll be busy with studying for university again until mid march. So don't expect much progress.

    //Edit:
    DJFender: I'd rather attempt to burn / mod a Chihiro bios then, but at the moment I don't see anything different to your approach from running it normally through a dashboard?
    vc3_t.xbe also works for me on my stock Xbox and vc3.xbe works until the Sega Logo.
     
    Last edited: Feb 12, 2014
  6. DJFender

    DJFender Member

    Joined:
    Feb 11, 2014
    Messages:
    7
    Likes Received:
    0
    did you try hammering start right before it attempts to load the Media Bd ID? or just outright patch it :D
    1902977_10153859337730492_1579993232_n.jpg
    I'm looking into flashing the standard bios to my machine and figuring out how the Media Board sends segaboot to the main loader, but it seems to lock it up all the time (perhaps the MCPX X2/X3 difference?) I'm really intrigued at possibly emulating the missing parts with whatever at hand. I'm also interested in the progress on your launcher.

    I have a very great interest in helping in whatever way I can for both this project and MAME, hopefully before I start university I can hunt down an old chihiro board and keep on working on this interesting project.
     
  7. DJFender

    DJFender Member

    Joined:
    Feb 11, 2014
    Messages:
    7
    Likes Received:
    0
    On mine, the xbox debugger says: "can't create vertex buffer", would this mean I seriously need to get more ram?
     
  8. JayFoxRox

    JayFoxRox Spirited Member

    Joined:
    Dec 23, 2010
    Messages:
    176
    Likes Received:
    9
    Yeah I remember getting to the main menu when pressing start before. But it will freeze there after a couple of frames I believe.

    To run the Chihiro Bios on a stock Xbox you will need your matching xcodes. You can just convert them quickly though. You could also use those from any (?) other bios for your machine.
    Segaboot is probably stored in "mbrom:/" and launched like the standard Xbox dashboard.

    So you patched the XBE printing code to show the board id like that?
    Personally I try to figure out the actual baseboard driver so I can emulate it (Similar to what I do on Lindbergh).
    I also haven't checked what exactly MAME does regarding the "MAIN BD ID". Their baseboard emulation also seems very incomplete (Only returning the revision as far as I can remember).

    I'll personally put my Chihiro work into xqemu because I believe that MAME is not the optimal place to emulate advanced systems. As much as I love MAMEs achievements and technical nature, I stronly disagree with the license and always have the feeling that they are too picky about code changes. Also finding / contacting MAME developers and is usually a hard thing to do. Another thing that bothers me is how they often reinvent the wheel by not cooperating with others. But I should probably rant elsewhere.


    //Edit: And yes, the crash why it doesn't even work for 128MB Xbox-es is that it can't allocate more than 64MB of contiguous(!) memory which would be necessary for GPU data. This is also the reason why it's probably not possible (or very hard to do) to add virtual paging / page-file support to play these games on a 64MB Xbox: File backed memory can't be accessed by the GPU. And the Chihiro games try to request too much GPU memory at once (Meaning you can't break it into smaller chunks / resources on disk). So the real problem is not too few CPU memory, but too few GPU memory OR in other words.. sloppy game code.

    The other games probably crash because they somehow access the hardware like the VC3 "Backup Clear Data" test option.
    However, so far I wasn't able to find anything on the I/O Ports or the files or MMIO. Could you possibly create a full crashdump (Detailed procedure from boot to crash, crashdump with full memory image, hash of involved XBE, LED state etc.) from the VC3 "Backup Clear Data" crash?
    My tools - as mentioned before - only get a crash in KeWaitForSingleObject but no indication from where it is even called.
     
    Last edited: Feb 13, 2014
  9. alphanumu

    alphanumu Newly Registered

    Joined:
    Feb 14, 2013
    Messages:
    4
    Likes Received:
    0
    Any ideas why my Chihiro baseboard won't work with an xbox? It still uses USB but doesn't do anything at all when hooked up in my JVS cab. Does it maybe need to see a media board or do we think maybe it's to do with the MCPX? That said I added a USB port to the baseboard (which has continuity with the pins of the xbox USB headers) and it didn't show up on my PC at all. I wonder if it's to do with the jumpers on the back of it.

    Also did anyone compare the binaries of OR2 beta vs release? As I understand it the beta runs but not the release. Would be ace to get OR2SP running!
     
    Last edited: Feb 15, 2014
  10. JayFoxRox

    JayFoxRox Spirited Member

    Joined:
    Dec 23, 2010
    Messages:
    176
    Likes Received:
    9
    I'm 99% sure that attaching a 128MB properly flashed (Correct Chihiro bios for your MCPX / Xcodes) Xbox board to the baseboard will work.
    OR2 and OR2 beta not compared yet - I'll probably have a look soon if I can't figure the problem out using Virtua Cop 3 [which has smaller executables and partly works = easier to debug].

    I'm still interested what the Chihiro will show up as via USB. It would be cool if someone could disconnect the Xbox USB from the Chihiro baseboard and connect it to a PC instead.
    I'd assume that it requires the Chihiro to be booted and it could even be possible that the Chihiro has to receive the USB firmware first. So you should start a game.
    - That's probably what you didn't do.
    Also don't expect that Windows or whatever you are using will just show it - run a USB sniffer like Wireshark instead.
    You should also verify that your PC and Chihiro are sharing the same ground and you'd probably want to use a fused/protected USB port.

    PS: JVS is *NOT* USB except for the physical connector. Hooking up a USB device/bus to a JVS bus/device could possibly break them.
     
  11. DJFender

    DJFender Member

    Joined:
    Feb 11, 2014
    Messages:
    7
    Likes Received:
    0
    its
    Might a something like this be useful?: http://stepmania.cvs.sourceforge.ne...ox/VirtualMemory.cpp?revision=1.6&view=markup

    I'm going to attempt fishing out a complete 64mb dump and get the MD5 hash etc for you today.

    Later today I'll attempt a decrypt of the resources from crazytaxihr (only have the XBE's emptied out thanks to your ultra useful tools on your site) and compare its data to the stock xbox version as the stock xbox version seems to enjoy running from a faster-than-dvd data storage device such as an HDD (or a GD-Rom Ramdisk lolol) and wonder how they managed it when the executable are nearly the same size.

    On a Side note:
    My theory about the base board is that it operates something like the XBOX serial info eeprom chip and its simply on the LPC bus as an addressable i/o space, kinda like how a computer handles PXE booting from an ethernet card or a raid configuration thingy, or how my xbox modchip can chain load whatever is placed into the memory of it.
     
  12. DJFender

    DJFender Member

    Joined:
    Feb 11, 2014
    Messages:
    7
    Likes Received:
    0
    If my memory serves me correctly JVS is simply RS485 cut down to power + I/O essentially which is why it can conveniently use USB cables.

    If you hooked up a jvs i/o board to an RS485 adaptor you could sniff it with a terminal program in linux (maybe windows too)
     
  13. alphanumu

    alphanumu Newly Registered

    Joined:
    Feb 14, 2013
    Messages:
    4
    Likes Received:
    0
    Are you sure? I spent almost a month last year trying every which way I could and got zero out of it. How do you mean though "correct chihiro bios"? Surely flash a chihiro bios to a retail xbox won't work?

    The chihiro motherboard needs to see the GAME 3/4 port connected to the baseboard or it fails to boot. I just tried this a few minutes ago as I was trying the reverse and seeing if one or two xbox controllers would work on a chihiro but no dice. Interestingly, at least in Outrun 2 SP's case, GAME 1/2 port is not used at all and can be left disconnected.

    When I was trying to get the baseboard to work with the retail 128mb xbox I tried dashes, xbox retail games and the OR2 beta but none would work with the baseboard (which is working fine with a Chihiro). The same Outrun 2 beta worked fine netbooted to my chihiro.

    I would have thought windows would at least see a USB device it can't recognise or didn't have drivers for? I will try wireshark when I have the chance.

    Yeah I know. The JVS output is next to the VGA port. This is a header on the board for USB (the data lines are connected to the same header that goes to the motherboard's GAME 1/2 and 3/4 ports) just no populated. And yes the JVS protocol is RS485 plus a special "sense" line.
     
  14. sonicdude10

    sonicdude10 So long AG and thanks for all the fish!

    Joined:
    Jan 17, 2012
    Messages:
    2,573
    Likes Received:
    29
    It won't work without some hackery. The Chihiro board is based on the dev kits and those use a Nvidia MCPX2 chip. Retail uses the MCPX3. They use different BIOS files. Only difference is the MCPX3 has a secret "boot ROM" of some kind and requires something to be done to the first 50 or so bytes of MCPX2 BIOS files to work. I forget the details. So unless something is done to the Chihiro BIOS or something like the Phoenix BIOS loader is used then a MCPX2 BIOS won't work on a MCPX3 board. I could be wrong as I haven't messed around with my debug or 128MB retail much in that area.
     
  15. alphanumu

    alphanumu Newly Registered

    Joined:
    Feb 14, 2013
    Messages:
    4
    Likes Received:
    0
    Yeah I get the feeling that at least the chihiro motherboard has to "unlock" the baseboard for it to work. More likely a handshake or at worst a firmware upload (though I can't see why as it does have it's own firmware).

    To be honest using a Chihiro BIOS would be useless for getting an xbox to run chihiro games AND use a baseboard, but it'd be pretty helpful for replacing chihiro motherboards as there's a ton out there that are dead now. I have a few here, the GPU overheats when the fan dies.
     
  16. JayFoxRox

    JayFoxRox Spirited Member

    Joined:
    Dec 23, 2010
    Messages:
    176
    Likes Received:
    9
    A friend of mine has a Chihiro now I heard. So maybe if I have that 128MB Xbox board I can try some things myself.
    (Trying to replace Chihiro Xbox board with Retail Xbox board / patching the bios)

    sonicdude10 already summarized it pretty good. Please verify this yourself, because I'm not much of a Xbox boot process expert.
    The XCodes are part of the flash image and are interpreted by code in the MCPX. The interpreter uses a different instruction set [Different opcode numbers] on MCPX2 / MCPX3 and also on XBlade which seems to be used on Chihiro. It sets up the hardware and decrypts/hashes the 2bl which then decompresses the kernel image.
    To fix the bios you'd have to use a lookup table to convert these XCodes. Or you could probably start PBL to load straight to the 2bl or kernel image?
    //Edit: Obviously you'd also have to use a virtual eeprom or use a proper eeprom image. Chances are segaboot depends on something similar to the HD-Key.
    So steps to turn Xbox to Chihiro Xbox: Upgrade RAM; Attach LPC port; Copy and convert Bios; Clone EEPROM.
    Depending on the functionality of the internal USB you'd probably want to find a different Chihiro image or Xbox USB board for your replacement Xbox board?!

    Sucks to hear that Chihiro requires USB connected. Does it boot if you have 2 controllers - possibly with MU - connected to Port 3 / Port 4?
    Did you try disconnecting it (Chihiro USB) at runtime? It's just USB from the physical side so it should support hot-plugging and it's host driven.
    So possibly it would work to start the Chihiro with baseboard and Xbox board connected via USB, then disconnect USB and reconnect it to your PC (you'd probably want to use a Notebook without AC here because we never know how good the Chihiro design is).
    [The problem with Windows and those Xbox/XID devices is that they send invalid device descriptors. It's always assumed that the Xbox already knows the function provided by the gamepad anyway. So if you connect it to Windows the device may STALL or never manage to be accepted by the system.]
     
    Last edited: Feb 15, 2014
  17. Floydthebarber

    Floydthebarber Rapidly Rising Member

    Joined:
    Sep 1, 2012
    Messages:
    76
    Likes Received:
    4
    Jayfox check your inbox, I got your 128mb ram Xbox motherboard finished.
     
  18. alphanumu

    alphanumu Newly Registered

    Joined:
    Feb 14, 2013
    Messages:
    4
    Likes Received:
    0
    If you want I can send on a baseboard for testing. Or I am open to running some tests for you.
     
  19. Floydthebarber

    Floydthebarber Rapidly Rising Member

    Joined:
    Sep 1, 2012
    Messages:
    76
    Likes Received:
    4
    Who wants chip in some cash to send Jayfoxrox a ram upgraded retail board? We need to raise at least $46 Canadian to get the lowest shipping option that comes with insurance coverage, but no tracking and takes 4-6 weeks to arrive or go for the next shipping option which takes only 8 business days, comes with insurance coverage, and tracking for $66 Canadian. You can send the money to my paypal account at ttwsandbeck@hotmail.com I will edit this post as I receive funds so that nobody pays more than what is needed.

    Right now we are at $69.81

    That it good guys we got enough. Thanks a lot for all your contributions :)

    Edit: After talking with Jayfox, we decided that it would make more sense to put the money raised into buying a 128mb Xbox from N64 Freak who also lives in Germany, since he can provide the correct PSU and some more goodies he has offered to through in. I have already paid N64 Freak with the contribution money. So Jayfox should get his 128mb Xbox very soon. Thanks again everyone for your contributions.
     
    Last edited: Feb 18, 2014
  20. Borman

    Borman Digital Games Curator

    Joined:
    Mar 24, 2005
    Messages:
    9,543
    Likes Received:
    1,880
    I sent you over a little something Floyd. Should be a good start.
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page