Hello everyone, So I had a few Aladdin XT mods laying around. I wasn't really interested into using them because they simply offered the possibility of booting from a 256KB BIOS. Not much more useful compared to a TSOP mod unless you want a dual boot system. 1.6(b) Xbox could do just fine with a softmod. SST49LF080A flash chip is 1MB in size and uses the same commands as it's now obsolete brother, SST49LF020(A). Of course the range of addresses is not the same so a simple chip swap wasn't going to do it. So I took the liberty to develop a new code for this modchip. I started off by modifying the "leaked" Aladdin CPLD VHDL sources from hkmod but it quickly got almost all rewritten. After some probing with the logic analyser and lots of code revisions, I was able to boot from the new flash chip. Up to this point I have 3 versions of my code: Dual 512KB banks Single 1MB bank with write protect switch Single 256KB bank with write protect switch All 3 versions have these features: 1.0 to 1.6(b) support (not all Xbox revisions were tested, 1.0 and 1.6 worked fine) Full BIOS read and write support in EvolutionX and Gentoox Loader (other tools are not tested but should work too if they support 49LF080A) Optional bank/flash protect switch Long power press disable modchip (not 100% tested, I don't really care for this feature. Theorically it should work) Hot-swapable Proper LFRAME signal release (1.6(b) are the only consoles that benefit from this) UPDATE: I will upload a new version soon. I messed up a little concerning the "long power press disables the modchip". Turns out my code works the other way around... Short power press disables the modchip and long power press enables it. I like it better the other way around (the way I originally intended it to be). I also have some other features I could implement. I'll need to test them first so that's why I'm not uploading any here for now. So for the skepticals, here's the video proof of the dual bank version, made on a 1.6 Xbox: For the still skepticals here are the programmable bitstreams in both JED and SVF formats. The single archive contains the 3 versions: 1MB Dual 512KB Banks 1MB Single bank with write protect 256KB Single bank with write protect An archive is attached to this post. The archive also contains the Aladdin XBlast variant of the mod which grants full OS control over the Aladdin XT as like other 4th gen modchips. For more info on Aladdin XBlast, please visit this thread. Specific installation info on this mod is the following. So beside your Aladdin XT modchip, all you need is the new flash chip and optionally at least a SPST switch. For the rest of the installation instructions, please refer to the regular Aladdin XT installation schematics for missing info. A picture of a temporary installation on a 1.6: The looped blue wire is for simulating either a long or short power press. The other dangling wire is for Xbox LFRAME signal control. Wire should be as short as possible as timing is a little tight. However, it can still be somewhat long as you can see in the following screenshot: Novice installers should not have too much trouble making it work. Pre-emptive FAQ Q1. How to I program my Aladdin XT with this new code? A. You will need a JTAG adapter that works for this chip. You can make a cheap parallel cable following the schematic here: View attachment lattpsch.pdf . I made this one for myself and it works with "ispVM System", the download tool from Lattice ispLEVER Classic software suite. You can probably use urJTAG and any supported adapter it to program the CPLD. Just remember to power your board with +3.3V. Q2. Where do I get the SST49LF080A flash chip? A. Digikey, Farnell, MicrochipDirect, etc. or less reliable suppliers on eBay and others. Q3. How do I initially program the new flash chip? A. You can make yourself a CheapLPC programmer or use any "universal" programmer (I used a TL866CS) that supports this flash chip. You can also hotswap to flash it from the Xbox. Q4. What if I don't want to install the optional switch to benefit from dual banks/write protect? A. You don't need to! The only draw back will be that you'll only have access to the second bank of the 2, in the case you select the dual bank version. With the other versions of the code, write protect will be disabled and you'll always have full read and write access to the chip at any time. Q5. How does your code releases Xbox LFRAME signal while other modchip makers do not (except for SmartXX)? A. My guess is they either didn't thought about it during coding, it wasn't a know fact that grounding LFRAME was a bad idea or they didn't knew how to implement it. My implementation differs from the usual way of disabling LFRAME#. Instead of forcing it to GND, I do the exact opposite: I force the signal to a logical '1' only when it drops to signal the Xyclops chip the start of a LPC transfer cycle. So effectively, the Xyclops chip never receives the start signal to initiate a LPC cycle and sits idle forever. The benefit is that the modchip holds the LFRAME signal only about 15ns every LPC cycle. LPC cycles are only initiated for BIOS read/write and every now and then when you need to access the modchip (LCD or special modchip features). Another benefit is that the current needed to drive LFRAME# "up" is far less than what's required to force it to GND. A single IO pin of the LC4032V (CPLD) can supply enough current to do this. This means less stress and heat on the MCPX chip, which normally drives the LFRAME# signal. Q6. Help! My Xbox will not boot or boots inconsistently using L1 LFRAME control signal. A. First of all, L1 is only for 1.6 and 1.6b Xbox revisions. Second, try to reduce the length of the wire, use small wiring gauge (I use 30AWG). If it still doesn't work, use D0 instead. Q7. Do you know that the SST49LF160C LPC flash chip exist and that it's 2MB in size? A. Yes I know, it's not 100% compatible. There's not enough "space" in the LC4032V to make it work like with the 49LF080A. BIOS Reading is possible but not writing (so no BIOS flashing from Xbox) *using current Xbox apps*. This chip uses a different set of commands to erase and program the memory array. A new Xbox app would have to be created to send the proper commands to this chip. Also, I don't really care for 2MB flash, dual 512KB or single 1MB banks are fine with me. Q8. Why make a 256KB version when we can now use a 1MB chip? A. My first development steps were to replicate the behavior of the stock Aladdin XT modchip. Only once this done I could move to the 1MB versions. I figured I would release it as well if anyone would like to benefit from either write protect or LFRAME release features without upgrading their flash chip. Q9. Will you sell me a Aladdin XT? A. Currently, I am selling 2 units I used for development but I don't have plans sell any more after those. If there's enough demand I will consider selling a batch. My guess is that there will be enough opportunistic sellers profiting from my work. But... if you want to congratulate or thank me, you can always buy me a beer (or additional development gear!) here: Thank you! Q10. You don't reply very fast to your PMs and/or forum posts... A. No I don't, deal with it. Q11. Do you plan on making any further development on this project? A. Not on the Aladdin XT, unless there's a major bug to be found. However, I do have another project that is based on this code...... Q12. Will you release the VHDL source code? A. No, not now. Don't bother asking why if you don't want Q10 to especially apply to you. Q13. Will your code work on a Aladdin XT with LCD support (LC4064 chip)? A. Maybe but my guess is no. Also, if it were to work, you would lose the LCD. Q14. I have issues with this new mod! Help me! A. Please search the forums first and then start a public thread to discuss about your issue. Chances are that if you have a problem, someone else might encounter the same. Better share the knowledge! So now you can enjoy almost any BIOS on your "inferior" Aladdin XT modchip.