nmlgc
00e419e9da
[Reduction] #448 : setblock
2014-09-02 23:38:26 +02:00
nmlgc
b77f2cfba0
[Reduction] #447 : access
2014-09-02 23:26:19 +02:00
nmlgc
23aa61c002
[Reduction] #446 : abort
...
The one with the single underscore, which is just raise + a wrapper around the
one with two underscores.
2014-09-02 21:45:19 +02:00
nmlgc
9d5aa934d4
[Reduction] #445 : flushall
2014-09-02 21:44:35 +02:00
nmlgc
429f134a51
[Reduction] #442-444: fseek and ftell
2014-09-02 21:04:29 +02:00
nmlgc
b82a03c3f8
[Reduction] #441 : grcg_round_boxfill
...
No local symbol definitions for variables here, as they are used in both the
normal function and the retfunc.
2014-09-01 21:08:57 +02:00
nmlgc
6250206235
[Reduction] #432-440: xxv.cpp
...
OK, *that's* the last piece of C++ crud shared across all main executables.
According to the object in the library file though, it seems to include one
more dword named
__DestructorCountPtr
in the BSS segment. Neither games nor the runtime itself seem to use it, and
as a consequence, it doesn't even seem to be included in the games' BSS
segments, given that they all end with the symbols of xx.cpp...
2014-09-01 13:51:23 +02:00
nmlgc
f994832a28
[Reduction] #431 : toupper
...
Neither is this one. Also, interesting how IDA didn't identify the function in
one third of the cases.
[Binary change] Order of 2 relocations in TH03's MAINL.EXE, TH04's MAIN.EXE
and MAINE.EXE, and TH05's MAINE.EXE.
2014-09-01 12:01:35 +02:00
nmlgc
49d85b2c0b
[Reduction] #430 : tolower
...
... huh? That is certainly not multi-byte safe.
2014-09-01 12:01:34 +02:00
nmlgc
4e16a92b07
[Reduction] #429 : ctype
2014-09-01 12:01:32 +02:00
nmlgc
b4dd0d452d
[Reduction] #428 : text_puts
2014-09-01 08:58:15 +02:00
nmlgc
ce245eae9f
[Reduction] #427 : grcg_trapezoid
2014-09-01 08:45:00 +02:00
nmlgc
c90b76bff9
[Reduction] #426 : graph_200line
...
Yup. TH03's graphics layer is actually set to a resolution of 640x200 and
upscaled by the hardware, which gives the game its distinctive low-res look.
2014-09-01 08:41:20 +02:00
nmlgc
1276b727ff
[Reduction] #425 : grcg_settile_1line
2014-09-01 07:39:11 +02:00
nmlgc
a27c177235
[Reduction] #424 : grcg_triangle
2014-09-01 07:30:58 +02:00
nmlgc
5b91dd3b42
[Reduction] #423 : grcg_polygon_c
2014-09-01 06:52:28 +02:00
nmlgc
b2c9ba67bc
[Reduction] #422 : draw_trapezoid
...
Yup. From TH03 on, ZUN uses a different version of master.lib, containing more
features than the last official version 0.23 from May 1995. Given the relative
insignificance of the features in question, I presume that Amusement Makers
must have kept their own, improved fork of master.lib, rather than ZUN having
hacked master.lib on his own.
Anyway, that doesn't matter. In the end, we still have to reverse-engineer each
and every one of these changes, and some of the more complicated functions
won't even be reduced before the actual reverse-engineering step of this
project.
[Binary change] Order of 3 relocations in TH05's OP.EXE.
2014-08-31 18:08:50 +02:00
nmlgc
7dc06e0047
[Reduction] #421 : super_zoom
2014-08-31 15:27:30 +02:00
nmlgc
5009e416a0
[Reduction] #420 : grcg_fill
2014-08-31 12:22:19 +02:00
nmlgc
14b9f10d14
[Reduction] #419 : super_convert_tiny
2014-08-31 11:42:22 +02:00
nmlgc
2db5e73934
[Reduction] #418 : grcg_line
2014-08-31 11:30:26 +02:00
nmlgc
3549c5496e
[Reduction] #417 : ems_read
2014-08-31 11:15:56 +02:00
nmlgc
44a2c223f6
[Reduction] #416 : ems_space
2014-08-31 11:05:56 +02:00
nmlgc
5261b79d12
[Reduction] #415 : ems_write
2014-08-31 11:02:40 +02:00
nmlgc
2c16f56bb1
[Reduction] #414 : ems_setname
2014-08-31 10:58:51 +02:00
nmlgc
3660316127
[Reduction] #413 : ems_movememoryregion
2014-08-31 10:56:55 +02:00
nmlgc
958f32c884
[Reduction] #412 : ems_free
2014-08-31 10:49:03 +02:00
nmlgc
d4f0bb7c27
[Reduction] #411 : ems_exist
2014-08-31 10:43:56 +02:00
nmlgc
267749bd40
[Reduction] #410 : ems_enablepageframe
2014-08-31 10:37:04 +02:00
nmlgc
4b848cc7e8
[Reduction] #409 : ems_allocate
2014-08-31 10:32:28 +02:00
nmlgc
e9e6d14ab6
[Reduction] #408 : gaiji_backup and gaiji_restore
2014-08-31 10:23:41 +02:00
nmlgc
bd2ef210c0
[Reduction] #407 : gaiji_entry_bfnt
2014-08-31 10:09:59 +02:00
nmlgc
73aad4c7e6
[Reduction] #404-406: gaiji_write and gaiji_write_all
2014-08-31 09:50:38 +02:00
nmlgc
8c68537820
[Reduction] #401-403: gaiji_read and gaiji_read_all
2014-08-31 09:42:55 +02:00
nmlgc
c793095729
[Reduction] #400 : grc_clip_polygon_n
2014-08-31 08:55:51 +02:00
nmlgc
1546628658
[Reduction] #399 : grc_setclip
2014-08-31 08:36:33 +02:00
nmlgc
2ed0225877
[Reduction] #396-398: grcg_circle
2014-08-31 08:01:45 +02:00
nmlgc
1a45a549c4
[Reduction] #395 : grcg_circle_x
2014-08-31 07:43:20 +02:00
nmlgc
79db80bb09
[Reduction] #394 : graph_pack_put_8
2014-08-31 07:26:45 +02:00
nmlgc
ae3804ff89
[Reduction] #393 : graph_scroll
2014-08-31 06:54:13 +02:00
nmlgc
4373c64119
[Reduction] #392 : graph_scrollup
2014-08-31 06:43:32 +02:00
nmlgc
6c3cfa94ae
[Reduction] #390-391: Sound I/O
2014-08-31 06:27:47 +02:00
nmlgc
563ba7001e
[Reduction] #389 : text_putsa
2014-08-31 05:52:43 +02:00
nmlgc
bd09a355b8
[Reduction] #388 : text_putca
2014-08-31 05:41:23 +02:00
nmlgc
8f6d34cfe5
[Reduction] #387 : text_boxfilla
2014-08-31 05:39:50 +02:00
nmlgc
c34c0aa09f
[Reduction] #386 : palette_entry_rgb
2014-08-31 05:14:54 +02:00
nmlgc
5b09a08612
[Reduction] #385 : gaiji_putsa
2014-08-31 05:05:48 +02:00
nmlgc
9242a2dcee
[Reduction] #384 : gaiji_putca
2014-08-31 04:56:17 +02:00
nmlgc
00c6ed5f5e
[Reduction] #380-383: super_put_rect
...
[Binary change] db 0 → nop after the end of superptr_draw in all affected
executables.
2014-08-31 04:46:46 +02:00
nmlgc
1607f39dab
[Reduction] #379 : gdc_outpw
2014-08-30 14:15:00 +02:00
nmlgc
dd4c95e249
[Reduction] #377-378: super_large_put
...
[Binary change] db 0 → nop after the end of the DISP8 function in both
executables.
2014-08-30 14:02:08 +02:00
nmlgc
1a0ec60825
[Reduction] #376 : iatan2
2014-08-30 13:44:36 +02:00
nmlgc
8571d60085
[Reduction] #375 : pfread
2014-08-30 12:50:48 +02:00
nmlgc
c39ded4bfa
[Reduction] #374 : pfrewind
...
[Binary change] db 0 → nop after the function in TH05's OP.EXE.
2014-08-30 12:33:48 +02:00
nmlgc
f5e8062ec0
[Reduction] #373 : pfseek
2014-08-30 12:26:02 +02:00
nmlgc
b108d5d46f
[Reduction] #372 : IRand
2014-08-30 12:13:04 +02:00
nmlgc
e448f1f665
[Reduction] #371 : file_size
2014-08-30 10:06:10 +02:00
nmlgc
614caf64eb
[Reduction] #370 : key_sense
2014-08-30 09:56:49 +02:00
nmlgc
12c1e8560f
[Reduction] #369 : file_write
2014-08-30 09:38:09 +02:00
nmlgc
536e17d29e
[Reduction] #367-368: file_seek and file_tell
2014-08-30 09:21:44 +02:00
nmlgc
5976ec0458
[Reduction] #366 : file_ropen
2014-08-30 09:12:17 +02:00
nmlgc
3ee280b708
[Reduction] #365 : file_read
2014-08-30 09:00:31 +02:00
nmlgc
649ab800e1
[Reduction] #364 : file_exist
2014-08-30 08:46:38 +02:00
nmlgc
2e814fc3c5
[Reduction] #363 : file_create
2014-08-30 08:32:10 +02:00
nmlgc
9a1e030ce7
[Reduction] #361-362: file_flush and file_close
2014-08-30 08:19:17 +02:00
nmlgc
87230af28f
[Reduction] #360 : file_append
2014-08-30 07:58:36 +02:00
nmlgc
605f044854
[Reduction] #359 : File-related global data
2014-08-30 07:49:51 +02:00
nmlgc
86ea9b69ac
[Reduction] #358 : kbhit
2014-08-30 06:23:45 +02:00
nmlgc
daabf257d1
[Reduction] #357 : C++ new[] operator
2014-08-30 04:26:12 +02:00
nmlgc
04b1fd3bcc
[Reduction] #355-356: ctor2.asm
...
OK, looks like we got all of the C++ crap out of the way... e~xcept for
another function in TH01's REIIDEN.EXE, of course.
[Binary change] Order of 2 relocations in TH01's FUUIN.EXE.
2014-08-30 03:50:38 +02:00
nmlgc
73af48ac95
[Reduction] #352-354: ctor3.asm
2014-08-30 02:37:53 +02:00
nmlgc
be740fc368
[Reduction] #331-351: strings.cpp
...
God, this C++ stuff really is a crappy mess. Even had to manually adjust the
alignments at the end of the the TEXTC segment - and no, the ALIGN directive
remains an inadequate tool random bytes, even more so because TASM's
implementation just pads the space with random bytes. But hey, nice to finally
see some reduction outside of seg000.
[Binary change]
* Order of 3 relocations in all of TH04 and TH05's OP.EXE
* Order of 6 relocations in TH03's OP.EXE and MAIN.EXE, and TH05's MAIN.EXE
and MAINE.EXE
* Order of 9 relocations in all of TH01, TH02's OP.EXE and MAINE.EXE, and
TH03's MAINL.EXE
* Order of 11 relocations in TH02's MAINE.EXE
2014-08-29 12:47:43 +02:00
nmlgc
588ed7b90b
[Reduction] #324-330: new.cpp
...
[Binary change]
* Order of 2 relocations in all executables of TH02, TH03, TH04 and TH05
* Order of 4 relocations in TH01's FUUIN.EXE
* Inserts a new relocation into TH01's REIIDEN.EXE
2014-08-29 10:50:30 +02:00
nmlgc
d49fdce731
[Reduction] #274-323: xx.cpp
...
Yup. 50 functions in a single module, totalling 12,633 bytes, used in all 15
game executables, and no references to any of that in the remaining game code.
[Binary change]
* Order of 3 relocations in all of THO3, TH04 and TH05, TH02's MAIN.EXE and
MAINE.EXE, and TH01's OP.EXE and FUUIN.EXE
* Order of 2 relocations in TH02's OP.EXE and TH01's REIIDEN.EXE
* Inserts a new relocation into TH03's MAIN.EXE
2014-08-29 08:03:21 +02:00
nmlgc
e2ca057d4b
[Reduction] #273 : cputype.asm
...
Don't have the source code for that one either.
2014-08-29 05:58:32 +02:00
nmlgc
dd400d7627
[Reduction] #268-272: xmsg.cpp
...
[Binary change] Order of 6 relocations in every executable except for the TH04
ones.
2014-08-29 04:02:38 +02:00
nmlgc
e0762650c6
[Reduction] #264-267: xalloc.cpp
2014-08-29 03:24:39 +02:00
nmlgc
e1d78d0e9a
[Reduction] #260-263: xxas.cpp
...
Well. Even after downloading pretty much every (identical) copy of Turbo /
Borland C++ 3, 4, 5 and everything inbetween, I could *not* find the original
source to most of the C++ parts in the runtime. Using the IDA disassemblies
to build their slices is simply the only option.
... Really, though, who cares.
2014-08-29 03:08:23 +02:00
nmlgc
a9918e364e
[Reduction] #259 : C++ delete[] operator
...
Same for registerbgifont() being a wrapper around registerfarbgifont(). But
at least there, IDA should have noticed something weird. The original delete[]
operator refers to the delete function, so registerbgifont() would have had to
be a wrapper around registerbgidriver(), which of course doesn't make sense,
and IDA claims to *know* these functions...
2014-08-29 01:35:20 +02:00
nmlgc
0493c0c4e4
[Reduction] #258 : C++ delete operator
...
Lol, "registerbgidriver". Just because the original function is nothing but a
wrapper around free(), and registerbgidriver() is also just a wrapper around
registerfarbgidriver().
2014-08-29 01:26:20 +02:00
nmlgc
6ebf0877f7
[Reduction] #257 : xfflush
2014-08-28 21:54:04 +02:00
nmlgc
f0825bf2e5
[Reduction] #255-256: super_roll_put
2014-08-28 08:52:42 +02:00
nmlgc
7bb29aee62
[Reduction] #254 : super_roll_put_1plane
...
Misreferences in switch tables! Haven't had any of those in a while.
2014-08-28 08:38:11 +02:00
nmlgc
776c094c0a
[Reduction] #253 : super_clean
2014-08-28 08:12:58 +02:00
nmlgc
0c8e9d8550
[Reduction] #252 : 16-bit sine and cosine table
...
Nice! It's not used by master.lib itself, but ZUN makes good use of these
tables to avoid having to rely on floating-point functions.
2014-08-28 07:54:38 +02:00
nmlgc
a65a9c07c3
[Reduction] #251 : Sine table for super_wave_put() and super_vibra_put()
2014-08-28 07:17:42 +02:00
nmlgc
2d8f579e14
[Reduction] #249-250: super_put_8
2014-08-28 06:34:30 +02:00
nmlgc
7efab8b20f
[Reduction] #248 : grcg_circlefill
2014-08-28 06:02:11 +02:00
nmlgc
366ba7a85f
[Reduction] #247 : grcg_pset
2014-08-28 05:48:32 +02:00
nmlgc
eb6c0b5551
[Reduction] #246 : grcg_boxfill
2014-08-28 05:31:57 +02:00
nmlgc
a779b84843
[Reduction] #245 : dos_filesize
2014-08-28 05:14:58 +02:00
nmlgc
9e5b986403
[Reduction] #244 : egc_shift_up
2014-08-28 05:14:57 +02:00
nmlgc
cc2d874c26
[Reduction] #243 : egc_shift_right
2014-08-28 05:14:57 +02:00
nmlgc
b67d68409e
[Reduction] #242 : egc_shift_left
2014-08-28 05:14:56 +02:00
nmlgc
23b7c04376
[Reduction] #241 : egc_shift_down
2014-08-28 05:14:55 +02:00
nmlgc
b4794ec1d9
[Reduction] #240 : cutline
2014-08-28 05:14:54 +02:00
nmlgc
55629eecb0
[Reduction] #234-239: super_put
...
[Binary change] Order of 3 relocations in TH05's OP.EXE, and 2 relocations in
TH05's MAINE.EXE.
2014-08-28 02:23:54 +02:00
nmlgc
68359542c1
[Reduction] #233 : Byte mask
2014-08-28 01:37:48 +02:00
nmlgc
2cf62174c0
[Reduction] #232 : graph_start
2014-08-28 01:16:54 +02:00
nmlgc
c1dac953a5
[Reduction] #231 : graph_hide
2014-08-28 01:05:11 +02:00
nmlgc
9b3e42a150
[Reduction] #230 : graph_400line
2014-08-28 00:58:40 +02:00
nmlgc
057c665ece
[Reduction] #229 : grcg_vline
2014-08-28 00:48:06 +02:00
nmlgc
0dad2dffc8
[Reduction] #228 : grcg_hline
2014-08-28 00:17:57 +02:00
nmlgc
523da7f7b9
[Reduction] #227 : Edge pattern table
2014-08-28 00:05:06 +02:00
nmlgc
b6872319c4
[Reduction] #226 : grcg_byteboxfill_x
2014-08-28 00:04:27 +02:00
nmlgc
877fbd8bd6
[Reduction] #225 : Clipping variables for drawing
...
Well, great. Why did the trapezoid variables have to be included in this
object file? 10 of the executables don't use them, and there's no way to
locate that one needle in the haystack of uninitialized data now.
2014-08-28 00:04:26 +02:00
nmlgc
5a05e580e5
[Reduction] #223-224: memmove
2014-08-27 19:47:14 +02:00
nmlgc
f3e9147459
[Reduction] #221-222: memset
...
Two functions, just differing in their order of parameters. It's...
convenient, I guess?
2014-08-27 07:50:37 +02:00
nmlgc
444901acb5
[Reduction] #220 : memcpy
2014-08-27 07:15:15 +02:00
nmlgc
39bf07ac61
[Reduction] #219 : memcmp
2014-08-27 07:05:29 +02:00
nmlgc
4f075e1718
[Reduction] #217-218: grcg_setcolor and grcg_off
2014-08-27 07:05:16 +02:00
nmlgc
aa9ea36277
[Reduction] #215-216: graph_copy_page
2014-08-27 06:13:48 +02:00
nmlgc
a28cd273c4
[Reduction] #214 : graph_clear
2014-08-27 06:03:08 +02:00
nmlgc
199138182a
[Reduction] #213 : Graphic VRAM-related global data
...
Nothing in the BSS segment for once! Yay.
2014-08-27 05:45:01 +02:00
nmlgc
967a8e3aa5
[Reduction] #212 : graph_show
...
ReC98, where a function consisting of 3 instructions still saves over 150
lines.
2014-08-27 05:19:11 +02:00
nmlgc
a4de9710bd
[Reduction] #211 : make_linework
2014-08-27 05:05:30 +02:00
nmlgc
9bdc776f19
[Reduction] #210 : egc_shift_left_all
...
... yeah.
2014-08-27 04:57:37 +02:00
nmlgc
7240b80154
[Reduction] #209 : pfclose
2014-08-27 03:11:13 +02:00
nmlgc
27693992d9
[Reduction] #208 : bopenr
...
Had to explicitly specify "byte ptr pferrno" for binary compatibility...
2014-08-27 02:54:57 +02:00
nmlgc
64609699ef
[Reduction] #207 : PAR-related global data
2014-08-27 02:40:09 +02:00
nmlgc
95fce9b96b
[Reduction] #206 : palette_white_out
2014-08-27 00:57:45 +02:00
nmlgc
ef64c51958
[Reduction] #205 : palette_white_in
...
No nopcalls for a change?
2014-08-27 00:52:29 +02:00
nmlgc
beae93b603
[Reduction] #204 : palette_black_out
2014-08-27 00:33:43 +02:00
nmlgc
8b6d81a3de
[Reduction] #203 : palette_black_in
2014-08-27 00:26:46 +02:00
nmlgc
80cbfb1dd8
[Reduction] #202 : vsync_wait
2014-08-27 00:11:29 +02:00
nmlgc
94c5a12100
[Reduction] #198-201: vsync_start and vsync_end
2014-08-26 23:58:08 +02:00
nmlgc
287d7ea554
[Reduction] #197 : VSync-related global data
...
[Binary change] nop → db 0 after the data declarations in every affected
executable.
2014-08-26 22:52:26 +02:00
nmlgc
1f804283f8
[Reduction] #196 : bseek_
...
With underscore. Seek origin as a separate parameter.
I'm... sure there is a reason?
2014-08-26 22:15:00 +02:00
nmlgc
ed6c5e3067
[Reduction] #195 : bseek
...
Without underscore. Relative seek.
2014-08-26 22:04:11 +02:00
nmlgc
c60e71aa12
[Reduction] #194 : text_fillca
2014-08-26 22:02:09 +02:00
nmlgc
fae5f003ad
[Reduction] #193 : bread
...
This function doesn't seem to be used outside pfopen(), and IDA struggles with
that function, which explains the missing references.
2014-08-26 21:34:06 +02:00
nmlgc
5d2d4feca0
[Reduction] #192 : bgetc
2014-08-26 21:23:54 +02:00
nmlgc
40de176f2c
[Reduction] #191 : bcloser
2014-08-26 20:54:57 +02:00
nmlgc
777a718390
[Reduction] #189-190: bgm_init and bgm_finish
...
And that's all the games seem to use from the master.lib BGM module.
2014-08-26 07:58:33 +02:00
nmlgc
b134176731
[Reduction] #187-188: bgm_timer_init and bgm_timer_finish
...
[Binary change] Order of 2 relocations in TH04's MAINE.EXE and TH05's OP.EXE
and MAINE.EXE.
2014-08-26 07:39:57 +02:00
nmlgc
54ceaad556
[Reduction] #184-186: RTC interrupt manager
2014-08-26 07:25:43 +02:00
nmlgc
0bb3f897e0
[Reduction] #183 : bgm_timerhook
2014-08-26 06:18:06 +02:00
nmlgc
b7aa7291db
[Reduction] #182 : bgm_read_sdata
...
[Binary change] Order of 2 relocations in all modified executables.
2014-08-26 06:07:19 +02:00
nmlgc
17fa89801b
[Reduction] #181 : bgm_sound
2014-08-26 01:51:57 +02:00
nmlgc
fab08f2923
[Reduction] #180 : bgm_stop_sound
2014-08-26 01:41:08 +02:00
nmlgc
8b7313010e
[Reduction] #179 : bgm_stop_play
2014-08-26 00:40:14 +02:00
nmlgc
1520dea475
[Reduction] #178 : bgm_effect_sound
2014-08-26 00:34:16 +02:00
nmlgc
06d0171bad
[Reduction] #176-177: bgm_play
...
[Binary change] Order of 3 relocations in TH04's MAINE.EXE and TH05's OP.EXE
and MAINE.EXE.
2014-08-26 00:25:48 +02:00
nmlgc
d0be24acea
[Reduction] #175 : bgm_pinit
2014-08-26 00:01:58 +02:00
nmlgc
8416cc93c9
[Reduction] #174 : bgm_mget
2014-08-25 23:08:17 +02:00
nmlgc
69daab38b2
[Reduction] #173 : bgm_set_tempo
2014-08-25 22:58:39 +02:00
nmlgc
509d3b31b9
[Reduction] #172 : BGM-related internal data
...
Initializing the BSS data to 0 instead of the ? in the original source file
avoids size changes in the MZ header.
[Binary change] Order of 5 relocations in TH04's and TH05's MAIN.EXE.
2014-08-25 22:35:22 +02:00
nmlgc
674ecce1c3
[Reduction] #171 : _bgm_bell_org
...
[Binary change] db 0 → nop before the function in every affected executable.
2014-08-25 04:49:19 +02:00
nmlgc
36a4a02bdc
[Reduction] #169-170: fgetn and fread
...
... yeah, just because ZUN decided to use the C file functions to read
reiiden.cfg for a change. OK, can we *finally* include master.lib's bgm.inc
now?
2014-08-25 04:05:24 +02:00
nmlgc
8f27696514
[Reduction] #168 : fputs
...
One instance. That shouldn't count.
2014-08-24 04:53:19 +02:00
nmlgc
7ad40cceff
[Reduction] #164-167: fputc and friends
2014-08-24 04:43:11 +02:00
nmlgc
947e2ea630
[Reduction] #163 : ___read
2014-08-23 20:08:41 +02:00
nmlgc
76a12e2608
[Reduction] #161-162: __rtl_read and __read
...
Lol, these are so similar to __rtl_write and __write that Git's diff treats
reada.asm as a modified copy of writea.asm. Same situation with the CAS file
here, too.
2014-08-23 19:13:31 +02:00
nmlgc
54c9abefee
[Reduction] #160 : getdcwd
2014-08-23 18:42:30 +02:00
nmlgc
4a36dd15de
[Reduction] #159 : super_entry_bfnt
...
[Binary change] Order of 5 relocations in TH05's MAIN.EXE.
2014-08-23 18:09:23 +02:00
nmlgc
3de251fb60
Identify 4 functions accidentally missed in TH01's ZUNSOFT.COM
...
Wow. I just had to miss smem_release() once to find myself with a total of 4
missed functions (+ smem_wget(), bfnt_entry_pat() and
bfnt_extend_header_analysis()) a day later. Blasted tiny model.
2014-08-23 17:30:00 +02:00
nmlgc
656f993e8d
[Reduction] #158 : bfnt_palette_set
2014-08-23 16:56:01 +02:00
nmlgc
6e6293be79
[Reduction] #157 : palette_init
2014-08-23 16:18:30 +02:00
nmlgc
e76a9948b8
[Reduction] #156 : palette_show
2014-08-23 16:11:16 +02:00
nmlgc
61ccf52f3e
[Reduction] #155 : Palette data
2014-08-23 15:47:05 +02:00
nmlgc
138fcd2fce
[Reduction] #153-154: Key beep control
2014-08-23 14:01:53 +02:00
nmlgc
4759e85765
[Reduction] #152 : js_end
...
Popcorn.
2014-08-23 13:46:31 +02:00
nmlgc
6114c2871c
[Reduction] #151 : bfnt_extend_header_analysis
...
And here we have another TASM limitation: INCLUDE file names apparently are
strcpy()'d to a buffer with a fixed size of 32 bytes, causing a crash when
trying to include any file with a longer name. Quality.
2014-08-23 13:18:32 +02:00
nmlgc
20b998a428
[Reduction] #150 : bfnt_extend_header_skip
2014-08-23 12:23:03 +02:00
nmlgc
7046c47d28
[Reduction] #149 : bfnt_header_read
2014-08-23 12:08:48 +02:00
nmlgc
56a45d0b1d
[Reduction] #148 : bfnt_entry_pat
2014-08-23 11:51:14 +02:00
nmlgc
c718cc159a
[Reduction] #147 : 4-bit VRAM pixel rotation table
...
[Binary change] Order of three relocations in TH05's OP.EXE and MAINE.EXE.
2014-08-23 03:16:07 +02:00
nmlgc
76139a57c8
[Reduction] #146 : dos_axdx
2014-08-23 03:03:17 +02:00
nmlgc
cd1d7b341e
[Reduction] #145 : dos_keyclear
2014-08-23 03:02:18 +02:00
nmlgc
4d3b735008
[Reduction] #144 : dos_puts2
2014-08-23 01:48:16 +02:00
nmlgc
50bd48da18
[Reduction] #143 : dos_setvect
2014-08-23 01:38:22 +02:00
nmlgc
a756bab3cc
[Reduction] #142 : dos_read
2014-08-23 01:07:04 +02:00
nmlgc
4bcebcd875
[Reduction] #141 : dos_seek
2014-08-23 00:59:10 +02:00
nmlgc
ba3e077fc8
[Reduction] #140 : dos_close
2014-08-23 00:48:48 +02:00
nmlgc
2e2151b592
[Reduction] #139 : super_entry_pat
...
Heh, all the references to this function are still expressed in db opcode
form, because IDA couldn't process the self-modifying code in
bfnt_entry_pat(). That's almost practical in our case!
2014-08-23 00:28:05 +02:00
nmlgc
4e6ef3bd8d
[Reduction] #138 : super_entry_at
2014-08-22 23:56:33 +02:00
nmlgc
857c443b57
[Reduction] #137 : super_free
...
... yeah, TH02's MAINE.EXE indeed seems to not free its superimposed data.
In case it even allocates any.
[Binary change] db 0 → nop in ZUNSOFT.COM.
2014-08-22 23:45:21 +02:00
nmlgc
22112eab6a
[Reduction] #136 : super_cancel_pat
2014-08-22 23:33:18 +02:00
nmlgc
587f109e6a
[Reduction] #135 : Superimposed pattern data
...
... It really shows that I forgot to compress the "db 0" statements in
2bd664c5e4
.
2014-08-22 22:31:44 +02:00
nmlgc
8b32104540
[Reduction] #131-134: graph_pi_load_pack
...
Second biggest master.lib object right there... and apparently, TASM doesn't
support segment prefixes in EQU directives?
And yes, there really is no viable solution for both the NOPCALL problem (the
TASM manual states that these NOPs are inserted during single-pass assembly,
which we can't do) and the complementary jump sequences (which are only
inserted for forward references when specifying the JUMPS directive, which
doesn't seem to work for us either).
2014-08-22 21:15:44 +02:00
nmlgc
193ca02550
[Reduction] #130 : ___write
...
Doing one of these C monstrosities a day seems like a good habit. And hey,
ZUNSOFT.COM has already shrunk by over a third.
2014-08-22 19:28:05 +02:00
nmlgc
fbb78b9dd0
Replace the compatibility NOPs with a macro
2014-08-22 18:03:40 +02:00
nmlgc
2d1dc1589c
[Reduction] #128-129: __rtl_write and __write
...
Underscores and wrappers, hooray.
__write is not included in the widely available version of WRITEA.CAS, but
it's still part of the same object file.
2014-08-22 02:55:11 +02:00
nmlgc
216413d8a6
[Reduction] #127 : lseek
...
Yup, gotta move all the "handle" definitions away first.
2014-08-22 01:55:05 +02:00
nmlgc
aaa2d23fc8
[Reduction] #126 : graph_pi_free
...
Huh, the compatibility NOPs extend to master.lib as well?
2014-08-22 01:39:42 +02:00
nmlgc
c3202f4450
[Reduction] #125 : hmem_lallocate
2014-08-22 01:19:52 +02:00
nmlgc
47781cd013
[Reduction] #124 : smem_wget
2014-08-22 01:04:46 +02:00
nmlgc
7cde3a50ec
[Reduction] #123 : smem_release
...
Need to do this function before smem_wget() to keep the alignment identical.
2014-08-22 00:59:18 +02:00
nmlgc
ea4db822ab
[Reduction] #120-122: Heap memory functions
...
With even more misreferences in switch tables.
2014-08-22 00:17:53 +02:00
nmlgc
969990a819
[Reduction] #119 : mem_assign_dos
...
Containing, again, fixes for misreferences in TH04.
2014-08-21 23:30:20 +02:00
nmlgc
fc0ccd5e2b
[Reduction] #117-118: mem_assign and mem_assign_all
2014-08-21 23:05:54 +02:00
nmlgc
d270a625e5
[Reduction] #116 : master.lib memory manager variables
2014-08-21 22:54:07 +02:00
nmlgc
99b9963082
[Reduction] #115 : dos_ropen
...
AKA "fontfile_open()", and originally kept in FONTOPEN.ASM... yeah.
2014-08-21 22:09:18 +02:00
nmlgc
98bf9d9576
Change the name of the entry point to STARTX
...
Because it just so happens that master.lib's bfnt_header structure contains
an element named "START".
And huh, this suddenly works without changing any assembler or linker
parameters? I swear it didn't when I tried it first.
2014-08-21 22:05:17 +02:00
nmlgc
87fae21127
[Reduction] #114 : fperror
...
OK, one more Borland C function I noticed while I was covering signals.
2014-08-21 21:33:04 +02:00
nmlgc
8e4683cd1e
[Reduction] #109-113: Signal handling
...
> "OK, the signal slice is pretty large, let's do it tomorrow"
> stay there for the majority of the day
Oh well, at least it paid off. I *really* should work towards PI loading now,
though.
2014-08-21 21:28:18 +02:00
nmlgc
d1ccecdfa9
[Reduction] #106-108: PC-98 EGC setup
...
"Enhanced Graphic Charger", hm...
2014-08-20 22:24:05 +02:00
nmlgc
a244c30cd9
[Reduction] #104-105: _dos_getdrive and _dos_setdrive
2014-08-20 21:38:31 +02:00
nmlgc
69672b819a
[Reduction] #103 : DOSENV
2014-08-20 21:22:56 +02:00
nmlgc
8ca6964330
[Reduction] #102 : ErrorMessage
2014-08-20 20:38:08 +02:00