Nocash Multiboot/Burstboot Uploader (c) 2001,2002 Martin Korth
This is the standalone DOS version of the multiboot upload program,
which is also being built-in into the no$gba debuggers utility menu.
Contents
--------
1) AUX Multiboot PC-to-GBA Cable
2) Extended Multiboot Header
3) Burst Boot Backdoor
4) Downloading the GBA BIOS
I hope this will be easy to use. I've spent about three weeks (fulltime)
into trying to get it as fast and comfortable as possible, and by using
as little hardware as possible...
http://www.work.de/nocash/
Many thanks to arundel for testing dozens of beta versions on 100MHz,
350MHz, and 700MHz computers until the code worked with fast CPUs, and
without external pull-up resistors.
1) AUX Multiboot PC-to-GBA Cable
--------------------------------
Below describes how to connect a PC parallel port to the GBA link port,
allowing to upload small programs (max 256 KBytes) from no$gba's Utility
menu (or by using the standalone DOS version) into real GBAs.
This is possible because the GBA BIOS includes a built-in function for
downloading & executing program code even when no cartridge is inserted.
The program is loaded to 2000000h and up in GBA memory, and must contain
cartridge header information (nintendo logo, checksum, etc) just as for
normal ROM cartridges.
Basic Cable Connection
The general connection is very simple (only needs four wires), the only
problem is that you need a special GBA plug or otherwise need to solder
wires directly to the GBA mainboard (see Examples below).
GBA Name Color SUBD CNTR Name
2 SO Red ------------- 10 10 /ACK
3 SI Orange ------------- 14 14 /AUTOLF
5 SC Green ------------- 1 1 /STROBE
6 GND Blue ------------- 19 19 GND
Optionally, also connect the following signals (see notes below):
4 SD Brown ------------- 17 36 /SELECT (double speed burst)
- - - +----------- 2..9 2..9 D0..7 (pull-up)
- - - |---[===]--- 14 14 /AUTOLF (pull-up)
- - - |---[===]--- 1 1 /STROBE (pull-up)
- - - +---[===]--- 17 36 /SELECT (pull-up)
RESET (mainboard) ------|>|---- 16 31 /INIT (automatic reset)
Notes: The GBA Pins are arranged from left to right as 2,4,6 in upper
row, and 1,3,5 in lower row; outside view of GBA socket; flat side of
socket upside. The above "Colors" are as used in most or all standard
Nintendo link cables, note that Red/Orange will be exchanged at one end
in cables with crossed SO/SI lines. At the PC side, use the SUBD pin
numbers when connecting to a 25-pin SUBD plug, or CNTR pin numbers for
36-pin Centronics plug.
Optional SD Connection (Double Speed Burst)
The SD line is used for Double Speed Burst transfers only, in case that
you are using a gameboy link plug for the connection, and if that plug
does not have a SD-pin (as such from older 8bit gameboy cables), then
you may leave out this connection. Burst Boot will then only work half
as fast though.
Optional Pull-Ups (Improves Low-to-High Transition Speed)
If your parallel port works only with medium or slow delay settings,
try to connect 570 Ohm resistors to each of the strobe/autolf/select
outputs, and the other resistor pin to any or all of the parallel port
pin 2..9 data lines (xboo outputs high to all data lines).
Optional Reset Connection
The Reset connection allows to reset & upload data even if a program in
the GBA has locked up (or if you've loaded a program that does not
support nocash burst boot). - Without reset connection you'd then
manually have to reset the GBA by switching it off and on.
The RESET signal is labeled as such on the GBA mainboard. The diode
(1N4148 or similiar) is required because otherwise strong INIT signals
would pull-up the RESET signal, preventing the GBA from automatically
resetting itself when switched on.
Optional Power Supply Connection
Also, you may want to connect the power supply to parallel port data
lines. Different parallel ports output different voltages/amperes
though, maybe using a large Z-diode could be used to get a stable
voltage with most ports. Even with strong ports, it'll probably not
work when inserting a very power-hungry cartridge into the GBA.
Transmission Speed
The first transfer will be very slow, and the GBA BIOS will display
the boot logo for at least 4 seconds, even if the transfer has
completed in less time. Once when you have uploaded a program with
burst boot backdoor, further transfers will be ways faster. The
table below shows transfer times for 0KByte - 256KByte files:
Boot Mode_____Delay 0_______Delay 1_______Delay 2_____
Double Burst 0.1s - 1.8s 0.1s - 3.7s 0.1s - 5.3s
Single Burst 0.1s - 3.6s 0.1s - 7.1s 0.1s - 10.6s
Normal Bios 4.0s - 9.0s 4.0s - 12.7s 4.0s - 16.3s
All timings measured on a 66MHz computer, best possible transmission
speed should be 150KBytes/second. Timings might slightly vary
depending on the CPU speed and/or operating system. Synchronization
is done by I/O waitstates, that should work even on faster computers.
Non-zero delays are eventually required for cables without pull-ups.
Requirements
Beside for the cable and plugs, no special requirements.
The cable should work with all parallel ports, including old-fashined
uni-directional printer ports, as well as modern bi-directional EPP
ports. Transfer timings should work stable regardless of the PCs CPU
speed (see above though), and regardless of multitasking interruptions.
Both no$gba and the actual transmission procedure are using some 32bit
code, so that either one currently requires 80386SX CPUs or above.
Windows NT/2000/etc.
NT/2000/etc. prevent to access parallel ports directly, this problem can
be reportedly healed by using special drivers (such like giveio, totalio,
or userport), which would be possibly required to be called from inside
of no$gba. If anybody can supply information on where to download & how
to use these drivers, please let me know!
Note: Windows 95/98/etc. are working fine without such drivers, also,
the DOS version of the uploader might work okay even under NT/2000.
Connection Examples
As far as I can imagine, there are four possible methods how to connect
the cable to the GBA. The first two methods don't require to open the
GBA, and the other methods also allow to connect optional power supply
and reset signal.
1) Connect it to the GBA link port. Advantage: No need to
open/modify the GBA. Disadvantage: You need a special plug,
(typically gained by removing it from a gameboy link cable).
2) Solder the cable directly to the GBA link port pins. Advantages:
No plug required & no need to open the GBA. Disadvantages:
You can't remove the cable, and the link port becomes unusable.
3) Solder the cable directly to the GBA mainboard. Advantage: No
plug required at the GBA side. Disadvantage: You'll always
have a cable leaping out of the GBA even when not using it,
unless you put a small standard plug between GBA and cable.
4) Install a Centronics socket in the GBA (between power switch
and headphone socket). Advantage: You can use a standard
printer cable. Disadvantages: You need to cut a big hole into
the GBAs battery box (which cannot be used anymore), the big
cable might be a bit uncomfortable when holding the GBA.
Personally, I've decided to use the lastmost method as I don't like
ending up with hundreds of special cables for different purposes, and
asides, it's been fun to damage the GAB as much as possible.
Note
The above used PC parallel port signals are typically using 5V=HIGH
while GBA link ports deal with 3V=HIGH. From my experiences, the
different voltages do not cause communication problems (and do not
damage the GBA and/or PC hardware), and after all real me
没有合适的资源?快使用搜索试试~ 我知道了~
GBA工程源程序,开发学习GBA的好东东。
共24个文件
c:8个
h:7个
txt:2个
需积分: 9 9 下载量 131 浏览量
2009-09-11
10:41:41
上传
评论 2
收藏 437KB RAR 举报
温馨提示
GBA ARM 游戏机 单片机 包含一个在BG3模式下的英文字符格式化输出函数 printLCD(); 格式化输出列表同标准C兼容 "%???"... 具体可以参考我的程序 核心是cons结构体 依照范例修改 可以使用在所有的字符型的输入输出终端上: LCD,UART,KEY,IIC,SPI... 可以在几乎所有的ANSI C编译器上编译 原本的printk函数是一个gcc下的源码 可以简化修改在KEIL C51下使用(事实上我就在用 ^_^ )
资源推荐
资源详情
资源评论
收起资源包目录
GBA for ADS12 模板.rar (24个子文件)
GBA for ADS12 模板
AGB MULTIBOOT
READ.me.txt 1KB
AGB MULTIBOOT.mcp 80KB
TOOLS
XBOO.COM 6KB
xboo.cfg 10B
gbafix.exe 44KB
VisualBoyAdvance.exe 1.41MB
XBOO.TXT 18KB
vba.ini 2KB
SOURCE
main.c 762B
zm8X16.c 9KB
User_LCD.c 3KB
gba.h 28KB
User_LCD.h 2KB
boot.s 9KB
driver.h 2KB
user_io.h 638B
irq.c 1013B
zm6X12.c 7KB
user_io.c 9KB
user_memdump.c 1KB
global.h 2B
user_memdump.h 477B
includes.h 270B
zm8X12.c 6KB
共 24 条
- 1
资源评论
wftyy
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功