[MOD] Aladdin XBlast

Discussion in 'Xbox (Original console)' started by bennydiamond, Dec 29, 2014.

  1. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    The good news keep on coming.

    I've been working further on the code for those cheap Aladdin XT PLUS2 modchips you can buy on Eurasia.nu or Aliexpress.
    I was able to enable bank control from within XBlast OS, just like on the upcoming XBlast Mod.

    So basically, you reprogram the Aladdin's CPLD with this code, replace the SST flash chip for a SST49LF080A and you get a Aladdin XT that boots to XBlast OS and can load either a 512KB bank, 256KB bank or TSOP. Obviously, due to lack of hardware(but also internal resources, LC4032V CPLD is like 99% full), LCD, TSOP split, TSOP recovery and other such features requiring XBlast Mod hardware will not be available. Bank control within Evolution-X dashboard is also unavailable.

    I've made a small video in which I flash the 512KB bank, boot from 512KB bank and 256KB bank and finally enable quickboot on 512KB bank and reboot Xbox. All that on a Aladdin XBlast.


    To do this modification you'll need:
    -A Aladdin XT PLUS2 modchip(I don't know if lookalike hardware will work, I only tested on those cheap Aladdin XT you can still buy)
    -A soldering Iron
    -A Lattice JTAG programmer or compatible hardware (ex. FT2232 boards). Must be able to supply 3.3V.
    -A SST49LF080A flash chip in PLCC32 package(You cannot use the 49LF020(A) that came with the modchip).
    -A programmer for the SST49LF080A(TL866CS programmer with PLCC32 socket adapter work really well)
    -The files to program the CPLD and SST flash chip.

    The whole package is attached to this post.

    Archive contains:
    -Small readme
    -Aladdin XBlast SVF to program the LC4032V CPLD
    -Lattice parallel JTAG cable schematics
    -JTAG pinout on the Aladdin XT PLUS2
    -A copy of XBlast OS 0.55 to flash the SST49LF080A.

    Archive also contains the other "dumb" variants of the CPLD code as explained in this thread:
    https://assemblergames.com/threads/and-the-aladdin-xt-became-a-decent-modchip.52234/

    The procedure is as follow:
    1. Solder leads on the 6 programming pads of the Aladdin XT.

    2. Connect the Aladdin XT to the JTAG programmer. Here's the one I built. Works great if you have a real Parallel Port on your computer:
    [​IMG]

    3.Use ispVM or urJTAG to program the CPLD with the supplied SVF file.
    -Procedure is as follow:
    1. Launch ispVM System and select "Add Device" button
    [​IMG]
    2. Press the "Select..." button under "Device".
    [​IMG]
    3. Select "JTAG-SVF" as device type and press "OK".
    [​IMG]
    4. Press the "Browse..." button and select "Aladdin_XBlast.svf" file
    5. Press the "Go" button once the main window looks like the screen below. CPLD will be erased, programmed and verified in a single click.
    [​IMG]


    4.Program the SST49LF080A with the bin file of XBlast OS 0.2 Beta. You don't need to fill the whole chip, just flash the 256KB image starting at offset 0xC0000. Here's a screen of what it looks like when using a TL866 programmer.
    [​IMG]

    5. Install into Xbox.

    As my other Aladdin XT CPLD releases. D0 pad is to be used on 1.0-1.5 Xboxes to control D0 signal.
    1.6(b) Xbox should use the L1 pad to solder a wire to LFRAME. Using L1 on 1.6(b) will enable modchip support but will not hold signal to ground permanently. This is preferred to avoid MCPX damage overtime. If using L1 pad on 1.6(b) does not yield good results, revert to using D0 pad.

    HD and BT pads are to be left unconnected. These are now used to bypass OS loading and load a BIOS bank instead. They are to be used only if OS bank becomes corrupt. To use them, you need to bridge either one of the 2 to ground. If I remember correctly, bridging HD pad to ground will load 512KB bank while bridging BT pad to ground will load 256KB bank but it could be the other way around. So installing it into Xbox, you no longer need to connect any wire except for D0/LFRAME.

    As a reminder, I cannot say if any other modchips that look like the Aladdin XT PLUS2 will work with this mod. Parts and pinout of the CPLD must be identical to the Aladdin XT PLUS2. If not then it will not work for sure. So don't PM me asking if a certain version of XenoChip or any other "clones" will work with this code... I don't know. I only have those cheap Aladdin XT PLUS2 I bought a couple of months ago.

    This thing is most likely a one shot deal from my part; meaning I'm releasing this mod as is. I don't intend to offer extensive support on this. I've tested it on multiple Xbox motherboards and programmed 2 Aladdin XT with this. Everything works without any issue. That said, have fun with it, use it as you like but do not expect any "official" support on my part for this. Hardware design(or lack of) of these Aladdin XT is simply a joke which can lead to all sort of electrical glitches and unexpected states. I will not accept any responsibility if your Aladdin XBlast doesn't work.

    Same goes for the OS, I added support for this mod in it and I plan on keeping that support but it is unlikely I will ever test OS releases on those Aladdin XT. XBlast OS is supposed to run on XBlast Mod hardware(but will always be available for everyone). If a future OS release contains a feature that isn't working on Aladdin XBlast; well it'll just be too bad.

    That being said, I hope you'll have fun with it.

    As a side note, I'm fairly sure that anyone who's having problems with those stock Aladdin XTs will see compatibility improvement on system that refused to boot. The CPLD code is super-optimized and design implementation reports a FMax of 121MHz. To put this in simple words, CPLD works really fast which gives a lot of time for the output signals from the CPLD to settle and stabilize before rising edge of clock occur(at that moment, electrical signals are latched and kept, anything that occurs between rising edges of clock signal doesn't matter). So if you had Xboxes that didn't boot with those Aladdin XT, you might want to reprogram one and test it again.
     

    Attached Files:

    Last edited: Jul 16, 2017
  2. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    Just so you know, it's possible to sucessfully do this mod without having a dedicated flash chip programmer (like the TL866CS MiniPro programmer I mentionned in OP).

    Instead, you'd need a working modchip and a Xbox to boot from that modchip. Once you have reprogrammed the CPLD of the Aladdin XBlast(and properly inserted SST49LF080A in modchip), you can hotswap modchips and flash XBlast OS BIOS image onto the Aladdin XBlast by using your prefered Xbox App to flash Bios (Evolution-X dash, Gentoox Loader or even XBlast OS!).

    By doing this, the XBlast OS image will be programmed at the right spot to boot from it if you properly install the Aladdin XBlast (hook up D0 or LFRAME to it).

    Let me know how this goes!
     
    turfster likes this.
  3. ToxicMedz

    ToxicMedz Enthusiastic Member

    Joined:
    Jul 6, 2014
    Messages:
    511
    Likes Received:
    108
    I'd love to try this myself but its a bit over my head, no idea how to go about reprogramming the chips.

    Its a great upgrade to those cheap chips though! Thanks for all the hard work Benny!
     
  4. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    It's not very hard to reprogram the CPLD. It's almost the same procedure as programming a RGH chip for Xbox 360. If you have the necessary hardware programmer to do that, it's almost 100% sure you can reprogram the Aladdin XT. Connect Aladdin XT to JTAG programmer and run the SVF file in urJtag, ispVM, Impact or any other soft that can do the same job.

    As for the flash chip, you can use the Xbox itself to flash the OS by hotswapping modchips.
     
  5. ToxicMedz

    ToxicMedz Enthusiastic Member

    Joined:
    Jul 6, 2014
    Messages:
    511
    Likes Received:
    108
    would an old Aladdin LIVE programmer be able to be used by chance?
     
  6. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    For programming the flash chip yes; but only if the PC programmer software will accept to program something other than a SST49LF020(A). Aladdin chips only used 49LF020(A) flash chips so I think their programming software will only program the flash if this one returns the ID of a 49LF020(A).

    Their might be some soft that will accept other chip IDs and support the Aladdin Live Programmer hardware.

    As for the CPLD programming, you still require dedicated JTAG hardware. FT2232 boards will work under urJTAG if you have one. You might also have luck with an Bus Pirate if you convert the SVF in a XSVF but I never tried it with something other than Xilinx CPLDs...
     
  7. Bad_Ad84

    Bad_Ad84 The Tick

    Joined:
    May 26, 2011
    Messages:
    8,605
    Likes Received:
    1,376
    Just to provide some feedback.

    I have flashed a few of these now and they work great. You can also use the CPLD upgrade with the stock bios chip, which should still give you the improved 1.6 support etc
     
  8. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    49LF020 will work because there is a known bug in the chip that the 49LF020A fixes. That's the same bug that allowed the non 'A' revision of this flash chip to be directly wired to the LPC port of the Xbox on 1.0/1.1s.

    Bear with me it's possible the flash chip that came with your Aladdin XT might be a non 'A' even if it's marked on the IC. I wouldn't be surprised they widely use counterfeit ICs in those chips since it doesn't matter which revision is in.

    That being said, I highly doubt that a real 49LF020A chips will work with this code.
     
  9. barnito

    barnito Member

    Joined:
    Mar 10, 2013
    Messages:
    5
    Likes Received:
    0
    Does anyone have a working link to this or a newer Xblast Aladdin CPLD code? Link is dead...
     
  10. rso

    rso Gone. See y'all elsewhere, maybe.

    Joined:
    Mar 26, 2010
    Messages:
    2,192
    Likes Received:
    448
  11. one_eyed_monk

    one_eyed_monk Active Member

    Joined:
    Jul 11, 2017
    Messages:
    27
    Likes Received:
    19
    I stumbled upon this forum today after I decided to revive my old xbox console and my curiosity to learn about xbox modchip design. My xbox is a version 1.0 and I installed a xodus matrix modchip. I also have the xbox xdk and my brother and I got a stab at xbox game development back in the day.
    I would like to design my own modchip from scratch and use it as a learning platform for xbox modchip design. I am very familiar with embedded system design using cplds, fpga, mcu, e.t.c.
    As a first step, I would like to base my design around bennydiamond's work on the cpld code. Can I get the vhdl or verilog source code on bennydiamond's work on the aladdin xt modchip?

    My goal is to have an open source (hardware and software) design.
     
  12. Korn16ftl3

    Korn16ftl3 Robust Member

    Joined:
    Jun 26, 2017
    Messages:
    200
    Likes Received:
    19
    So if I'm understanding this correctly and I follow this procedure I will end up with an aladdin xt that boots to xblast os that will also have a 256kb flash bank as well as a 512kb flash bank? Based on this I am guessing xblast os takes up a 256kb bank on its own?
     
  13. rso

    rso Gone. See y'all elsewhere, maybe.

    Joined:
    Mar 26, 2010
    Messages:
    2,192
    Likes Received:
    448
    > a 256kb flash bank as well as a 512kb flash bank
    you have 512k of room, total, which you can treat as either a 256 or a 512 bank. maybe two 256 ones too, not sure if that's supported. but definitely not 256+512 at the same time, if that's what you're asking.
     
  14. Korn16ftl3

    Korn16ftl3 Robust Member

    Joined:
    Jun 26, 2017
    Messages:
    200
    Likes Received:
    19
    So say I treat it as a single 256 bank what happens to the rest of the space on the chip if it can only be either a 256 or a 512 flash? The chip replacing the original xt chip is a total of 1M flash if I understood correctly from the beginning of this modification.

    Is the xblast os portion 512 on its own?
     
  15. Bad_Ad84

    Bad_Ad84 The Tick

    Joined:
    May 26, 2011
    Messages:
    8,605
    Likes Received:
    1,376
    Xblast is 256kb. You most certainly have a 512k bank and 256kb bank after this mod.
     
    Korn16ftl3 likes this.
  16. Korn16ftl3

    Korn16ftl3 Robust Member

    Joined:
    Jun 26, 2017
    Messages:
    200
    Likes Received:
    19
    Thanks for the clarification Bad_Ad84
     
  17. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    Yes, of the 1MB flash chip, the lower 768KB is for the 512KB and 256KB BIOS banks you are free to flash with your favorite hacked BIOS. The upper 256KB is reserved to XBlast OS.
     
    Korn16ftl3 likes this.
  18. one_eyed_monk

    one_eyed_monk Active Member

    Joined:
    Jul 11, 2017
    Messages:
    27
    Likes Received:
    19
    After waiting with no reply and realizing that bennydiamond is not yet ready to release the vhdl sources for his aladdin xblast modchip, I decided to go ahead with my own implementation. It turns out that the LPC spec is relative simple when compare to other specs like SD and I was able to get the SST49LF020, SST49LF020A and the SST49LF080A working on the aladdin xt plus and the aladdin advance. I am also releasing my vhdl implementation. More info is available in the thread https://assemblergames.com/threads/xbox-modchip-design-discussions.66612/
     
  19. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    477
    Likes Received:
    181
    I'll hold on distributing any sources while I actively support the modchips I make and sell. I want to avoid a potential situation where people would create clone units, sell them but redirect any customer issues to me when trouble arise.

    I will happily spend the necessary time to help people who have a Xblast Lite but I don't want to be the bad guy that turns my back on a user who has issues with a potentially poorly made clone. I'd probably be partly blamed for it not working anyway. I don't want to deal with that.

    Once I pull the plug on the support, I'll release everything. In the meantime, you can have a look at the hkmod cpld leak archive (hosted on Eurasia.nu) and the milksop and/or filtror vhdl sources from Andy Warmcat (through Wayback Machine). Back in the days, I used one of the vhdl source in hkmod cpld pack to base my code. It didn't last long but it was what helped me to start. Milksop might be a better source, I didn't knew its existence until I was over designing my modchip so I have not extensively looked at it but it does look better.
     
  20. one_eyed_monk

    one_eyed_monk Active Member

    Joined:
    Jul 11, 2017
    Messages:
    27
    Likes Received:
    19
    I did not look at the hkmod cpld leak archive since you mentioned that it was not well written and will not work as is. I did look at the sources from Andy Warmcat, but those were meant for the ideal case with LFRAME control (xbox version 1.0/1.1) and a different flash/memory device. There were 2 issues that these sources did not address for me and I think they are the most important for xbox modchip development:

    1. How to compensate for the missing LFRAME?
    2. How to translate/multiplex the read address from the MCPX into the LPC flash device memory space?
    3. How to effectively disrupt the LFRAME signal in xbox version 1.6?

    I did some research online and I found a bunch of articles from you that gave me an insight on how to proceed. You seem to be the definitive source for everything xbox modchip ;)

    Anyways, thanks for the help. This is a great learning experience for me.
     

Share This Page