1 poin oleh GN⁺ 2023-09-24 | 1 komentar | Bagikan ke WhatsApp
  • Nintendo 3DS adalah konsol portabel dari era ketika smartphone dan app store sedang berkembang pesat, yang menggabungkan 3D stereoskopis tanpa kacamata, layar ganda, CPU kompatibel mundur, dan beragam I/O dalam struktur SoC yang kompleks
  • LCD atas 800×240 menampilkan dua frame 400×240 sekaligus dengan piksel setengah lebar dan parallax barrier, sementara slider kedalaman dan pelacakan wajah pada New 3DS mengurangi masalah sudut pandang dan kelelahan mata
  • Model dasar menggunakan ARM11 MPCore 2-core 268MHz, FCRAM 128MB, GPU DMP PICA200, dan DSP CEVA TeakLite II, sedangkan New 3DS menambahkan 4-core 804MHz, FCRAM 256MB, NFC, dan sistem tampilan stereoskopis yang ditingkatkan
  • Di dalamnya, selain ARM11, juga terdapat ARM946E-S untuk DS dan ARM7TDMI untuk GBA, sehingga dapat beralih ke mode Native 3DS, Nintendo DSi, dan Game Boy Advance, tetapi pengembang biasanya hanya menangani ARM11 MPCore secara langsung
  • Sistem operasi dan keamanannya terdiri dari NATIVE_FIRM, TWL_FIRM, AGB_FIRM, SAFE_FIRM, Boot9/Boot11, serta rantai kepercayaan berbasis AES/RSA/OTP, dan melalui berbagai kerentanan, ekosistem homebrew dan custom firmware pun berkembang

Keluarga model dan generasi hardware

  • Nintendo merilis beberapa model revisi sepanjang siklus hidup 3DS untuk membagi rentang harga dan segmen pengguna
  • Dari sudut pandang arsitektur, modelnya terbagi menjadi 6 jenis
    • Nintendo 3DS (2011), Nintendo 3DS XL (2012): berbasis arsitektur asli, dan perbedaan utama antara XL dan non-XL adalah ukuran layar
    • Nintendo 2DS (2013): model murah yang menghapus layar stereoskopis dan memakai bentuk yang terinspirasi dari Game Boy
    • New Nintendo 3DS (2014), New Nintendo 3DS XL (2015): menambahkan upgrade hardware, pembaca NFC, lebih banyak tombol, dan sistem stereoskopis yang ditingkatkan
    • New Nintendo 2DS XL (2017): model murah yang menghilangkan fitur stereoskopis dari New Nintendo 3DS XL
  • Patokan umum untuk game adalah Nintendo 3DS asli, sementara seri New memiliki perbedaan hardware tersendiri yang cukup besar

Layar 3D tanpa kacamata

  • Nintendo 3DS dibekali dua LCD seperti penerus Nintendo DS, dan layar atas memiliki spesifikasi 800×240 piksel untuk menampilkan kesan kedalaman
  • Efek stereoskopis menggunakan prinsip stereoscopic parallax seperti pada Virtual Boy
    • Menampilkan gambar yang sedikit berbeda ke mata kiri dan mata kanan
    • Perbedaan posisi pusat kedua gambar membuat objek terasa berada di depan atau belakang
  • LCD atas secara fisik tersusun dari piksel setengah lebar dan bekerja dalam dua mode
    • Mode 2D: dua piksel horizontal diperlakukan sebagai satu
    • Mode 3D: semua piksel digunakan secara individual untuk menampilkan dua frame 400×240 sekaligus
  • Parallax barrier memisahkan cahaya latar di belakang piksel LCD sehingga masing-masing mata melihat subset piksel yang berbeda
  • Pendekatan ini memiliki keterbatasan
    • Membutuhkan kecerahan tambahan sehingga memengaruhi daya tahan baterai
    • Jika layar miring terhadap posisi mata, dua frame paralaks bisa tampak bercampur dan kelelahan mata dapat meningkat
    • Karena membutuhkan posisi tetap dan mata cepat lelah, fitur 3D bisa terasa merepotkan
  • Slider kedalaman 3D menyesuaikan efek kedalaman dengan memperbesar atau memperkecil perbedaan antara dua frame
  • New 3DS mengurangi masalah kemiringan dengan pelacakan wajah menggunakan kamera depan dan LED inframerah
  • Bagi game, GPU harus merender dua frame dengan sedikit pergeseran dari adegan yang sama, seperti saat menggambar frame biasa
    • API resmi menyediakan rutinitas untuk menyusun dua matriks proyeksi

CPU, memori, dan struktur kompatibilitas mundur

  • SoC utama, CPU CTR, memuat sebagian besar sistem selain media penyimpanan dan RAM
  • Nintendo bekerja sama dengan ARM untuk membangun klaster CPU berbasis ARM11 MPCore
    • 3DS asli: 2 inti MP11, masing-masing 268MHz
    • New 3DS: 4 inti MP11, masing-masing 804MHz, dengan cache L2 2MB bersama
  • ARM11 memakai set instruksi ARMv6k, dan juga mencakup komponen seperti Thumb, Jazelle, dan VFP
    • ARMv6 menyediakan instruksi SIMD integer dan instruksi load/store untuk sinkronisasi multicore
    • VFP11 mempercepat operasi floating point presisi tunggal 32-bit dan presisi ganda 64-bit serta mengikuti IEEE 754
  • Setiap inti MP11 memiliki pipeline 8 tahap, prediksi cabang dinamis dan statis, koprosesor bantu kontrol sistem CP15, cache instruksi 16KB, dan cache data 16KB
  • Inti-inti ARM11 terhubung melalui bus AXI milik ARM, dan Snoop Control Unit pada MPCore menjaga koherensi cache L1
  • Selain ARM11, 3DS juga memiliki dua CPU lain
    • ARM946E-S: dalam mode Native 3DS berfungsi sebagai prosesor bantu keamanan dan I/O yang dikelola OS, dan menjadi prosesor utama saat menjalankan game DS/DSi
    • ARM7TDMI: dalam mode DS/DSi berfungsi sebagai prosesor bantu, dan dalam mode GBA menjadi CPU eksekusi utama
  • Ada tiga mode operasi
    • Native 3DS mode: ARM11 menjalankan game 3DS, ARM9 menangani I/O dan keamanan, dan ARM7 dimatikan
    • Nintendo DSi mode: ARM9 dan ARM7 menjalankan game DS/DSi, sementara ARM11 membantu hardware DS yang hilang atau direlokasi
    • Game Boy Advance mode: ARM7 mengeksekusi instruksi game GBA, sedangkan ARM11 dan ARM9 memberi dukungan latar belakang
  • Konfigurasi memorinya kompleks
    • 3DS asli menyediakan FCRAM 128MB dari sudut pandang pengembang, sedangkan New 3DS menyediakan FCRAM 256MB
    • ARM11 memiliki SRAM 512KB untuk tujuan keamanan
    • ARM9 memiliki SRAM 1MB, dan SRAM 1.5MB pada New 3DS
    • ARM9 juga memiliki TCM instruksi 32KB dan TCM data 16KB
  • FCRAM adalah Fast Cycle DRAM yang dibuat Fujitsu dan Toshiba pada 2002, dengan tujuan latensi lebih rendah daripada DRAM pada pembacaan tidak berurutan
  • Konfigurasi DMA juga disertakan
    • XDMA di sisi ARM9 menyediakan hingga 4 kanal
    • CDMA di sisi ARM11 menyediakan hingga 8 kanal
    • New 3DS menambahkan satu lagi CoreLink DMA-330 di sisi blok ARM11
  • Pengembang 3DS umumnya hanya mengakses ARM11 MPCore, dan program ditulis dengan model multithreading berbasis thread
  • Pada New 3DS, jika metadata game menandai bahwa game ditujukan untuk model baru, OS akan mengaktifkan fitur seperti clock lebih cepat, RAM tambahan, dan cache L2
    • Jika tidak, hardware khusus New dinonaktifkan demi kompatibilitas
    • Game dapat memuat codebase untuk versi Old dan New sekaligus

Pipeline grafis dan PICA200

  • Nintendo 3DS adalah perangkat pertama dalam lini handheld Nintendo yang memakai inti IP dari vendor GPU alih-alih PPU buatannya sendiri
  • Nintendo melisensikan PICA200 dari DMP dan menempatkannya di dalam CPU CTR SoC, dan GPU berjalan pada 268MHz
  • PICA200 adalah prosesor 3D berdaya rendah, kompatibel dengan OpenGL ES 1.1, dan menggunakan arsitektur Maestro 2G dengan ekstensi elemen OpenGL ES 2.0
  • Tahap piksel memiliki struktur fungsi tetap, tetapi Maestro functions menyediakan pencahayaan fragmen, algoritme multi-bayangan, pembelahan poligon, bump mapping, tekstur prosedural, dan berbagai efek kabut
  • VRAM khusus GPU hanya 6MB, sehingga programmer harus menaruh perintah, buffer, dan tekstur berulang yang perlu diakses segera di VRAM, lalu menempatkan sisanya di FCRAM
    • PICA200 memiliki DMA untuk transfer antara FCRAM dan VRAM
  • Pengendali LCD tidak langsung memahami format render buffer milik PICA200, sehingga diperlukan framebuffer LCD terpisah
    • Minimal diperlukan 3 buah untuk mata kiri layar atas, mata kanan layar atas, dan layar bawah
    • Untuk menghindari artefak, dapat disediakan set duplikat untuk page flipping
  • Saat bermain game, GPU biasanya merender tiga layar
    • Atas kiri: 400×240
    • Atas kanan: 400×240
    • Bawah: 320×240
    • Semuanya memakai warna RGB 8-bit dan dapat menampilkan hingga 16,78 juta warna
  • Pipeline PICA200 terdiri dari tahap command, vertex, geometry, rasterizer, fragment, dan post-processing
    • Tahap command membaca command buffer untuk menggambar poligon
    • Tahap vertex memakai 4 Vertex Processor secara paralel, tetapi jika geometry shader diaktifkan hanya 3 yang bisa dipakai
    • Tahap geometry mengambil satu Vertex Processor dan memakainya sebagai shader terpisah
    • Tahap fragment terdiri dari 4 texture unit dan unit shading
    • Tidak ada pixel shader, melainkan kombinasi 6 color combiner dan fungsi Maestro
    • Tahap post-processing dapat melakukan uji alpha, stencil, dan depth, serta blending dan supersampling 2×2
  • New 3DS tampaknya menambahkan DSP bernama MVD, yang melakukan dekompresi H.264/MJPEG dan konversi YUV-to-RGB
    • Tampaknya dipakai browser web New 3DS untuk pemutaran video yang dipercepat
  • PPU untuk game DS dan GBA juga ada di dalam SoC
    • Game DS/DSi/GBA memakai PPU seperti pada perangkat keras aslinya
    • Output dikirim ke framebuffer melalui LgyFB dan ditampilkan oleh PICA200
    • Struktur ini menambah latensi, tetapi pada praktiknya dapat diabaikan oleh pengguna

Audio dan I/O

  • SoC memiliki 2 blok audio
    • DSP khusus untuk game 3DS
    • CSND keluarga DS yang dipakai game 3DS, DS, dan GBA
  • DSP khusus 3DS adalah CEVA TeakLite II dan berjalan pada sekitar 134MHz
    • Menghasilkan stereo 2 kanal, hingga sampling 32kHz, dengan resolusi 16-bit
    • Memakai RAM 512KB sebagai ruang kerja DSP, dengan double buffering 256KB per bagian
    • DSP dapat mencampur sampel ADPCM dan PCM hingga 24 kanal
  • Program mengunggah firmware DSP buatan Nintendo yang disertakan dalam SDK resmi saat runtime, dan layanan audio OS mengabstraksikan komunikasi dengan DSP
  • CSND menyediakan 32 kanal, dua kali lebih banyak daripada blok padanannya pada DS
  • I/O eksternal lebih mencerminkan upaya bersaing dengan smartphone daripada konsol handheld biasa
    • Tombol digital, Circle Pad analog, slider 3D dan volume, sakelar Wi-Fi
    • Sensor sentuh resistif, giroskop, akselerometer
    • 1 kamera depan dan 2 kamera belakang
    • Transceiver inframerah, slot kartu SD, jack 3,5mm, pembaca game card
  • New 3DS menambahkan I/O tambahan
    • 2 tombol digital, C-Stick, pembaca NFC di layar bawah
    • LED inframerah untuk pelacakan wajah
    • Slot microSD menggantikan SD
    • Sakelar Wi-Fi dihapus dan dikendalikan lewat perangkat lunak
  • Antarmuka internal dibagi menjadi SPI, HID, I²C, periferal berkecepatan tinggi berbasis FIFO, dan MCU
    • SPI menghubungkan flash untuk penyimpanan game card, manajemen daya DS, sebagian Wi-Fi, touchscreen, suara, mikrofon, Circle Pad, dan lainnya
    • HID membaca keypad digital sebagai register 16-bit
    • I²C menghubungkan kamera, transceiver inframerah, NFC, modul pelacakan wajah QTM, giroskop, MCU, dan lainnya
    • eMMC dan slot SD terhubung sebagai periferal 16MB/s melalui register FIFO
  • Auxiliary Microcontroller adalah MCU 78K0R yang dirancang NEC dan diproduksi Renesas, yang mengelola LCD, LED, manajemen daya, baterai, RTC, slider 3D, tombol HOME/daya, dan lainnya
  • Layanan berbasis I/O mencakup QR Reader, AR Games, Face Raiders, Amiibos, SpotPass, StreetPass, dan Play Coins

Sistem operasi dan struktur boot

  • Nintendo 3DS menyimpan beberapa firmware untuk menyediakan eksekusi native, kompatibilitas mundur, dan mode pemeliharaan
    • NATIVE_FIRM: menjalankan fungsi native 3DS dan ARM11 mengeksekusi program utama
    • TWL_FIRM: membuat 3DS berperilaku seperti Nintendo DSi, dengan ARM9 dan ARM7 berada di garis depan
    • AGB_FIRM: membuat 3DS berperilaku seperti Game Boy Advance, dengan ARM7 mengeksekusi program utama
    • SAFE_FIRM: dipakai untuk tugas pemeliharaan seperti pembaruan sistem
  • Dalam NATIVE_FIRM, ARM9 dan ARM11 masing-masing menjalankan peran OS terpisah
    • ARM9 menjalankan Kernel9 dan Process9, serta menangani keamanan, enkripsi, I/O, sistem berkas, verifikasi dan instalasi title
    • ARM11 menjalankan Kernel11 dan berbagai proses pengguna, serta menyediakan jaringan, HOME Menu, eksekusi aplikasi, dan abstraksi layanan perangkat keras
  • Scheduler ARM11 tidak memperlakukan core sebagai core general-purpose biasa
    • Core pertama, appcore, ditujukan untuk game dan memakai penjadwalan FIFO
    • Core kedua, syscore, untuk tugas sistem dan dapat meminjamkan 30% waktu eksekusinya ke aplikasi pengguna
    • Core MP11 keempat pada New 3DS didedikasikan untuk pelacakan wajah
    • Core MP11 ketiga pada dasarnya tidak dijadwalkan sehingga sebagian besar menganggur
    • CDMA tambahan pada New 3DS hanya dapat diakses saat boot dan setelah itu tidak dipakai
  • RAM yang benar-benar bisa dipakai aplikasi lebih kecil daripada total FCRAM
    • 3DS asli: 64MB default dari 128MB
    • New 3DS: 124MB default dari 256MB
    • Dengan flag APPMEMTYPE, perangkat dapat boot tanpa menampilkan HOME Menu sehingga tersedia hingga 96MB dan 176MB
  • Media penyimpanan terdiri dari Boot ROM, OTP, eMMC NAND, dan SD/microSD
    • Boot9 dan Boot11 adalah ROM untuk boot dan disembunyikan demi keamanan
    • OTP berisi informasi unik konsol dan kunci enkripsi yang ditulis sekali saat produksi
    • eMMC NAND menyimpan data sistem, firmware, dan data pengguna mode 3DS/DSi
    • SD/microSD menyimpan perangkat lunak eShop, data simpanan, foto, rekaman, dan lainnya, serta dilindungi dengan AES-128-CTR
  • Saat boot, Boot9 pada ARM9 berjalan lebih dulu, membangunkan Boot11 pada ARM11, lalu memverifikasi header NCSD dan partisi firmware di NAND
    • Hash SHA-256 dan tanda tangan RSA-2048 diverifikasi untuk mencari firmware yang valid
    • Jika gagal, sistem mencoba boot dari flash modul Wi-Fi, dan jika ini juga gagal akan menampilkan layar error
    • Setelah NATIVE_FIRM dimuat, alurnya berlanjut ke Kernel9, Process9, Kernel11, proses sistem, NS, HOME Menu, atau game
  • HOME Menu adalah shell navigasi satu halaman yang menampilkan aplikasi terpasang dalam grid yang bisa digulir
    • Modul NS juga menyediakan pemanggilan Applet seperti overlay tombol HOME dan keyboard virtual
    • Pada New 3DS, meskipun game berjalan dalam mode kompatibilitas, Applet dan rutinitas NS tetap dapat memakai seluruh perangkat keras
  • Pembaruan sistem dapat dilakukan secara online atau lewat cartridge game
    • Cartridge hanya memuat pembaruan sistem tanpa pembaruan aplikasi pengguna
    • Pembaruan jaringan memuat paket lengkap
    • Instalasi dilakukan oleh System Updater setelah reboot ke SAFE_FIRM

Pengembangan game, distribusi, Virtual Console

  • Ekosistem pengembangan 3DS dipengaruhi oleh industri smartphone berbasis ARM dan perkembangan compiler, tetapi Nintendo masih belum menyediakan toolchain standar
  • Kit pengembangan perangkat keras dipasok oleh Intelligent Systems dan Kyoto MicroComputers
    • CTR-BOX terdiri dari kotak logam yang berisi perangkat keras 3DS dan casing 3DS dummy
    • Flashcard resmi digunakan untuk mendistribusikan prototipe game kepada penguji eksternal
    • Untuk New 3DS, disediakan kit SNAKE
  • SDK resmi mencakup armcc untuk 3DS, debugger, API layanan hardware dan OS, library grafis, packager, library jaringan, audio, dan video, plugin Visual Studio 2010, serta alat dan profiler PICA200
  • Library grafis ada empat jenis
    • GL: API OpenGL ES yang sederhana tetapi lambat
    • GD: alternatif yang lebih cepat yang menghasilkan perintah PICA200
    • GR: API perintah PICA200 yang paling dekat dengan hardware
    • GX: library umum untuk pengelolaan PICA200
  • Media eksekusi game ada tiga jenis
    • Gamecard: dapat memuat ROM 128MB~4GB atau Flash hingga 2GB serta backup memory untuk penyimpanan
    • eShop/SD Card: mendukung distribusi software unduhan, pre-order, dan DLC
    • Local wireless: Download Play berlanjut ke 3DS, dan game yang ditransfer dipasang ke NAND serta hanya memakai satu slot
  • Virtual Console menyediakan game DSiWare, NES/Famicom, Sega Game Gear, Game Boy, dan Game Boy Color melalui eShop
    • Pengguna New 3DS juga dapat mengakses katalog Super Nintendo
    • Sebagian besar berjalan sebagai paket aplikasi yang berisi ROM dan emulator
  • Game Game Boy Advance hanya disediakan secara resmi untuk pengguna Ambassador Program
    • Bukan lewat emulator ARM11, melainkan berjalan secara native di ARM7 melalui AGB_FIRM
    • Game GBA disalin ke FCRAM lalu reboot ke AGB_FIRM sehingga ARM7 mengambil alih kontrol
  • Update game didistribusikan melalui eShop dan berlaku untuk jenis game selain Download Play

Keamanan, anti-pembajakan, homebrew

  • Target utama keamanan 3DS adalah Game/CTR card reader dan sistem operasi
    • Data di dalam kartu CTR menggunakan format NCSD, dan OS menangani autentikasi, verifikasi, serta dekripsi
    • Rantai kepercayaan yang sebenarnya terpusat pada sistem operasi dan struktur boot
  • Terdapat hardware keamanan khusus
    • Flag XN pada ARM11 dan MPU pada ARM9 membatasi eksekusi memori arbitrer
    • ARM9 berfungsi seperti prosesor khusus keamanan dan mengakses blok kriptografi seperti AES, RSA, dan PRNG
    • Mesin AES mendukung enkripsi/dekripsi AES-128, hingga 64 slot kunci, serta mode CTR/CCM/CBC/ECB
    • Mesin RSA menjalankan operasi RSA berbasis kunci publik dan memiliki 4 slot kunci
    • OTP menyimpan kunci unik konsol dan CTCert, sementara CID eMMC juga digunakan untuk obfuscation kunci
  • Rantai kepercayaan berlanjut melalui Boot9, OTP, eMMC, NCSD, NCCH, dan verifikasi Title
    • NCSD dan NCCH memakai tanda tangan RSA-2048 + SHA-256
    • Payload NCCH dienkripsi dengan AES-128 CTR
    • Title ditandatangani dengan RSA-2048, RSA-4096, atau ECDSA dan SHA-256
    • Ticket, yaitu lisensi unduhan eShop, juga ditandatangani dengan RSA-2048 + SHA-256
  • Ada juga kelemahan dalam implementasinya
    • Pengaturan page table AXI WRAM di Kernel11 memberikan izin baca, tulis, dan eksekusi secara luas
    • Sebelum sistem 3.0.0, memori OTP tidak disembunyikan
    • Tidak ada pemisahan hak akses antara Process9 dan Kernel9
    • Tidak ada ASLR dan juga tidak ada perlindungan downgrade sistem
    • Browser web berbasis WebKit menjadi target serangan berulang
  • Homebrew dan pembajakan awal berawal dari flashcard DS
    • DSi dan 3DS berusaha memblokir flashcard dengan whitelist, yaitu daftar kartu yang diizinkan
    • Pabrikan membuatnya teridentifikasi sebagai game lain yang diizinkan dengan cara memprogram ulang header kartrid
  • Pada 2013, Gateway3DS muncul sebagai flashcard 3DS praktis pertama
    • Blue Gateway adalah flashcard DS yang memasang entry point eksploit MSET
    • Red Gateway menyalin kartu game asli dengan FPGA dan microSD
    • Launcher.dat berperan sebagai payload eksploit MSET sekaligus custom firmware
  • Nintendo merespons lewat update
    • 5.0.0-11 sementara waktu memperbaiki eksploit MSET
    • 7.0.0-13 memblokir eksploit kernel dan menambahkan modul RSA ke rantai kepercayaan dekripsi NCCH
    • 9.3.0 menambal eksploit kernel privat milik Gateway3DS
    • Sky3DS masuk blacklist pada 11.0
  • Ekosistem homebrew berkembang dengan libctru, nihstro, Ninjhax, dan Homebrew Launcher
    • Ninjhax memakai fitur kode QR dari Cubic Ninja sebagai entry point
    • GSPWN adalah kerentanan yang menimpa heap HOME Menu melalui GPU DMA
    • Homebrew Launcher menjalankan aplikasi homebrew tak bertanda tangan dalam format .3dsx
  • memchunkhax dan memchunkhax2 memungkinkan eskalasi hak akses Kernel11
    • Dengan memanipulasi memchunk header yang tersimpan di FCRAM, serangan berlanjut ke akses AXI WRAM dan pengambilalihan Kernel11
  • Setelah arm9loader diperkenalkan pada New 3DS di 2015, muncul arm9loaderhax
    • Ini adalah eksploit permanen yang memungkinkan eksekusi kode arbitrer dengan hak akses Kernel9 saat boot
    • Alat seperti Luma3DS, Godmode9, Anemone3DS, dan nds-bootstrap digunakan secara luas
  • Pada 2016~2017, analisis Boot9 melahirkan sighax, boot9strap, dan ntrboot
    • sighax memanfaatkan cacat verifikasi tanda tangan RSA-2048 di Boot9 untuk melumpuhkan rantai kepercayaan
    • boot9strap menjadi bootloader alternatif yang mendukung payload SD card atau boot normal
    • ntrboot memperoleh hak akses Boot9 dengan memanfaatkan flashcard DS, magnet, dan kombinasi tombol
    • Kerentanan ini berada di dalam Boot ROM sehingga tidak bisa diperbaiki lewat update software
  • Metode setelah 2018 berkembang ke arah penyederhanaan instalasi boot9strap
    • seedminer merekonstruksi movable.sed dari Friend Code, nama subdirektori SD card, dan brute force singkat
    • BannerBomb3 memanfaatkan stack overflow pada aplikasi Settings saat parsing banner title DSiWare
    • Jalur SAFE_FIRM berbasis unSAFE_MODE dan safehax, serta jalur menuhax67 dan nimdsphax berbasis HOME Menu, digunakan
  • Update 11.17.0 pada Mei 2023 menambal BannerBomb3, sehingga menonaktifkan salah satu entry point terakhir yang tidak memerlukan perangkat tambahan
    • Setelah itu, pengguna memerlukan eksploit game 3DS legal, flashcard DS yang kompatibel dengan ntrboot, atau eksploit WebKit

1 komentar

 
GN⁺ 2023-09-24
Komentar Hacker News
  • Sungguh mengejutkan bahwa saat menjalankan game Gameboy Advance, ternyata ada CPU GBA fisik sungguhan di dalamnya.
    Saya sudah membaca semua rumor sejak sebelum rilis dan memesan model biru, lalu karena pada awalnya membayar sekitar 250 dolar, saya termasuk dalam Ambassador Program. Ketika Nintendo menurunkan harga secara besar-besaran tak lama setelah peluncuran, sebagai permintaan maaf mereka memberi beberapa game gratis, termasuk game yang tidak ada di eShop, dan saya puas dengan itu.
    Memainkan kembali Mario Kart Super Circuit yang dulu saya nikmati saat kecil dengan slide pad 3DS yang luar biasa rasanya seperti mimpi, dan setelah tahu bahwa game itu berjalan di CPU sungguhan seperti GBA lama saya, kenangannya jadi lebih istimewa.

    • Alasannya bahkan lebih mengejutkan. Karena Nintendo menumpuk kompatibilitas mundur seperti boneka matryoshka, CPU GBA seakan-akan masuk hampir secara kebetulan.
      Nintendo 3DS berisi seluruh struktur sistem Nintendo DSi, dan CPU DSi juga berperan sebagai CPU pengawas sistem. DSi sendiri pada dasarnya adalah struktur Nintendo DS yang sebagian besar di-overclock, sementara dua model awal Nintendo DS juga menyertakan ARM7TDMI milik GBA demi kompatibilitas mundur melalui slot GBA.
      Saat Ambassador Program, Nintendo mendistribusikan firmware AGB_FIRM yang mem-boot 3DS ke mode Game Boy Advance, dan untuk mode Nintendo DS ada TWL_FIRM. Jika sekarang 3DS diretas, software GBA lain juga bisa dimuat, sehingga selain ketergantungan pada periferal, game GBA dapat dijalankan dengan akurasi yang pada dasarnya sempurna.
    • Sony juga memakai cara serupa.
      PlayStation 2 membutuhkan chip input/output, dan Sony memilih CPU PS1. Saat menjalankan game PS1, eksekusinya dialihkan ke sana.
      Kalau ingatan saya benar, PlayStation 3 awal memiliki CPU dan GPU PS2, tetapi sepertinya tidak banyak berperan saat tidak menjalankan game PS2. Kemungkinan besar kemudian dihapus untuk menekan biaya ketika beralih ke emulasi.
    • Memasukkan CPU Gameboy Advance fisik sungguhan adalah trik lama, tetapi tetap keren.
      GBA juga memasukkan CPU GBC untuk kompatibilitas mundur, dan modenya dialihkan lewat sakelar fisik yang ditekan oleh kartrid itu sendiri. PS2 juga menggunakan kembali CPU PS1 sebagai komponen input/output di papan untuk kompatibilitas mundur, dan seingat saya komponen lain dibantu emulasi.
    • Walmart mulai menjual dengan harga yang sudah diturunkan beberapa hari sebelum pemotongan harga resmi dan pendaftaran Ambassador Program berakhir.
      Berkat postingan Reddit, saya bisa membelinya dengan harga rendah sekaligus mendapatkan game gratis. Saya hampir tidak memainkan game gratisnya, tetapi rasanya seperti berhasil mengakali sistem.
    • CPU GBA adalah bagian dari CPU NDS, jadi memang ada di dalam 3DS.
  • 3DS memulai dengan sangat lambat, tetapi pada akhirnya menjadi salah satu konsol favorit pribadi saya.
    Karena saya tidak pernah punya N64, saya pertama kali memainkan Ocarina of Time dan Majora’s Mask lewat remaster 3D yang sangat bagus. Kompatibilitas mundur penuh dengan DS juga menjadi nilai plus besar, dan untuk menghindari pembesaran layar dengan skala non-integer yang tampak buruk, game harus dijalankan sambil menekan Start.
    Cakupan homebrew dan emulasi yang didukung pada perangkat yang di-softmod juga luas, membuatnya menjadi perangkat kecil yang sangat menarik. Saya juga sangat menyukai desain New 3DS kecil, sampai membeli banyak faceplate yang bisa diganti-ganti dengan tampilan main-main yang keren.
    Hal lain yang benar-benar menyenangkan adalah ketika baterainya mulai menua, saya bisa menelepon Nintendo dan membeli dua baterai resmi baru untuk perangkat saya dan milik istri. Harganya sekitar 15 pound per unit, dan bisa diganti tanpa membongkar perangkat. Cara seperti ini kini jarang terlihat.

  • Saat pandemi, karena ADHD, saya akhirnya membeli sampai 3 unit New Nintendo 3DS XL.
    Salah satunya saya impor dari Jepang lalu saya ubah ke ROM Amerika Serikat. Saya sangat menyukainya untuk bepergian. Efek 3D-nya keren, bagus juga karena bisa dimatikan, dan daya tahan baterainya sangat baik.
    Namun seperti semua hobi, saat barang menjadi langka, muncul keinginan untuk mengoleksi, padahal saya tidak bisa memainkan 3 konsol sekaligus, jadi sepertinya sekarang harus saya lepas.

    • Kalau punya 3 konsol, Anda harus mencoba Tri Force Heroes bersama dua teman.
    • Kalau ada cara untuk mencegah baterainya rusak, atau jika nantinya bisa mendapatkan baterai pengganti, rasanya saya akan menyimpannya saja.
      Dulu saya membeli New Nintendo 2DS XL; itu adalah iterasi terakhir lini DS dan bisa menjalankan game DS, DSi, dan 3DS. Game yang dirilis khusus untuk DS “new” hanya sedikit, jadi perangkat ini mendukung sekitar 15 tahun sejarah game.
      Saya mencoba membeli game DS setiap kali melihatnya, tetapi sekarang sudah sulit menemukan harga yang bagus, dan beberapa judul seperti Bravely Default masih sekitar 60 euro di sekitar sini. Di DS juga ada sangat banyak game produksi massal yang buruk, jadi yang seperti itu saya lewati.
  • Menjadikan pengaturan kedalaman 3DS dapat diatur dengan slider fisik yang sangat mudah dijangkau adalah desain yang jenius.
    Saya tidak tahu hasil riset apa yang membuat mereka mengatur inti fitur 3D dengan cara seperti ini, tetapi itu membuat perbedaan besar pada kegunaan fitur 3D.

    • Seharusnya sekarang layar dengan ekspresi kedalaman sudah menjadi fitur umum perangkat layar sentuh.
      Karena ada Face ID, perangkat bisa tahu seberapa jauh jarak antar mata, dan nilai slider itu juga bisa disesuaikan otomatis.
  • Tulisan ini adalah bagian dari seri yang luar biasa: https://www.copetti.org/writings/consoles/

  • Salah satu fitur favorit saya di 3DS yang sudah dijailbreak adalah aplikasi NSUI: https://3ds.eiphax.tech/nsui
    Berkat rilis Virtual Console resmi, beberapa game Nintendo lama bisa dimainkan di 3DS, dan wrapper yang sama bisa dipakai untuk game apa pun dari sistem yang didukung. Ini lebih mirip wrapper daripada emulator, sehingga performa dan kompatibilitasnya langsung bagus.
    Karena itu, 3DS menjadi perangkat portabel yang bagus untuk menikmati game NES/SNES/GB/GBC/GBA dengan akurasi piksel.
    Hal lain yang baru saya sadari beberapa tahun lalu adalah semakin besar kartu microSD yang dipakai, semakin lambat 3DS. Sejauh yang saya tahu, seluruh konsol memindai penyimpanan blok demi blok, sehingga mulai 64GB ke atas menjadi sangat lambat sampai menyiksa. Terutama saat memainkan game GBA injection, karena 3DS hampir seperti reboot ke mode itu, lalu memindai ulang penyimpanan.

  • Saya ingat bagian yang mengatakan, “Sebelum versi sistem 3.0.0, memori OTP tidak disembunyikan, dan jika ada kerentanan apa pun, kunci OTP bisa diekstrak tanpa masalah.”
    Dulu, untuk meretas 3DS, orang harus melakukan downgrade ke firmware 3.0.0 demi ekstraksi OTP. Namun 3.0.0 tidak sepenuhnya kompatibel dengan New 3DS, jadi pada model itu, sekadar menutup tutup konsol saat berada di firmware lama saja bisa membuat konsol menjadi brick permanen. Masa-masa yang indah

  • Seri ini benar-benar bagus
    Jika ingin mencoba homebrew untuk 3DS, lihat https://github.com/devkitPro/libctru

  • Saya berharap Nintendo tidak pernah menyerah pada pengalaman konsol portabel yang memasukkan seluruh konsol ke dalam genggaman
    Saya juga berharap industri handheld indie yang lebih besar ikut berkembang
    Yang tampak seperti akhir yang segera datang bagi perangkat portabel kelas atas adalah cloud gaming. Termasuk cara menjalankan konsol di rumah lalu melakukan streaming ke ponsel
    Pada akhirnya semuanya bergantung pada apa yang dipilih orang dengan dompet mereka. Saya merindukan GBC

    • Saya tidak merasa konsol portabel akan mati. Hardware terus berkembang, sementara kebutuhan hardware cenderung stagnan
      Menurut saya Switch meraih sukses besar dengan game indie 2D seperti Stardew Valley, Hades, dan Dead Cells. Desain game seperti itu bekerja dengan baik, dan grafis 2D yang bagus tidak pernah terlihat usang
      Saya ragu orang akan membayar untuk skema streaming yang merugikan konsumen hanya demi memainkan game hebat yang bahkan bisa berjalan di perangkat kentang
    • Kemungkinan itu tampaknya sangat kecil. Stadia sudah ditutup, tetapi Switch dan Steam Deck sama-sama sukses besar
      Latensi cloud gaming dan ketergantungannya pada koneksi jaringan yang stabil masih menjadi masalah bagi banyak orang. Selain itu, saya rasa kebanyakan gamer tidak ingin membayar biaya langganan lain, dan cloud gaming pada akhirnya kemungkinan besar akan disertai langganan
      Kalau bagaimanapun juga butuh hardware untuk bermain, lebih baik memakai perangkat portabel yang bagus. Produsen PC seperti Asus juga membuat perangkat portabel seperti RoG Ally, dan Switch 2 serta Steam Deck 2 praktis sudah pasti. Justru perangkat portabel tampaknya terus membaik dan pangsa pasarnya juga meningkat
    • Saya benar-benar tidak suka Sony menghentikan PSP, tetapi saya mengerti alasannya. Alasan Steam Deck dan varian perangkat yang lebih kuat bisa sukses juga sama
      Game masa kini tidak sekuat dulu dalam hal eksklusivitas, dan kecuali perusahaan mengintegrasikan konsol rumahan dan portabel sedekat Nintendo hingga benar-benar menyatukannya, perusahaan itu hanya menciptakan pemisahan yang tidak perlu
      Bayangkan jika Nintendo juga merilis konsol rumahan terpisah dari Switch; struktur seperti itu mungkin tidak akan berkelanjutan
      Lucu melihat orang memuji “kejeniusannya” dan “inovasinya” Nintendo karena membuat perangkat portabel yang bisa ditancapkan ke TV. Sementara itu PSP Go dan dock TV seperti berkata, “Hei teman-teman, kalian tidak ingat aku?” Saya suka PSP Go karena benar-benar kecil dan imut
    • Chip hanya akan menjadi makin kuat dan makin kecil. Sekarang saja sudah banyak game yang bisa dimainkan di Raspberry Pi, dan sekitar 10 tahun lagi saya rasa perangkat berukuran serupa akan bisa menjalankan game generasi saat ini
      Saya sedang mempertimbangkan proyek seru untuk membuat konsol portabel bagi putri saya
  • Tulisan seperti ini benar-benar luar biasa
    Saya sudah tertarik pada arsitektur GB/GBC dan ingin membuat game untuk platform itu, tetapi belum menemukan tulisan ini. Terima kasih sudah mengunggahnya, dan terima kasih kepada Rodrigo karena sudah menulisnya