beirich
c9b3f7bedf
gen fixes: HINTs shouldnt fire during vblank, some DMA fixes, fix a render priority issue (albeit not the ideal fix), substantial rom compatibility testing
2012-09-03 16:01:56 +00:00
beirich
d745b3112b
whoops, commit .csproj also for previous change
2012-09-03 00:46:28 +00:00
beirich
dd25cc924a
Move ICart.cs from directory/namespace for generic interfaces to Intellivision folder/namespace, as it is entirely Intellivision specific.
2012-09-03 00:45:30 +00:00
adelikat
1f128aeda4
Ram Search - small speedup on UpdateValues
2012-09-02 01:52:16 +00:00
adelikat
8c5d8741cb
Genesis - add Rom data memory domain
2012-09-02 01:33:12 +00:00
beirich
c91c001093
gen: Fix bug with word-reading Z80 bus status; fixes music in Monster World IV, Thunder Force 3 still boots
2012-09-01 21:04:40 +00:00
adelikat
2af24ba9fd
Genesis - add system bus memory domain
2012-09-01 19:49:40 +00:00
beirich
d586876f40
gen: implement H-ints
...
gen: implement Vram/Vram DMA copy (badly)
gen: fix dumb sprite rendering bug
gen: fix crash bug with certain WINDOW settings
2012-09-01 18:40:52 +00:00
adelikat
35ec42073f
NES - implement address poking on the system bus domain. Anything in the EXP, WRAM, PRG regions is done via the built in cheat system due to being handled by the mappers. This may not be the ideal way to do this but it seems to work well, and I don't know of a more logical way to handle this.
2012-09-01 18:34:31 +00:00
adelikat
9b7404b059
NES - Round 1 of Hook up NES cheats for system bus (i.e. game genie codes now work)
2012-09-01 14:13:36 +00:00
beirich
f21429b996
gen: implement WINDOW rendering
...
gen: initialize VDP registers to power-on values
2012-09-01 05:02:27 +00:00
beirich
e24f0962fc
gen: fix dumb tile priority bug (primarily affects Ghouls n Ghosts, which use the layers backwards from normal)
2012-08-30 04:29:33 +00:00
beirich
c4afd9f393
gen: allow word-reads to query Z80 bus status. now thunder force 3 boots.
2012-08-27 02:59:26 +00:00
beirich
8ad3e72ffa
Allow easy swapping of active 68000 core the C# core, or Musashi... As we are likely to be swapping between versions rapidly for some period of time.
2012-08-26 14:39:06 +00:00
beirich
2f73408029
gen: improved memory map and VDP I/O
2012-08-26 03:43:35 +00:00
beirich
58780191de
gen: implement raster effects
2012-08-24 04:45:09 +00:00
beirich
9545475455
gen: render priority improved somewhat... still some issues
2012-08-24 02:30:20 +00:00
beirich
575ceb3966
gen: Fix tile VFLIP bug, correcting the most obnoxious of the graphical glitches
2012-08-24 00:37:54 +00:00
pjgat09
78de49c923
Atari: Added an audio object to the TIA, including functions to run the 4 and 5 bit LFSRs. Also added some code for the first 4 audio modes, enough to generate samples for one of the audio channels.
...
Added a logic simulation of some parts of the TIA, including the audio portion. This requires logisim to run.
2012-08-23 02:04:24 +00:00
adelikat
67822be97c
NES - PPU - very minor cleanup
2012-08-23 01:28:33 +00:00
beirich
40a427e68f
md: correct hscroll offset calculation. genesis core 10% less embarassing.
2012-08-22 04:54:36 +00:00
adelikat
959e56b71a
NES - small (probably unnoticeable) speedup to WriteMemory()
2012-08-19 21:09:48 +00:00
adelikat
6473321100
NES - some optimizations to ReadMemory(), ~1fps speed up
2012-08-19 20:38:20 +00:00
adelikat
70929679d5
NES - don't recalculated the framebuffer constantly, instead only do it once per frame. ~1fps speed up
2012-08-19 20:01:17 +00:00
adelikat
493cff72c4
NES - tiny speedup
2012-08-19 19:21:35 +00:00
goyuken
2a2caa492c
add linear resampler (not activated in code). sounds about the same as the other two (ie, no major bugs) on the opening to Golden Axe
2012-08-19 17:46:13 +00:00
beirich
4ba8fcf227
ym2612: Implement detune. Implement a somewhat better resampler, still not a Good One.
2012-08-19 04:41:34 +00:00
brandman211
26b1d06b7a
-Simplified the CPU / STIC connection.
...
-Made FrameAdvance handle the pending cycle loop. During each iteration, it runs one instruction and ticks the STIC accordingly.
2012-08-14 03:58:11 +00:00
brandman211
9100232547
-Made connections between the signal pins on the CP1610 and the STIC.
...
--Not sure why the STIC has any connection to the SST, but the docs on the SST are virtually non-existent from what I could find.
--I took advantage of Func and Action instead of passing bool references to both devices. I think this makes sense.
-Added reset functions for both devices.
My comparison log for INTRM is still weird because it says it is true initially (Expected) and remains as such after the first instruction (A bit odd). I think this happens because the STIC is supposed to "tick" and shift SR1 to false immediately, but the STIC tick happens after the CPU tick, and the CPU tick is where the logging happens. I need to find a better place to put this logging, and I need to implement the STIC ticking for IntelliHawk. I'm not positive how to approach the latter issue as I assume a tick means one instruction execution, and my executions happen in a loop on the CPU, which has no reference to the STIC, so I'm not sure where this fits into the equation.
2012-08-13 08:10:15 +00:00
brandman211
fd6201c703
Implemented what to do on an interrupt. This seems to be logical as it tries to execute a GSWD instruction, but it takes the interrupt too early because I haven't figured out when to turn INTRM on / off.
2012-08-13 03:47:08 +00:00
adelikat
f84a3709c9
Misc code cleanup
2012-08-12 01:09:30 +00:00
brandman211
c6cf18061f
Scratchpad RAM, Graphics ROM, and Graphics RAM are apparently all 8-bit.
2012-08-10 20:40:34 +00:00
beirich
f42b96ba7d
ym2612: fix EG Rate calculation. Fix Attack Rate exponential formulation.
2012-08-10 04:46:29 +00:00
brandman211
5239b4f55b
-Separated the STIC and PSG memory map logic into new objects.
...
-Foreground / Background | Color Stack Mode
--Actually made a boolean for it (FGBG).
--Reading from a write-only STIC alias of $21 does change the STIC into Color Stack mode, but it doesn't actually read.
--Color stack mode is enabled when $21 or its alias is read and it is disabled (FGBG) when written its written, both having to occur during VBlank Period 1.
---This is what I gathered from the wiki, but I'm confused as to why it says that "The STIC stays in this mode until the program accesses location $21 again." I'm assuming this doesn't mean the mode changes on every access because then I don't understand why a read would change to a different mode than a write.
--FGBG is disabled by default. I don't think it matters.
2012-08-08 23:05:55 +00:00
beirich
b07008c7e7
Genesis vdp: small loadstate fix
2012-08-08 00:44:08 +00:00
beirich
32bc79be06
ym2612 mothaaaaafukkkkaaaaaaa
2012-08-07 05:48:30 +00:00
brandman211
0d20c133a5
-Moved the reset address to the CP1610 and made RegisterSP/PC private.
...
-Created helper functions for indirect ops; Indirect_Set will be needed for interrupts.
2012-08-06 15:51:35 +00:00
adelikat
1bce6a724d
oops, add Mapper197.cs
2012-08-05 22:28:03 +00:00
adelikat
975d449722
AxROM (Mapper 7) - make all AOROM games not emulate bus conflicts, fixes various Wheel of Fortune games, Double Dare, and Jeopardy
2012-08-05 22:02:58 +00:00
adelikat
ea8d47bcc0
Start Mapper 197 (based on MMC3) and sort out the use of this vs Mapper 91.
2012-08-05 21:34:00 +00:00
zeromus
6a63f2f197
nes-work on mapper091 a bit, but its still not right
2012-08-05 20:19:07 +00:00
adelikat
77da639dc6
NES - Fix Mapper 50
2012-08-05 19:20:54 +00:00
brandman211
a19b76e6cc
Added Interruptible and assigned it for every op.
2012-08-05 07:04:03 +00:00
brandman211
e9a8980f0c
-Throw exceptions for TCI, SIN, and BEXT.
...
-Added and logged INTRM, BUSRQ, BUSAK, and MSYNC.
2012-08-05 06:47:00 +00:00
brandman211
b83bb1901d
-When neither the cartridge nor hardware responds to a read, it now returns 0xFFFF instead of throwing an exception.
...
-I will now assume that 0x7000 is not mapped for the sake of continuing on. I will need to implement a mapper system shortly though.
--Did the same thing for 0x4800.
-AND@, MOVR, CMP enabled.
-Made the logging separator generate before an instruction instead of after the register states. This is quite petty, but I don't like the separator at the end of the file.
I hit an infinite loop, and I'm very very certain it's happening because I don't have an interrupt system yet. Time to stop avoiding that!
2012-08-05 05:59:55 +00:00
adelikat
e8e64bca62
NES - VRC6 sound!
2012-08-05 00:11:32 +00:00
adelikat
33954ddef7
NES - map MAPPER219 to NROM (fixes a version of 3D Block)
2012-08-04 19:22:49 +00:00
adelikat
c0706ed0ac
NES - add Mapper 120 (not documented by Disch docs), used by Tobidase Daisakusen (FDS Conversion). Mapper implementation based on FCEUX but game freezes before gameplay starts (plays fine in FCEUX)
2012-08-04 19:02:51 +00:00
adelikat
a7b847dbe2
NES - some small easy optimizations to the APU (very small)
2012-08-04 02:41:15 +00:00
adelikat
b10769ab4a
NES - dsiable NESWatch checks in ReadMemory since this feature is not yet used for anything
2012-08-04 01:54:19 +00:00
adelikat
fba6e64c58
NES - some small speed optimizations
2012-08-04 01:47:54 +00:00
adelikat
6e8d38fabe
NES - disable vrc6 sound for now
2012-08-04 00:57:26 +00:00
andres.delikat
31db5f9d05
NES - better handling of bus conflicts for AOROM board, fixes Wheel of Fortune
2012-08-03 14:12:04 +00:00
adelikat
70f07346b1
NES - start VRC6 sound, currently sounds terrible
2012-08-03 02:08:42 +00:00
andres.delikat
4754889131
NES - mapper 231 - optimize the ReadPRG() method
2012-08-02 21:05:15 +00:00
brandman211
97727ab658
-Fixed the memory mapping. I don't know why I thought I'd be able to just mask addresses to the length of the segment and think it'd work...
...
-Tried two methods of parsing the ROM file. Neither of them worked.
2012-08-01 17:45:37 +00:00
adelikat
accd643fde
NES - progress on mappers 90 & 209
2012-08-01 02:55:01 +00:00
andres.delikat
eeb0171eda
Start mapper 90/209
2012-07-31 22:04:45 +00:00
brandman211
80a0f8f75b
-Made Intellicart its own class.
...
-Separated cartridge logic into a separate ICart named Cartridge.cs.
-Made WriteMemory return a bool to match ICart.Write. It currently returns true if either the cart or the core responded.
TODO: Parse the vanilla Intellivision ROM, which will hopefully include the read / writability of the data segments. adelikat seems to think that I just need to send the bytes to $5000, but I'm not convinced.
2012-07-31 06:54:20 +00:00
adelikat
a5262488c7
NES - fix mapper 96 prg mapping. These games are working as well as can be tested without better peripheral support, so I'm considering this mapper complete.
2012-07-31 03:07:38 +00:00
adelikat
4930979940
NES - progress on mapper 96, Oeka Kids - Anpanman no Hiragana Daisuki seems to play (but I can't get passed the title screen without Oeka Kids tablet emulation). Oeka Kids - Anpanman to Oekaki Shiyou!! fails to load (suggesting a PRG mapping problem?)
2012-07-31 02:58:59 +00:00
brandman211
0d768ef710
Finished the Memory Map. I think the cartridge logic needs to be separated.
2012-07-31 01:39:47 +00:00
adelikat
c04b750d6a
Finish mapper 245
2012-07-31 01:01:15 +00:00
brandman211
f66d92f2a5
Started filling the gaps in the Memory Map, getting up to 0x7FFF. Once complete, a lot of TODOs remain, the most important being the actual mapping of the cartridge.
2012-07-30 22:25:00 +00:00
andres.delikat
a34bf45610
Add islag to savestates (now lagframe alert status updates when loading a state)
2012-07-30 14:42:52 +00:00
andres.delikat
daff01ad2e
Genesis - add lag and frame counts to savestates
2012-07-30 13:43:25 +00:00
brandman211
8306768c76
Enabled SWAP. Works as expected, but the next instruction is an MVI@ that wants to read from 0x7000, which I think is made available to cartridges. Not sure where to go from here.
2012-07-30 02:34:53 +00:00
adelikat
59ba7efdaf
NES - start mapper 18
2012-07-29 22:40:57 +00:00
adelikat
31843f3e3a
NES - mappers 74, 192, 194 - set VRAM sizes when mapper object is created, this removes the need to set vram in the gamedb.
2012-07-29 18:43:21 +00:00
adelikat
d4ac95bd30
NES - implement mappers 74 and 194. Added gamedb entries for the games I could find that correspond to these mappers
2012-07-29 18:35:24 +00:00
adelikat
71865576a7
NES - finish mapper 192
2012-07-29 18:12:37 +00:00
adelikat
7cbee7bde4
NES - mapper 74 - implemented chr-ram behavior, however, it does not work (chinese characters still missing in dialogs, but this checkin causes no regressions)
2012-07-29 17:55:45 +00:00
adelikat
047ed975d1
NES - implement mapper 234
2012-07-29 03:42:05 +00:00
brandman211
b1db1b7a69
-Reversed the double byte data bytes. It now works properly.
...
-Set the D flag to clear one instruction after it's set; SDBD is a prefix instruction.
2012-07-29 00:02:06 +00:00
adelikat
c555e1df40
NES - mapper 52 complete
2012-07-28 18:53:26 +00:00
adelikat
9e96eb9ddc
NES - start mapper 52
2012-07-28 18:14:04 +00:00
brandman211
53c0dd5ee0
-Enabled the ops that merely set / clear flags...there's no way I could have messed those up.
...
-Tested and implemented the MVO op.
-Implemented the other direct ops.
I think my double byte data handling isn't working. Will diagnose.
2012-07-28 17:50:32 +00:00
brandman211
748efbcd20
-Fixed the overflow calculation for ADDR, SUBR, and CMPR.
...
-Implemented the remaining XXX@ ops.
2012-07-28 17:20:16 +00:00
brandman211
188e5662ca
It seems that indirect writes decrement the stack pointer BEFORE reading memory.
2012-07-28 17:06:06 +00:00
adelikat
1fb7d9a8a6
NES - Mapper 45 - oops, add lock_regs flag to savestates
2012-07-28 15:42:57 +00:00
adelikat
678e60815e
NES - Mapper 50 - hook up IRQ logic?
2012-07-28 13:19:12 +00:00
adelikat
8d45516811
NES - mapper 50 - fix mirroring
2012-07-28 12:35:51 +00:00
brandman211
0d10eee747
-Implemented branching and tested BNEQ. BEXT not implemented.
...
-Made it so that the indirect ops other than MVO@ decrement R6 when it's the mem address. Indirect write means writing to a register apparently, so maybe the documentation don't contradict itself.
2012-07-28 04:18:13 +00:00
adelikat
5d521a5132
NES - mapper 50 - some fixes, almost complete
2012-07-28 03:37:06 +00:00
adelikat
7805c460d0
NES - start mapper 50, but it doesn't work
2012-07-28 03:11:39 +00:00
adelikat
10c71da526
NES - implement mapper 45
2012-07-28 01:29:06 +00:00
adelikat
524bc29b43
NES - remove some console logging spam on mapper 49
2012-07-28 01:02:16 +00:00
brandman211
4864aaa291
-Enabled and tested DECR.
...
-Fixed my disassembly of branch; I wasn't thinking in hexadecimal. >_<
-Subtracted 1 from the negated offset when branching in reverse. The next op is "BNEQ $FFFC".
2012-07-27 04:46:44 +00:00
brandman211
4d1f0114c4
R4-R7 now auto-increment for all of the indirect opcodes. My documentation is inconsistent on whether R6 increments or decrements on right, but in any case, my output now matches my source until the DECR, which hasn't been implemented yet.
2012-07-27 04:07:06 +00:00
brandman211
3a56f65c3f
Implemented the XXXR opcodes. As of now, I have Jump, MVO@, MVI@, and XORR enabled and tested. There might be an off by one error with MVO@.
2012-07-27 03:33:24 +00:00
adelikat
9ee133866d
NES - complete mapper 205, slight fix to mapper 91 (still not working)
2012-07-27 02:14:18 +00:00
andres.delikat
f72905f602
NES - start mapper 96 (prg mapping working)
2012-07-24 14:32:09 +00:00
brandman211
b96e014327
-Reverted disassembly printout as it'll now match up with my comparison.
...
-Fixed the branching disassembly; the direction just negates the offset and the second parameter only belongs to BEXT. All of my sources contradict each other, but this seems sensible.
2012-07-24 05:29:24 +00:00
brandman211
d469a4e568
-Put the disassembly in parenthesis and put the opcode to the left of it in the logs. This is uglier, but it's initially easier for comparison this way.
...
-RegisterSP now increments in MVO@ instead of decrements. I'm not sure how this allows the stack to function properly, but it seems to work.
2012-07-24 03:05:57 +00:00
adelikat
d774e49cd8
NES - Mapper 245 - do chr-ram logic. The 3 games I found correctly labeled as 245 (Yin He Shi Dai, DQ7, Hyrule Fantasy) all fail to run properly in this implementation, and FCEUX.
2012-07-24 00:12:40 +00:00
andres.delikat
b08c2861a4
NES - start mapper 245 prg mapping working (possibly)
2012-07-23 22:15:22 +00:00
adelikat
ed16f40529
oops, forgot to add Mapper205.cs
2012-07-22 20:11:55 +00:00
adelikat
f45238132e
NES - start mapper 205
2012-07-22 18:41:54 +00:00
brandman211
743480e26f
-Logging now uses a static StreamWriter instead of building the string and writing on destruction.
...
-Applied to the old Gameboy core. Why not? It at least fixes that annoying bug from before if we ever care to use it again.
-Both logs are now written to different files.
2012-07-22 18:40:28 +00:00
brandman211
9f2bcf3318
-Fixed logging.
...
--It now just builds a strings and writes on finalization.
-Fixed up format strings.
-As RegisterPC already increments upon reading the third decle, I now just store PC as the return address for jumping instead of PC + 1.
2012-07-22 18:08:10 +00:00