amiga: misc cleanups

This commit is contained in:
angelosa 2024-01-07 00:36:54 +01:00
parent a4d6dd2fa3
commit 8986d48306
4 changed files with 85 additions and 64 deletions

View File

@ -34,7 +34,6 @@ license:CC0-1.0
- check / add any missing parent/clone relationships
- find out why we have duplicates of some releases with different IPF files (typically the _0 ones)
(the ones not in the SPS database have been marked as bad?)
- move AGA only discs to the AGA list
- add any other image which can be found
- test compatibility with emulation, note which games require manuals for operation (either protection or important game notes)
- document hardware configurations needed for 'fussy' games, and which ones differ in operation depending on HW config
@ -42,11 +41,12 @@ license:CC0-1.0
document the original packages (see e.g. 16bithit, tnt and a few others below)
todo (General):
- add the various cracked dumps after verifying them
- add Public Domain titles, Demos etc. (maybe in separate lists)
- add Utilities (separate lists?)
- add list to document various Amiga viruses (maybe, if I'm feeling perverted)
- add the various cracked dumps after verifying them;
- add Public Domain and homebrew titles (maybe in separate list);
- Pinpoint copy protection mechanisms as a node ID type;
- Split virus node warnings as they are (warnings), add identifiers;
- rerun ATK test suite at some point, notify changed behaviour (after new68k they definitely
are), notify changed behaviour with newer ATK version.
Virus Warning
@ -30332,9 +30332,10 @@ fatalerrors when trying to mount "Incompatible image format or corrupted data"
<year>1992</year>
<publisher>Ocean</publisher>
<notes><![CDATA[
black screen [FDC] dsksync
masked Lethal Weapon intro text has raster issue
black screen [FDC] dsksync (fixed)
masked Lethal Weapon intro text has raster issue, [Copper] expects +56 scanlines
TODO: Needs multiple presses with no video feedback on mission select section?
TODO: test extensively before promoting
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -30758,7 +30759,8 @@ ATK test: OK
<year>1988</year>
<publisher>Mandarin</publisher>
<notes><![CDATA[
crashes in AmigaDOS with DSKDAT R [FDC] with adkcon=$1100
Crashes in AmigaDOS with DSKDAT R [FDC] with adkcon=$1100 (fixed?)
Throws random Guru Meditations on disk swap (verify, cfr. "Disconnect 2nd disk drive if you only have 512K" printed at boot)
ATK test: failed
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -31174,7 +31176,7 @@ ATK test: OK
</part>
</software>
<software name="lostvik" supported="no">
<software name="lostvik" supported="yes">
<!-- SPS (CAPS) release 2235 -->
<description>The Lost Vikings (Europe)</description>
<!-- retail, standalone -->
@ -31182,10 +31184,12 @@ ATK test: OK
<year>1993</year>
<publisher>Interplay</publisher>
<notes><![CDATA[
Guru Meditation after selecting new game [FDC] dsksync
Crashes with wrong GFX colors if player gives up a stage (TODO: recheck)
Guru Meditation after selecting new game [FDC] dsksync (fixed)
Crashes with wrong GFX colors if player gives up a stage (can't repro, assume fixed)
ATK test: OK
]]></notes>
<info name="usage" value="Supports two buttons joystick"/>
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1" />
<dataarea name="flop" size="1049612">
@ -31618,7 +31622,7 @@ ATK test: OK
<year>1990</year>
<publisher>Krisalis</publisher>
<notes><![CDATA[
new68k: throws [FDC] DSKDATR
new68k: throws [FDC] DSKDATR, black screen
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -34024,7 +34028,7 @@ ATK test: C:0 H:U Bad
</part>
</software>
<software name="morph" supported="no">
<software name="morph" supported="yes">
<!-- SPS (CAPS) release 1148 -->
<description>Morph (Europe)</description>
<!-- retail, standalone -->
@ -34032,7 +34036,7 @@ ATK test: C:0 H:U Bad
<year>1993</year>
<publisher>Millennium</publisher>
<notes><![CDATA[
Hangs at a red screen, [FDC] dsksync
Hangs at a red screen, [FDC] dsksync (fixed)
ATK test: OK
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -34371,7 +34375,7 @@ ATK test: OK
<year>1989</year>
<publisher>Turtle Byte</publisher>
<notes><![CDATA[
Resets machine on initial please wait, [FDC] dsksync
Resets or hangs machine on initial please wait, [FDC] DSKDATR
Eventually throws "amiga_fdc_device::live_run - cur_live.bit_counter > 8" with out of bounds access at $200000 (verify track number)
ATK test: OK
]]></notes>
@ -34839,7 +34843,7 @@ ATK test: OK
</part>
</software>
<software name="nevermnd" supported="no">
<software name="nevermnd" supported="yes">
<!-- SPS (CAPS) release 1507 -->
<description>Never Mind (Europe)</description>
<!-- retail, standalone -->
@ -34847,8 +34851,8 @@ ATK test: OK
<year>1989</year>
<publisher>Psyclapse</publisher>
<notes><![CDATA[
black screen with eventually running irq at $ffffff, [FDC] dsksync
Hangs on CIA timer A readback while setting mode $99
black screen with eventually running irq at $ffffff, [FDC] dsksync (fixed)
Hangs on [CIA] timer A readback while setting mode $99 (fixed)
ATK test: failed
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -36605,7 +36609,7 @@ ATK test: OK
</part>
</software>
<software name="outrun" supported="no">
<software name="outrun" supported="yes">
<!-- SPS (CAPS) release 1161 -->
<description>Out Run (Europe)</description>
<!-- retail, standalone -->
@ -36613,7 +36617,7 @@ ATK test: OK
<year>1989</year>
<publisher>U.S. Gold</publisher>
<notes><![CDATA[
Locks up after Kickstart with DSKDAT W $4000 message (white screen) [FDC] dsksync
Locks up after Kickstart with DSKDAT W $4000 message (white screen) [FDC] dsksync (fixed)
Uses more [FDC] DSKDAT W $4000 afterwards
ATK test: failed
]]></notes>
@ -36852,9 +36856,8 @@ ATK test: failed
<year>1991</year>
<publisher>Global</publisher>
<notes><![CDATA[
Hangs at now loading logo, [FDC] dsksync
Has scrolling glitches during gameplay, [Copper]
Sprite is cutoff when player uses the pneumatic drill
Hangs at now loading logo, [FDC] dsksync (fixed)
Has scrolling glitches and invisible enemies during gameplay, [Copper]
ATK test: OK
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -37010,7 +37013,8 @@ ATK test: failed
<year>1990</year>
<publisher>Futura</publisher>
<notes><![CDATA[
Locks up on AmigaDOS, [FDC] with adkcon=$1100
Locks up on AmigaDOS, [FDC] with adkcon=$1100 (fixed?)
Black screen or Guru Meditation by selecting Training Mode multiple times
ATK test: C:79 H:U 1 Sector Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -37076,10 +37080,10 @@ ATK test: C:0 H:U Bad
<year>1990</year>
<publisher>Hewson</publisher>
<notes><![CDATA[
Hangs at Kickstart white screen, [FDC] dsksync
Hangs at Kickstart white screen, [FDC] dsksync (fixed)
Hangs on a1200 on boot
Expects to read an autoconfig board at $200000, otherwise it straight off refuses to run with a blue screen (should be possible to run with standard 512k RAM?)
Bad colors on intro and gameplay
Bad colors on intro and gameplay, [Copper] dirty table copied from [FDC] dsksync $89** patterns
Expects to read an autoconfig board at $200000, otherwise it straight off refuses to run with a blue screen (should be possible to run with standard 512k RAM?) (can't repro, assume fixed)
ATK test: failed
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -40220,11 +40224,12 @@ ATK test: failed
<year>1991</year>
<publisher>Activision</publisher>
<notes><![CDATA[
Black screen, [FDC] dsksync
Black screen, [FDC] dsksync (fixed)
No backgrounds midway thru stage 1 [Copper] sprites
https://codetapper.com/amiga/sprite-tricks/r-type-2/
ATK test: failed
]]></notes>
<info name="usage" value="Supports two buttons joystick"/>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="1012648">
<rom name="(sps2065)r-type2.ipf" size="1012648" crc="1f2a2095" sha1="f2b1f6227761fcaa7b814136e98d49965dc5131a"/>
@ -42000,7 +42005,7 @@ ATK test: OK
<year>1991</year>
<publisher>Storm</publisher>
<notes><![CDATA[
Black screen [FDC] copy protection check at PC=3ed8 (enables 68k trace mode)
Black screen [FDC] copy protection check at PC=3ed8 (enables 68k trace mode) (fixed)
Gameplay doesn't draw status bar on the right, [Copper] sprites
https://codetapper.com/amiga/sprite-tricks/rod-land/
ATK test: C:0 H:U Bad
@ -42487,9 +42492,10 @@ ATK test: OK
<year>1991</year>
<publisher>Mindcraft</publisher>
<notes><![CDATA[
Fails with a floppy read/write error when creating game, [FDC]
Fails with a floppy read/write error when creating game, [FDC] format TODO: check with HDD option
ATK test: OK
]]></notes>
<!-- TODO: describe install methods -->
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1" />
<dataarea name="flop" size="1049612">
@ -43144,6 +43150,7 @@ ATK test: OK
<publisher>Mindscape</publisher>
<notes><![CDATA[
black screen, [FDC] dsksync
new68k: Guru Meditation
[FDC] accesses DSKDATR
a500: Does not boot aftewards, accesses autoconfig RAM banks at $300000 and $c00000
a500p: draws no player heli sprite, main menu has no text and there's garbled text OSD during gameplay
@ -43354,7 +43361,7 @@ ATK test: failed
</part>
</software>
<software name="swos" supported="no">
<software name="swos" supported="partial">
<!-- SPS (CAPS) release 201 -->
<description>Sensible World of Soccer (Europe, v1.1)</description>
<!-- retail, standalone -->
@ -43362,6 +43369,7 @@ ATK test: failed
<year>1995</year>
<publisher>Renegade</publisher>
<notes><![CDATA[
Requires data disks for saving seasons etc. [FDC] format
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -43378,14 +43386,16 @@ ATK test: C:0 H:U Bad
</part>
</software>
<software name="swosa" cloneof="swos" supported="no">
<software name="swosa" cloneof="swos" supported="partial">
<!-- SPS (CAPS) release 840 -->
<!-- v1.0? -->
<description>Sensible World of Soccer (Europe)</description>
<!-- retail, standalone -->
<!-- (Amiga, OCS, PAL) -->
<year>1994</year>
<publisher>Renegade</publisher>
<notes><![CDATA[
Requires data disks for saving seasons etc. [FDC] format
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -43410,8 +43420,11 @@ ATK test: C:0 H:U Bad
<year>1995</year>
<publisher>Renegade</publisher>
<notes><![CDATA[
Requires blank disk [FDC] format
ATK test: OK
]]></notes>
<info name="usage" value="Update disk for swos" />
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="1049612">
<rom name="(sps841)sensibleworldofsoccer_updaterdisk.ipf" size="1049612" crc="26caf128" sha1="8883a8b87fa3c14d89c1d924b393e56fbda41bdf"/>
@ -43419,7 +43432,7 @@ ATK test: OK
</part>
</software>
<software name="swos9596" supported="no">
<software name="swos9596" supported="partial">
<!-- SPS (CAPS) release 1755 -->
<description>Sensible World of Soccer 95-96 (Europe)</description>
<!-- retail, standalone -->
@ -43427,6 +43440,7 @@ ATK test: OK
<year>1995</year>
<publisher>Renegade</publisher>
<notes><![CDATA[
Requires data disks for saving seasons etc. [FDC] format
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -43443,7 +43457,7 @@ ATK test: C:0 H:U Bad
</part>
</software>
<software name="swosec" supported="no">
<software name="swosec" supported="partial">
<!-- SPS (CAPS) release 1825 -->
<description>Sensible World of Soccer 95-96 - European Championship Edition (Europe)</description>
<!-- retail, standalone -->
@ -43451,6 +43465,7 @@ ATK test: C:0 H:U Bad
<year>1996</year>
<publisher>Renegade</publisher>
<notes><![CDATA[
Requires data disks for saving seasons etc. [FDC] format
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -43467,7 +43482,7 @@ ATK test: C:0 H:U Bad
</part>
</software>
<software name="swos9697" supported="no">
<software name="swos9697" supported="partial">
<!-- SPS (CAPS) release 842 -->
<description>Sensible World of Soccer 96-97 (Europe)</description>
<!-- retail, standalone -->
@ -43475,8 +43490,9 @@ ATK test: C:0 H:U Bad
<year>1996</year>
<publisher>Renegade</publisher>
<notes><![CDATA[
black screen, [FDC] dsksync
Uses [FDC] dskdatr at end of loading cycles, no noticeable effect?
black screen, [FDC] dsksync (fixed)
Uses [FDC] DSKDATR at end of loading cycles, no noticeable effect? (can't repro)
Requires data disks for saving seasons etc. [FDC] format
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -45636,8 +45652,8 @@ ATK test: C:0 H:U Bad
<year>1989</year>
<publisher>Microdeal</publisher>
<notes><![CDATA[
Locks up after title screen by pressing fire on joystick [FDC] dsksync
Player GFX sprite is black filled (fixed?)
Locks up after title screen by pressing fire on joystick [FDC] dsksync (fixed)
Player GFX sprite is black filled (can't repro, assume fixed)
a500p: black screen with red mouse pointer on initial loading (btanb?)
ATK test: C:0 H:U Bad
]]></notes>
@ -45767,8 +45783,7 @@ ATK test: C:79 Bad
<year>1993</year>
<publisher>Krisalis</publisher>
<notes><![CDATA[
boot OK
new68k: trashes memory after initial loading [FDC]
new68k: trashes memory after initial loading, reports regressed track reading in ATK, [FDC] or [CIA]
ATK test: OK
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -45805,8 +45820,8 @@ ATK test: OK
<year>1992</year>
<publisher>Codemasters</publisher>
<notes><![CDATA[
black screen [FDC] dsksync
Hangs on title screen
black screen [FDC] dsksync (fixed)
Hangs on title screen, with [FDC] DSKDATR
ATK test: C:0 H:U Bad
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -45842,6 +45857,7 @@ ATK test: OK
<publisher>Kaiko</publisher>
<notes><![CDATA[
Hangs on Lade Spiel (Game loading) after disk swap, [FDC]
new68k: black screen [FDC]
ATK test: OK
]]></notes>
<part name="flop1" interface="floppy_3_5">
@ -46095,7 +46111,7 @@ ATK test: failed
<year>1991</year>
<publisher>Empire</publisher>
<notes><![CDATA[
black screen [FDC] dsksync
black screen [FDC] dsksync (fixed)
In-game it enables [FDC] dsklen == $0 and hangs (same as dlair2)
ATK test: failed
]]></notes>
@ -47528,8 +47544,9 @@ ATK test: OK
<year>1993</year>
<publisher>Bloodhouse</publisher>
<notes><![CDATA[
No GFX stars during intro [Copper]
Punts after disk swap with "FATAL DISK ERROR! CHECK YOUR MANUAL." [FDC]
new68k: above happens on first disk
No GFX stars during intro [Copper]
https://codetapper.com/amiga/sprite-tricks/stardust/ (coverdisc only?)
ATK test: failed
]]></notes>

View File

@ -19,7 +19,8 @@
- Find & verify cdang examples (especially for ECS/AGA);
- Find & verify examples that uses this non-canonically,
i.e. anything that may use this for controlling Paula, FDC or Blitter;
- Add debugger command for printing the current disassembler structure;
- Add debugger command for printing the current disassembler structure
(current live logging is painfully slow in places, cfr. lweapon);
**************************************************************************************************/
@ -33,6 +34,8 @@
#define LOG_CHIPSET (1U << 5) // Show custom chipset writes
#define VERBOSE (LOG_WARN)
//#define VERBOSE (LOG_WARN | LOG_CHIPSET | LOG_PC | LOG_INST)
//#define LOG_OUTPUT_FUNC osd_printf_info
#include "logmacro.h"
@ -245,7 +248,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
if (m_pending_offset)
{
//LOGCHIPSET("%02X.%02X: Write to %s = %04x\n", ypos, xpos / 2, s_custom_reg_names[m_copper_pending_offset & 0xff], m_copper_pending_data);
LOGCHIPSET("%02X.%02X: Write to $dff%03x = %04x\n",
LOGCHIPSET("%02X.%02X: MOVE $dff%03x = %04x\n",
ypos,
xpos / 2,
(m_pending_offset << 1),
@ -313,7 +316,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
if (delay[word0] == 0)
{
//LOGCHIPSET("%02X.%02X: Write to %s = %04x\n", ypos, xpos / 2, s_custom_reg_names[word0 & 0xff], word1);
LOGCHIPSET("%02X.%02X: Write to $dff%03x = %04x\n",
LOGCHIPSET("%02X.%02X: MOVE $dff%03x = %04x\n",
ypos,
xpos / 2,
word0 << 1,
@ -352,7 +355,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
/* handle a wait */
if ((word1 & 1) == 0)
{
LOGINST(" Waiting for %04x & %04x (currently %04x)\n",
LOGINST(" WAIT %04x & %04x (currently %04x)\n",
m_waitval,
m_waitmask,
(ypos << 8) | (xpos >> 1)
@ -366,7 +369,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
{
int curpos = (ypos << 8) | (xpos >> 1);
LOGINST(" Skipping if %04x & %04x (currently %04x)\n",
LOGINST(" SKIP %04x & %04x (currently %04x)\n",
m_waitval,
m_waitmask,
(ypos << 8) | (xpos >> 1)

View File

@ -438,8 +438,8 @@ public:
void update_screenmode();
TIMER_CALLBACK_MEMBER( scanline_callback );
TIMER_CALLBACK_MEMBER (amiga_irq_proc );
TIMER_CALLBACK_MEMBER( amiga_blitter_proc );
TIMER_CALLBACK_MEMBER( irq_process_callback );
TIMER_CALLBACK_MEMBER( blitter_process_callback );
void update_irqs();
template <int P> DECLARE_CUSTOM_INPUT_MEMBER( amiga_joystick_convert );

View File

@ -14,7 +14,6 @@
#include "amiga.h"
#include "cpu/m68000/m68000.h"
/*************************************
*
* Debugging
@ -165,8 +164,8 @@ void amiga_state::machine_start()
m_chip_ram_mask = (m_chip_ram.bytes() - 1) & ~1;
// set up the timers
m_irq_timer = timer_alloc(FUNC(amiga_state::amiga_irq_proc), this);
m_blitter_timer = timer_alloc(FUNC(amiga_state::amiga_blitter_proc), this);
m_irq_timer = timer_alloc(FUNC(amiga_state::irq_process_callback), this);
m_blitter_timer = timer_alloc(FUNC(amiga_state::blitter_process_callback), this);
m_serial_timer = timer_alloc(FUNC(amiga_state::serial_shift), this);
m_scanline_timer = timer_alloc(FUNC(amiga_state::scanline_callback), this);
@ -240,6 +239,7 @@ void amiga_state::vblank()
}
// TODO: CIA A clock can be connected to either a fixed 50/60hz signal from the power supply, or the vblank
// TODO: move almost everything to a DMA scheduler, cfr. HRM diagram
TIMER_CALLBACK_MEMBER( amiga_state::scanline_callback )
{
int scanline = param;
@ -360,7 +360,7 @@ void amiga_state::update_irqs()
CUSTOM_REG(REG_INTREQ) |= INTENA_EXTER;
}
TIMER_CALLBACK_MEMBER( amiga_state::amiga_irq_proc )
TIMER_CALLBACK_MEMBER( amiga_state::irq_process_callback )
{
update_irqs();
m_irq_timer->reset();
@ -853,7 +853,7 @@ uint32_t amiga_state::blit_line()
*
*************************************/
TIMER_CALLBACK_MEMBER( amiga_state::amiga_blitter_proc )
TIMER_CALLBACK_MEMBER( amiga_state::blitter_process_callback )
{
uint32_t blitsum = 0;
@ -947,14 +947,14 @@ void amiga_state::blitter_setup()
/* compute the blit time */
// TODO: verify timings
// According to https://github.com/alpine9000/amiga_examples test 010,
// blitting is currently taking half the time than necessary.
// Is it expecting to account for RAM access waitstates or ...?
// - https://github.com/alpine9000/amiga_examples test 010,
// blitting is currently taking half the time than necessary.
// - viz does heavy bbusy checks.
blittime = ticks * height * width;
/* if 'blitter-nasty' is set, then the blitter takes over the bus. Make the blit semi-immediate */
// TODO: blitter nasty doesn't seem to work as intended.
// cfr. spinwrld
// FIXME: emulate bus priority implications here
// cfr. spinwrld no backgrounds
if ( CUSTOM_REG(REG_DMACON) & 0x0400 )
{
/* simulate the 68k not running while the blit is going */
@ -1315,7 +1315,8 @@ uint16_t amiga_state::custom_chip_r(offs_t offset)
return amiga_gethvpos() & 0xffff;
case REG_SERDATR:
LOGMASKED(LOG_SERIAL, "r SERDATR: %04x\n", CUSTOM_REG(REG_SERDATR));
if (!machine().side_effects_disabled())
LOGMASKED(LOG_SERIAL, "r SERDATR: %04x\n", CUSTOM_REG(REG_SERDATR));
return CUSTOM_REG(REG_SERDATR);
case REG_JOY0DAT: