Good that you found that bug so quickly, thanks! I've uploaded v1.5 just a few hours ago (and didn't even announce it anywhere yet). Ah, yes, I'm gettiing the same problem when booting DSi System Flaw cartridge. Hmmmm, the problem is related to these new/additional TSC writes:ChampionLeake wrote:Hello, I just recently updated to Unlaunch 1.5 for hiyaCFW (on a native 1.4U console) and I only came upon 1 problem. SysNAND's touch functionality works on the system menu but once I use emuNAND(hiyaCFW), touch functionality stops working on the system menu.
Code: Select all
switch to TSC bank 00h
TSC[0:25h]=00h ;DAC Flag Register (00h) (R)
TSC[0:26h]=00h ;DAC Flag Register (00h) (R)
TSC[0:27h]=00h ;Overflow Flags (00h) (R)
TSC[0:36h]=03h ;SDIN (IN Pin) Control (02h or 03h)
TSC[0:75h]=2Ch ;VOL/MICDET-Pin Gain (xxh) (R)
switch to TSC bank 01h
TSC[1:20h]=D4h ;..already? Class-D Speaker Amplifier
TSC[1:2Ah]=14h ;..already? SPL Driver (Left Speaker)
TSC[1:2Bh]=14h ;..already? SPL Driver (Right Speaker)
TSC[1:32h]=61h ;Input CM Settings
switch to TSC bank 03h
TSC[3:02h]=98h ;SAR ADC Control 1 (00h)
TSC[3:03h]=87h ;SAR ADC Control 2 (00h)
TSC[3:04h]=22h ;Precharge and Sense (00h)
TSC[3:05h]=04h ;Panel Voltage Stabilization (00h)
TSC[3:0Eh]=ADh ;Reserved / Undocumented (read by DSi for Pen Down Test) (0Fh)
TSC[3:0Fh]=A0h ;Scan Mode Timer (40h)
TSC[3:10h]=88h ;Scan Mode Timer Clock (81h)
switch to TSC bank 00h (as default state)
Okay, I've uploaded another update, unlaunch v1.6, that's having those TSC writes removed again. Half of them were nonsense anyways as they were writing to read-only bits; and at least one of the write-able bits must have caused the problem.
The reason for having that stuff (and half a dozen other changes) in v1.5 was trying to get DSi Sound working, the changes didn't really help on that issue, but I had hoped that they would improve some details in other situations, without screwing up things.
DSi Sound itself didn't work because that specific title is actually requiring Main RAM to be zerofilled. So I am now doing that zerofilling for best compatibility, although it's slowing down the boot process and not needed for most other titles. The good thing is that I found out that zerofilling can be made a bit faster when using the new NDMA fill-mode:
Code: Select all
;benchmarks for filling 0ff8000h bytes (15.9MB) Main RAM with all program code residing in VRAM
;263ms via NDMA3 on ARM7 when SRC=FILLWORD in NDMA.FILLDATA ;<-- best
;265ms via NDMA3 on ARM9 when SRC=FILLWORD in NDMA.FILLDATA
;344ms via STMIA in VRAM code on ARM7 by software zerofill
;369ms via STMIA in VRAM code on ARM9 by software zerofill (with parts of main ram having write-cache)
;393ms via NDMA3 on ARM7 when SRC=FILLWORD in ARM7.WRAM
;393ms via DMA3 on ARM7 by hardware zerofill
;393ms via DMA3 on ARM9 by hardware zerofill
Code: Select all
carthdr[0B0h]="DoNotZeroFillMem"
I've no idea what has fixed that issue, but if it's working stable now then it's just fine. Oh, I just noticed that I've disabled a few more changes (apart from the TSC writes) in v1.6. So maybe I've thrown you back to freezing state with that newly removed changes. Please let me know if v1.6 is still working for you. If it isn't then that does at least help to track down what was causing the problem : )edo9300 wrote:Updated to 1.5, and finally it no longer freezes
Alright, and here are the URLs and release notes for the updates...
http://problemkaputt.de/unlaunch.htm - unlaunch
http://problemkaputt.de/gba.htm - no$gba
http://problemkaputt.de/wifiboot.zip - wifiboot
Code: Select all
v1.6 30 Sep 2018
- re-fixed dsi touchscreen input
v1.5 30 Sep 2018
- co-releases: no$gba v2.9b and wifiboot v2.3
- zerofill main ram support added (needed for a few titles like DSi Sound)
- zerofill done via fast NDMA-fill (16MbyteDSiMode=263ms, 4MbyteNdsMode=66ms)
- zerofill skipped if carthdr[0B0h]="DoNotZeroFillMem" (fastboot for homebrew)
- memory moved exploit entry code to gap between 37F0E3Ch and 37F22C8h
- memory shares cluster_buf as rom_cart_xxx buffers (for sd/mmc vs rom carts)
- moved wifi firmware load prior to cartload (so wifi can trash main ram)
- added warnings on unsupported cluster sizes (too small or too large)
- allows FFFFh as 'valid' camera id (for consoles with broken camera/cables)
- speedup: uses DMA for modcrypt (some dsiwares have HUGE modcrypt regions)
- added warning on unknown chinese firmware & unknown old firmwares from 2008
- added uninstall function (dealloc clusters, change filesize, unprotect)
- added warning about uninstall function (prompt X+Y buttons to confirm)
- initializes microphone MIC_CNT, teak DSP_xxx, stop/clear NDMA before title
- vram_code (moved unlaunch to vram; faster & leaves main ram to loaded title)
- gif: much faster gif decoder (r0-r12 instead ram, faster code table)
- gif: simplified gif decoder (no interlace, without wrap at image width)
- gif: special edition themed on broken arrow cold war nuclear accidents
- added support for modcrypt with more than FFFFh blocks (eg. dsi sound)
Code: Select all
30 Sep 2018 - version 2.9b
- web: created no$project patreon page, https://www.patreon.com/martin_korth
- dsi/emu: allows 8bit vram writes on dsi (if enabled in SCFG_EXT9.bit13)
- dsi/help: added note on dsi debug blowfish key used when SCFG_OP nonzero
- carthdr/help: added carthdr[0B0h] "DoNotZeroFillMem"=unlaunch fastboot ID
- dma/help: added note on dma-fill via 40000Exh being slower than stmia/ndma
- dsi/help: added note on broken cameras being more common than unknown cameras
- dsi/tsc/iomap: shows tsc page 0,1,3 registers (page 3 is hidden in aes tab)
- dsi/tsc/emu: basic emulation for reading/writing tsc page 0,1,3 registers
- dsi/startdirect: initializes GPIO registers (sound,powerbutt,wifimode)
- a22i: throws error message on forward references within .pack blocks
- nds/cart: supports flashcarts with arm9 code below offset 4000h (ievolution)
- nds/bugfix: resurrected BG0CNT/BG1CNT.bit13 (unlike GBA) (thanks chocoreep)
- dsi/help: info about ST NAND02G AH0LZC5 emmc chips (thanks barawer+trade girl)
- dsi/emmc: emulates different eMMC CSD's (matched to four known eMMC CID's)
Code: Select all
wifiboot v2.3 - 30 Sep 2018
- added carthdr[B0h]="DoNotZeroFillMem" for unlaunch/fastboot without zerofill
- forces disabled cache to be MADE EMPTY before starting loaded title
- zerofills vram/oam/palette before starting other titles (takes about 6ms)