-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
159 lines (157 loc) · 8.15 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
24 Mar 2003
- more texture support (ARGB444, ARGB1555)
- controller/maple code, cleanups
- some GPU regs implemented, bug fixes
- reorganization and cleanup of code
- glOrtho changes (more demos work now)
17 Mar 2003
- swirly revived.
- patches from Michael Schnerr applied. Much thanks!
- rudimentary texture loading
- bug fixes, clean up of code.
6 September 2001
- Implemented FSCA and FSRRA - they should work but may not do 100% what the
real DC versions do.
4 September 2001
- Complete rewrite of Gpu
3 September 2001
- Added placeholders for fsca and fsrra instructions
- Opcode 0x406a (lds r0, fpscr) works - for some unknown reason I couldn't
figure out what it was, despite the fact it was in the same manual as
all the rest of the opcodes. I must have been smoking crack.
- Made SHMmu::accessP4 die gracefully when it is told to access something
that doesn't exist
- Fixed serious problem where R8-R15 were switched out along with R0-R7 on
a register bank switch (SR.RB changes) - only one copy of R8-R15 are
supposed to exist
- The TMU now sets TCRx.UNF and resets TCNTx to TCORx when a timer underflows
1 September 2001
- Added "l" debugger command, which loads the contents of a file to SH memory
- Overlord::loadSrec now prints a message if it can't find the file to load
- Added ability to write scripts for the debugger - these are executed one-shot
from start to finish, no for loops or if statements or any of that fluff ;)
- Added "s" debugger command, which runs a script
- Swirly now tries to run a script called "autoexec.script" on startup, which
is a good place to put a command that loads the fake boot ROM
16 August 2001
- Added STS instructions for FPU
- Added FTRC to SHCpu::executeInstruction (function was already written, just
not mentioned in the right place)
13 August 2001
- Marcus Comstedt's maple bus example works - maple bus support is still in
"early hack" stage
- Improved Gpu's reusage of back buffers - when reusing a backbuffer, now
checks to see whether the screen is in the right mode
10 August 2001
- Can now specify name of branch trace log file with debugger's "trb" command
- Added "f" ("finish") command to debugger, allows user to run until the next
rts or rte
- Minor aesthetic cleanups
5 July 2001
- Got rid of Makefiles and the autoconf, automake stuff that went along
with it in favor of Jamfiles
- Since I know how to use Jamfiles slightly better than the monstrous
Makefiles generated by KDevelop, started using nasm again instead of gas
- No longer using KDevelop for development since I replaced make with jam
- Started reimplementing MAC.L in assembly - haven't tested it yet
- Made status messages look better
- General minor cleanups
- Fixed bug in BF/S and BT/S where delay slot would be executed before
these instructions check SR.T (problems arose when delay slot modified this
flag)
- Added incomplete ROM font that only has ASCII glyphs and only space for
first 288 (narrow) characters allocated
- Added "stat" command to debugger, which toggles status messages on and off
- This required making a print() function in Debugger that should now be
used for debugging-type status info instead of printf
- By this point I've stopped caring about maintaining a Win32 version
15 April 2001
- Integrated Lars Olsson's dcdis, using it as the disassembler. This allows
the removal of the stupid Debugger::disasmOn variable as well as the stupid
DIS macros.
- Added "uf" command to debugger. This unassembles the instruction following
PC, which would be the delay slot if PC points to a branch instruction.
14 April 2001
- Gave up using nasm and started using GNU as. I like nasm's syntax better but
everyone has GNU as, and it's a pain to make the KDevelop-generated makefile
use nasm instead.
9 April 2001
- Figured out how to make the Makefile compile assembly modules too.
8 April 2001
- Dan Potter's Stars demo (finally) works!! As does the text on the Sega
license screen (PRODUCED BY OR UNDER LICENSE...), after fixing a serious
bug in cmp/pl and cmp/pz. Hooray!
- Stars demo gets 1-2fps at its peak during the stars/spinny cube part on my box.
5 April 2001
- Started using KDevelop again for development.
- Swirly now uses the standard GNU distribution setup. You know, autoconf,
automake, etc.
- Made the output of MMUCR in Debugger::dumpRegs() look better.
- Started writing assembly routines for the FPU with nasm.
31 January 2001
- Implemented store queues better but they still almost certainly don't work
in user mode. Included a special case for TA writes.
30 January 2001
- Faked the SH4 DMAC and INTC to help IP.BIN make it all the way through to the
start of 1ST_READ.BIN.
28 January 2001
- Revamped the MMU's external address translation. Now it's much less
hairy and more logical.
- Wrote a makefile for the Linux version (which can be much improved).
- At some point since 17 November 2000, started work on a new fake boot ROM
named fbr.
17 November 2000
- The Linux version works. (Just had to #ifdef a Win32 #include :)
- In the Linux version, now when you hit Ctrl+C you get the Swirly debugger prompt
instead of the program exiting.
10 November 2000
- 3dtest works! Rendered in OpenGL too! Hooray!
6 November 2000
- Working on 3D support--I'm trying to make Dan Potter's 3dtest work. Apparently
there are some weird typecasting conventions when you go from float to int in C++,
which is screwing things up. Also I am getting some weird segfault that only
occurs when the program isn't being debugged.
- Found the cause of the segfault mentioned just above. Also fixed a bug in FCMP/GT
and FCMP/EQ that caused them to not work at all. Now it looks like all vertices
are produced correctly by 3dtest. All I need to do is render them.
23 August 2000
- Working on adding a descrambling routine so 1ST_READ.BIN can be read properly.
- The fake boot ROM now loads IP.BIN itself. It used to load 1ST_READ.BIN too,
but that was ridiculously slow -- took 10 minutes to load a 2MB file! So I made
a new Swirly hook so the host can do it.
- Made a new fake boot ROM. I'll need to do another one eventually
actually, because the source for the new fake boot ROM is horribly written.
Prototypes missing everywhere, bad design, etc. The new one is written mainly
in C, which is good because now I really know C-compiled programs work right.
Actually IP.BIN looks like it was not hand-coded in assembly; there is some
redundancy in coding that a human would never do, such as needless shuffling
data around in memory when it's in a register, which echoes how a C compiler
handles its variables in generated code.
21 August 2000
- GDROM syscall faking works now. All the GDROM syscalls I know about have been
implemented. The junk audio track is assumed to have size 512 sectors, and
the ISO image should pretend to start at 362 (mkisofs -C 0,362) for some reason.
Doesn't that mean there's overlap? I still haven't figured this out yet. But
Marcus' cdfs example now works.
- Still a good deal of GDROM syscalls left to do though, once I get some info on
them.
- Fixed the retarded and barely working TMU. Counters now count down properly
and only start when they are supposed to. Got rid of that stupid SHTmu::iterate()
function that had to be called every instruction iteration. Of course it's not
nearly complete yet...
20 August 2000
- GDROM syscall faking is partially working. Still a bit confused about this
LBA vs. physical sector number business.
- Happily, Marcus' cdfs example works as well as I'd expect it to at the moment,
and it's written in C!
15 August 2000
- Started keeping this ChangeLog.
- Worked on GDROM syscall faking. A basic skeleton is in place but at the
moment it probably won't work.
14 August 2000
- Implemented partially the SCIF, in the object SHSci (which will eventually
contain the SCI implementation as well). Receiving data is not supported,
but sending data is, and sent data is printed to the console. Allows
Marcus' serial example to work.
- Now that SCIF works I started adding informational messages to fakebootrom.
These messages are sent out through SCIF.